Commit 18a10678 by wqc

app数据修改

parent 9060fe45
package com.zq.api.feign; package com.zq.api.feign;
import com.zq.api.config.FeignConfig; import com.zq.api.config.FeignConfig;
import com.zq.common.vo.ResultVo; import com.zq.common.vo.ResultVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map; import java.util.Map;
@FeignClient(name = "PORTAL-SERVER", configuration = FeignConfig.class) //指定调用哪个微服务 @FeignClient(name = "PORTAL-SERVER", configuration = FeignConfig.class) //指定调用哪个微服务
@RequestMapping("/portal/app") @RequestMapping("/portal/app")
public interface PortalFeign { public interface PortalFeign {
@GetMapping("/area/getChildAreaList") @GetMapping("/area/getChildAreaList")
ResultVo getChildAreaList(@RequestParam String areaCode); ResultVo getChildAreaList(@RequestParam String areaCode);
@PostMapping("/stats/getMarriageStats") @PostMapping("/stats/getMarriageStats")
ResultVo getMarriageStats(@RequestBody Map<String, Object> paramsMap); ResultVo getMarriageStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAreaUnderMarriageStatsList") @PostMapping("/stats/getYearMarriedCouple")
ResultVo getAreaUnderMarriageStatsList(@RequestBody Map<String, Object> paramsMap); ResultVo getYearMarriedCouple(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getFivesYearMarriageLine") @PostMapping("/stats/getAreaUnderMarriageStatsList")
ResultVo getFivesYearMarriageLine(@RequestBody Map<String, Object> paramsMap); ResultVo getAreaUnderMarriageStatsList(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAreaDisabledIssueStats") @PostMapping("/stats/getFivesYearMarriageLine")
ResultVo getAreaDisabledIssueStats(@RequestBody Map<String, Object> paramsMap); ResultVo getFivesYearMarriageLine(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getYearDisabledIssueStats") @PostMapping("/stats/getAreaDisabledIssueStats")
ResultVo getYearDisabledIssueStats(@RequestBody Map<String, Object> paramsMap); ResultVo getAreaDisabledIssueStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAreaShjzStats") @PostMapping("/stats/getYearDisabledIssueStats")
ResultVo getAreaShjzStats(@RequestBody Map<String, Object> paramsMap); ResultVo getYearDisabledIssueStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getFivesYearShjzAchieveStats") @PostMapping("/stats/getAreaShjzStats")
ResultVo getFivesYearShjzAchieveStats(@RequestBody Map<String, Object> paramsMap); ResultVo getAreaShjzStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getFivesYearShjzProvideStats") @PostMapping("/stats/getFivesYearShjzAchieveStats")
ResultVo getFivesYearShjzProvideStats(@RequestBody Map<String, Object> paramsMap); ResultVo getFivesYearShjzAchieveStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getSoorganStats") @PostMapping("/stats/getFivesYearShjzProvideStats")
ResultVo getSoorganStats(@RequestBody Map<String, Object> paramsMap); ResultVo getFivesYearShjzProvideStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAreaUnderSoorganStatsList") @PostMapping("/stats/getSoorganStats")
ResultVo getAreaUnderSoorganStatsList(@RequestBody Map<String, Object> paramsMap); ResultVo getSoorganStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAppMapStats") @PostMapping("/stats/getAreaUnderSoorganStatsList")
ResultVo getAppMapStats(@RequestBody Map<String, Object> paramsMap); ResultVo getAreaUnderSoorganStatsList(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/gatherSearch") @PostMapping("/stats/getAppMapStats")
ResultVo gatherSearch(@RequestBody Map<String, Object> paramsMap); ResultVo getAppMapStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAgencyChildStats") @PostMapping("/stats/gatherSearch")
ResultVo getAgencyChildStats(@RequestBody Map<String, Object> paramsMap); ResultVo gatherSearch(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAgencyChildStatsList") @PostMapping("/stats/getAgencyChildStats")
ResultVo getAgencyChildStatsList(@RequestBody Map<String, Object> paramsMap); ResultVo getAgencyChildStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getCremationStats") @PostMapping("/stats/getAgencyChildStatsList")
ResultVo getCremationStats(@RequestBody Map<String, Object> paramsMap); ResultVo getAgencyChildStatsList(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getCremationStatsList") @PostMapping("/stats/getCremationStats")
ResultVo getCremationStatsList(@RequestBody Map<String, Object> paramsMap); ResultVo getCremationStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getCremationStatsById") @PostMapping("/stats/getCremationStatsList")
ResultVo getCremationStatsById(@RequestBody Map<String, Object> paramsMap); ResultVo getCremationStatsList(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getAreaUnderNumStats") @PostMapping("/stats/getCremationStatsById")
ResultVo getAreaUnderNumStats(@RequestBody Map<String, Object> paramsMap); ResultVo getCremationStatsById(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getEnjoySubsidyStats") @PostMapping("/stats/getAreaUnderNumStats")
ResultVo getEnjoySubsidyStats(@RequestBody Map<String, Object> paramsMap); ResultVo getAreaUnderNumStats(@RequestBody Map<String, Object> paramsMap);
@PostMapping("/stats/getEnjoySumStatsData") @PostMapping("/stats/getEnjoySubsidyStats")
ResultVo getEnjoySumStatsData(@RequestBody Map<String, Object> paramsMap); ResultVo getEnjoySubsidyStats(@RequestBody Map<String, Object> paramsMap);
}
@PostMapping("/stats/getEnjoySumStatsData")
ResultVo getEnjoySumStatsData(@RequestBody Map<String, Object> paramsMap);
}
package com.zq.api.service; package com.zq.api.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import com.zq.api.dao.ApiLogDao; import com.zq.api.dao.ApiLogDao;
import com.zq.api.entity.ApiLog; import com.zq.api.entity.ApiLog;
import com.zq.api.entity.ApiUser; import com.zq.api.entity.ApiUser;
import com.zq.api.feign.SysFeign; import com.zq.api.feign.SysFeign;
import com.zq.api.form.ApiForm; import com.zq.api.form.ApiForm;
import com.zq.api.form.ApiResp; import com.zq.api.form.ApiResp;
import com.zq.api.utils.ApiUtils; import com.zq.api.utils.ApiUtils;
import com.zq.api.utils.ReflectionUtils; import com.zq.api.utils.ReflectionUtils;
import com.zq.common.config.redis.RedisUtils; import com.zq.common.config.redis.RedisUtils;
import com.zq.common.vo.ApiTokenVo; import com.zq.common.vo.ApiTokenVo;
import com.zq.common.vo.ResultVo; import com.zq.common.vo.ResultVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* @author wilmiam * @author wilmiam
* @since 2021-09-28 15:44 * @since 2021-09-28 15:44
*/ */
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ApiService { public class ApiService {
private final ApiLogDao apiLogDao; private final ApiLogDao apiLogDao;
private final SysFeign sysFeign; private final SysFeign sysFeign;
private final RedisUtils redisUtils; private final RedisUtils redisUtils;
/** /**
* 允许用户未登录状态下执行的方法名 * 允许用户未登录状态下执行的方法名
*/ */
private final String[] allowMethod = {"sendCode", "resetPassword", "phoneLogin", "passwdLogin", "getAppVersion","cremationSearch","marriageSearch","naturalPersonSearch"}; private final String[] allowMethod = {"sendCode", "resetPassword", "phoneLogin", "passwdLogin", "getAppVersion","cremationSearch","marriageSearch","naturalPersonSearch"};
private static final List<String> METHOD_LIST; private static final List<String> METHOD_LIST;
static { static {
METHOD_LIST = methodList(); METHOD_LIST = methodList();
} }
public IApiLogic getApiLogic(ApiForm form) { public IApiLogic getApiLogic(ApiForm form) {
IApiLogic apiLogic = ApiUtils.getApiLogic(form); IApiLogic apiLogic = ApiUtils.getApiLogic(form);
return apiLogic; return apiLogic;
} }
public static List<String> methodList() { public static List<String> methodList() {
List<String> methodList = new ArrayList<>(); List<String> methodList = new ArrayList<>();
Method[] methods = IApiLogic.class.getMethods(); Method[] methods = IApiLogic.class.getMethods();
for (Method method : methods) { for (Method method : methods) {
Class<?>[] params = method.getParameterTypes(); Class<?>[] params = method.getParameterTypes();
if (params.length == 1 && (params[0] == ApiForm.class)) { if (params.length == 1 && (params[0] == ApiForm.class)) {
methodList.add(method.getName()); methodList.add(method.getName());
} }
} }
return methodList; return methodList;
} }
public ApiResp action(ApiForm form) throws Exception { public ApiResp action(ApiForm form) throws Exception {
if (!METHOD_LIST.contains(form.getMethod())) { if (!METHOD_LIST.contains(form.getMethod())) {
return ApiUtils.getMethodError(form); return ApiUtils.getMethodError(form);
} }
// 调用接口方法,利用反射更简洁 // 调用接口方法,利用反射更简洁
IApiLogic apiLogic = getApiLogic(form); IApiLogic apiLogic = getApiLogic(form);
return (ApiResp) ReflectionUtils.invokeMethod(apiLogic, form.getMethod(), new Class<?>[]{ApiForm.class}, new Object[]{form}); return (ApiResp) ReflectionUtils.invokeMethod(apiLogic, form.getMethod(), new Class<?>[]{ApiForm.class}, new Object[]{form});
} }
/** /**
* 身份验证 * 身份验证
* *
* @param form * @param form
* @param appId * @param appId
* @param appSecret * @param appSecret
* @return * @return
*/ */
public ApiResp auth(ApiForm form, String appId, String appSecret, String token) { public ApiResp auth(ApiForm form, String appId, String appSecret, String token) {
boolean contains = Arrays.asList(allowMethod).contains(form.getMethod()); boolean contains = Arrays.asList(allowMethod).contains(form.getMethod());
if (contains) { if (contains) {
return ApiUtils.getSuccessResp(form); return ApiUtils.getSuccessResp(form);
} else if (StrUtil.isBlank(token)) { } else if (StrUtil.isBlank(token)) {
return ApiUtils.getLoginValidError(form); return ApiUtils.getLoginValidError(form);
} }
ResultVo resultVo = sysFeign.getApiUserByAppId(appId, appSecret); ResultVo resultVo = sysFeign.getApiUserByAppId(appId, appSecret);
if (!resultVo.isSuccess() || resultVo.getData() == null) { if (!resultVo.isSuccess() || resultVo.getData() == null) {
return ApiUtils.getAppIdValidError(form); return ApiUtils.getAppIdValidError(form);
} }
// 认证签名 // 认证签名
String key = redisUtils.getStr("civil.apiKey." + token); String key = redisUtils.getStr("civil.apiKey." + token);
String sign = ApiUtils.getSign(form.getSignStr(key == null ? "" : key)); String sign = ApiUtils.getSign(form.getSignStr(key == null ? "" : key));
if (!sign.equals(form.getSign())) { if (!sign.equals(form.getSign())) {
return ApiUtils.getCheckSignValidError(form); return ApiUtils.getCheckSignValidError(form);
} }
ApiUser apiUser = BeanUtil.copyProperties(resultVo.getData(), ApiUser.class); ApiUser apiUser = BeanUtil.copyProperties(resultVo.getData(), ApiUser.class);
ApiTokenVo apiTokenVo = ApiTokenVo.builder() ApiTokenVo apiTokenVo = ApiTokenVo.builder()
.userId(apiUser.getId()) .userId(apiUser.getId())
.name(apiUser.getName()) .name(apiUser.getName())
.roleLevel(apiUser.getRoleLevel()) .roleLevel(apiUser.getRoleLevel())
.build(); .build();
form.setUserId(apiUser.getId() == null ? null : apiUser.getId().toString()); form.setUserId(apiUser.getId() == null ? null : apiUser.getId().toString());
form.setAppId(apiUser.getAppId()); form.setAppId(apiUser.getAppId());
form.setApiTokenVo(apiTokenVo); form.setApiTokenVo(apiTokenVo);
return ApiUtils.getSuccessResp(form); return ApiUtils.getSuccessResp(form);
} }
@Async @Async
public void addLog(ApiForm form, String ip, String logType, String respMsg, String errorInfo, Long timeCost) { public void addLog(ApiForm form, String ip, String logType, String respMsg, String errorInfo, Long timeCost) {
apiLogDao.insert(ApiLog.builder() apiLogDao.insert(ApiLog.builder()
.appId(form.getAppId()) .appId(form.getAppId())
.userId(form.getUserId()) .userId(form.getUserId())
.method(form.getMethod()) .method(form.getMethod())
.version(form.getVersion()) .version(form.getVersion())
.bizContent(form.getBizContent()) .bizContent(form.getBizContent())
.ip(ip) .ip(ip)
.logType(logType) .logType(logType)
.respMsg(respMsg) .respMsg(respMsg)
.stackTrace(errorInfo) .stackTrace(errorInfo)
.timeCost(timeCost) .timeCost(timeCost)
.createTime(DateUtil.date().toJdkDate()) .createTime(DateUtil.date().toJdkDate())
.build()); .build());
} }
} }
package com.zq.portal.controller.app; package com.zq.portal.controller.app;
import com.zq.common.vo.ResultVo; import com.zq.common.vo.ResultVo;
import com.zq.portal.entity.VMarriageStats; import com.zq.portal.entity.VMarriageStats;
import com.zq.portal.service.HyStatsService; import com.zq.portal.service.HyStatsService;
import com.zq.portal.vo.StatsReqVo; import com.zq.portal.vo.StatsReqVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api(tags = "婚姻相关接口") @Api(tags = "婚姻相关接口")
@RequiredArgsConstructor @RequiredArgsConstructor
@RestController @RestController
@RequestMapping(value = "/portal/app/stats") @RequestMapping(value = "/portal/app/stats")
public class HyStatsController { public class HyStatsController {
public final HyStatsService hyStatsService; public final HyStatsService hyStatsService;
@ApiOperation("获取结婚离婚人数") @ApiOperation("获取结婚离婚人数")
@PostMapping(value = "/getMarriageStats") @PostMapping(value = "/getMarriageStats")
public ResultVo<VMarriageStats> getMarriageStats(@RequestBody StatsReqVo vo) { public ResultVo<VMarriageStats> getMarriageStats(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getCacheMarriageStats(vo)); return ResultVo.success(hyStatsService.getCacheMarriageStats(vo));
} }
@ApiOperation("获取地区下面婚姻统计列表") @ApiOperation("获取地区下面婚姻统计列表")
@PostMapping(value = "/getAreaUnderMarriageStatsList") @PostMapping(value = "/getAreaUnderMarriageStatsList")
public ResultVo getAreaUnderMarriageStatsList(@RequestBody StatsReqVo vo) { public ResultVo getAreaUnderMarriageStatsList(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getCacheAreaUnderMarriageStatsList(vo)); return ResultVo.success(hyStatsService.getCacheAreaUnderMarriageStatsList(vo));
} }
@ApiOperation("获取近5年结婚离婚走势") @ApiOperation("获取近5年结婚离婚走势")
@PostMapping(value = "/getFivesYearMarriageLine") @PostMapping(value = "/getFivesYearMarriageLine")
public ResultVo getFivesYearMarriageLine(@RequestBody StatsReqVo vo) { public ResultVo getFivesYearMarriageLine(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getCacheFivesYearMarriageLine(vo)); return ResultVo.success(hyStatsService.getCacheFivesYearMarriageLine(vo));
} }
} @ApiOperation("获取1年结婚离婚对数")
@PostMapping(value = "/getYearMarriedCouple")
public ResultVo getYearMarriedCouple(@RequestBody StatsReqVo vo) {
return ResultVo.success(hyStatsService.getCacheYearMarriedCouple(vo));
}
}
package com.zq.portal.dao; package com.zq.portal.dao;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.zq.common.constant.DBName; import com.zq.common.constant.DBName;
import com.zq.portal.vo.SearchReqVo; import com.zq.portal.vo.SearchReqVo;
import com.zq.portal.vo.StatsReqVo; import com.zq.portal.vo.StatsReqVo;
import com.zq.portal.vo.StatsVo; import com.zq.portal.vo.StatsVo;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@DS(DBName.GXHY) @DS(DBName.GXHY)
@Repository @Repository
public interface HyStatsDao { public interface HyStatsDao {
/** /**
* 获取近5年的折线 * 获取近5年的折线
* *
* @return * @return
*/ */
List<StatsVo> getFivesYearMarriageLine(StatsReqVo vo); List<StatsVo> getFivesYearMarriageLine(StatsReqVo vo);
/** /**
* 月统计折线 * 月统计折线
* *
* @return * @return
*/ */
List<StatsVo> getMonthMarriageLine(StatsReqVo vo); List<StatsVo> getMonthMarriageLine(StatsReqVo vo);
/** /**
* 获取结婚离婚人数 * 获取结婚离婚人数
* *
* @param vo * @param vo
* @return * @return
*/ */
List<StatsVo> getMarriageStats(StatsReqVo vo); List<StatsVo> getMarriageStats(StatsReqVo vo);
/** /**
* 获取下级区域婚姻统计列表 * 获取下级区域婚姻统计列表
* *
* @param vo * @param vo
* @return * @return
*/ */
List<StatsVo> getAreaUnderMarriageStatsList(StatsReqVo vo); List<StatsVo> getAreaUnderMarriageStatsList(StatsReqVo vo);
/** /**
* 获取跨地结婚离婚人数 * 获取跨地结婚离婚人数
* *
* @param vo * @param vo
* @return * @return
*/ */
List<StatsVo> getCrossMarriageStats(StatsReqVo vo); List<StatsVo> getCrossMarriageStats(StatsReqVo vo);
// 获取结婚人数 // 获取结婚人数
StatsVo getMarryNum(StatsReqVo vo); StatsVo getMarryNum(StatsReqVo vo);
// 获取离婚中的人数 // 获取离婚中的人数
StatsVo getInDivorceNum(StatsReqVo vo); StatsVo getInDivorceNum(StatsReqVo vo);
// 获取每月冷静期数据 // 获取每月冷静期数据
List<StatsVo> getMonthDivorceCoolingData(StatsReqVo vo); List<StatsVo> getMonthDivorceCoolingData(StatsReqVo vo);
/** /**
* 搜索 * 搜索
* *
* @param vo * @param vo
* @return * @return
*/ */
List<Map<String, Object>> search(SearchReqVo vo); List<Map<String, Object>> search(SearchReqVo vo);
} /**
* 获取结婚离婚对数
*
* @param vo
* @return
*/
List<StatsVo> getYearMarriedCouple(StatsReqVo vo);
}
package com.zq.portal.entity; package com.zq.portal.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.Date; import java.util.Date;
/** /**
* 地区婚姻统计(VMarriageStats)实体类 * 地区婚姻统计(VMarriageStats)实体类
* *
* @author makejava * @author makejava
* @since 2021-06-24 11:57:43 * @since 2021-06-24 11:57:43
*/ */
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Builder @Builder
@TableName(value = "v_marriage_stats") @TableName(value = "v_marriage_stats")
public class VMarriageStats { public class VMarriageStats {
/** /**
* id * id
*/ */
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
/** /**
* 区域码 * 区域码
*/ */
@ApiModelProperty("区域码") @ApiModelProperty("区域码")
private String areaCode; private String areaCode;
/** /**
* 区域名 * 区域名
*/ */
@ApiModelProperty("区域名") @ApiModelProperty("区域名")
private String areaName; private String areaName;
/** /**
* 年份 * 年份
*/ */
@ApiModelProperty("年份") @ApiModelProperty("年份")
private Integer year; private Integer year;
/** /**
* 结婚人数 * 结婚人数
*/ */
@ApiModelProperty("结婚人数") @ApiModelProperty("结婚人数")
private Integer marryNum; private Integer marryNum;
/** /**
* 申请离婚人数 * 申请离婚人数
*/ */
@ApiModelProperty("申请离婚人数") @ApiModelProperty("申请离婚人数")
private Integer inDivorceNum; private Integer inDivorceNum;
/** /**
* 离婚成功 * 离婚成功
*/ */
@ApiModelProperty("离婚成功") @ApiModelProperty("离婚成功")
private Integer divorceNum; private Integer divorceNum;
/** /**
* 跨地区结婚人数 * 跨地区结婚人数
*/ */
@ApiModelProperty("跨地区结婚人数") @ApiModelProperty("跨地区结婚人数")
private Integer crossMarryNum; private Integer crossMarryNum;
/** /**
* 跨地区离婚人数 * 跨地区离婚人数
*/ */
@ApiModelProperty("跨地区离婚人数") @ApiModelProperty("跨地区离婚人数")
private Integer crossDivorceNum; private Integer crossDivorceNum;
/** /**
* 跨地区结婚人数 * 跨地区结婚人数
*/ */
@ApiModelProperty("补领结婚证人数") @ApiModelProperty("补领结婚证人数")
private Integer patchMarryCaNum; private Integer patchMarryCaNum;
/** /**
* 补领离婚证人数 * 补领离婚证人数
*/ */
@ApiModelProperty("补领离婚证人数") @ApiModelProperty("补领离婚证人数")
private Integer patchDivorceCaNum; private Integer patchDivorceCaNum;
/** /**
* createTime * createTime
*/ */
private Date createTime; private Date createTime;
} }
package com.zq.portal.vo; package com.zq.portal.vo;
import lombok.*; import lombok.*;
/** /**
* @author 婚姻 * @author 婚姻
*/ */
@Getter @Getter
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Builder @Builder
public class HYVo { public class HYVo {
private String id; private String id;
private String bookId; private String bookId;
/** /**
* IA或C 结婚 IB 离婚 * IA或C 结婚 IB 离婚
*/ */
private String opType; private String opType;
private String marryType; private String marryType;
private String redoType; private String redoType;
private String deptCode; private String deptCode;
private String deptName; private String deptName;
private String nameMan; private String nameMan;
private String nameWoman; private String nameWoman;
private String birthMan; private String birthMan;
private String birthWoman; private String birthWoman;
private String idTypeMan; private String idTypeMan;
private String idTypeWoman; private String idTypeWoman;
private String certTypeMan; private String certTypeMan;
private String certTypeWoman; private String certTypeWoman;
private String certNumMan; private String certNumMan;
private String certNumWoman; private String certNumWoman;
private String nationMan; private String nationMan;
private String nationWoman; private String nationWoman;
private String folkMan; private String folkMan;
private String folkWoman; private String folkWoman;
private String jobMan; private String jobMan;
private String jobWoman; private String jobWoman;
private String degreeMan; private String degreeMan;
private String degreeWoman; private String degreeWoman;
private String marryStatusMan; private String marryStatusMan;
private String marryStatusWoman; private String marryStatusWoman;
private String registypeMan; private String registypeMan;
private String registypeWoman; private String registypeWoman;
private String regSjMan; private String regSjMan;
private String regSjWoman; private String regSjWoman;
private String regDsMan; private String regDsMan;
private String regDsWoman; private String regDsWoman;
private String regQxMan; private String regQxMan;
private String regQxWoman; private String regQxWoman;
private String regJxMan; private String regJxMan;
private String regJxWoman; private String regJxWoman;
private String regDetailMan; private String regDetailMan;
private String regDetailWoman; private String regDetailWoman;
private String printNumMan; private String printNumMan;
private String printNumWoman; private String printNumWoman;
private String picIdMan; private String picIdMan;
private String picIdWoman; private String picIdWoman;
private String certProofMan; private String certProofMan;
private String certProofWoman; private String certProofWoman;
private String oldCertNo; private String oldCertNo;
private String oldDeptId; private String oldDeptId;
private String oldDeptCode; private String oldDeptCode;
private String oldDeptName; private String oldDeptName;
private String oldOpDate; private String oldOpDate;
private String certNo; private String certNo;
private String opDate; private String opDate;
private String operator; private String operator;
private String operatorId; private String operatorId;
private String checkCode; private String checkCode;
private String checkData; private String checkData;
private String renewFlag; private String renewFlag;
private String remedyFlag; private String remedyFlag;
private String cohabitDate; private String cohabitDate;
private String cancelProof; private String cancelProof;
private String dataSource; private String dataSource;
private String docCode; private String docCode;
private String docYear; private String docYear;
private String docPageNum; private String docPageNum;
private String docNo; private String docNo;
private String divorceReason; private String divorceReason;
private String redoReason; private String redoReason;
private String applyMan; private String applyMan;
private String applyDate; private String applyDate;
private String delegateFlag; private String delegateFlag;
private String delegateType; private String delegateType;
private String delegatedName; private String delegatedName;
private String delegatedCertType; private String delegatedCertType;
private String delegatedCertNo; private String delegatedCertNo;
private String linkKindMan; private String linkKindMan;
private String linkKindWoman; private String linkKindWoman;
private String addressNowMan; private String addressNowMan;
private String addressNowWoman; private String addressNowWoman;
private String remark; private String remark;
private String validFlag; private String validFlag;
private String printRemark; private String printRemark;
private String nameManEn; private String nameManEn;
private String nameWomanEn; private String nameWomanEn;
} }
package com.zq.portal.vo; package com.zq.portal.vo;
import com.zq.common.vo.PageReqVo; import com.zq.common.vo.PageReqVo;
import com.zq.portal.entity.SystemArea; import com.zq.portal.entity.SystemArea;
import lombok.*; import lombok.*;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class SearchReqVo extends PageReqVo { public class SearchReqVo extends PageReqVo {
@Builder.Default @Builder.Default
private String areaCode = "450000000000"; private String areaCode = "450000000000";
private String subAreaCode; private String subAreaCode;
private String keyword; private String keyword;
public String getAreaCode() { private String IAcount;
return SystemArea.patchZero(areaCode);
} private String IBcount;
} public String getAreaCode() {
return SystemArea.patchZero(areaCode);
}
}
package com.zq.resource.controller; package com.zq.resource.controller;
import com.zq.common.utils.AssertUtils; import com.zq.common.annotation.AnonymousAccess;
import com.zq.common.vo.IdVo; import com.zq.common.utils.AssertUtils;
import com.zq.common.vo.PageVo; import com.zq.common.vo.IdVo;
import com.zq.common.vo.ResultVo; import com.zq.common.vo.PageVo;
import com.zq.resource.entity.OrgDept; import com.zq.common.vo.ResultVo;
import com.zq.resource.service.DeptService; import com.zq.resource.entity.OrgDept;
import com.zq.resource.vo.OrgDeptFindVo; import com.zq.resource.service.DeptService;
import com.zq.resource.vo.OrgDeptVo; import com.zq.resource.vo.OrgDeptFindVo;
import io.swagger.annotations.Api; import com.zq.resource.vo.OrgDeptVo;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.List;
/**
* @author wilmiam /**
* @since 2021/8/19 14:33 * @author wilmiam
*/ * @since 2021/8/19 14:33
@Api(tags = "机构部门相关接口") */
@RequiredArgsConstructor @Api(tags = "机构部门相关接口")
@RestController @RequiredArgsConstructor
@RequestMapping(value = "/resource/dept") @RestController
public class DeptController { @RequestMapping(value = "/resource/dept")
public class DeptController {
private final DeptService deptService;
private final DeptService deptService;
@ApiOperation("获取机构列表")
@PostMapping(value = "/getDeptList") @ApiOperation("获取机构列表")
public ResultVo<PageVo<OrgDept>> getDeptList(@RequestBody OrgDeptFindVo vo) { @PostMapping(value = "/getDeptList")
vo.setState(1); public ResultVo<PageVo<OrgDept>> getDeptList(@RequestBody OrgDeptFindVo vo) {
return ResultVo.success(deptService.getDeptList(vo)); vo.setState(1);
} return ResultVo.success(deptService.getDeptList(vo));
}
@ApiOperation("获取机构信息")
@GetMapping(value = "/getDeptInfo/{deptId}") @ApiOperation("获取机构信息")
public ResultVo<OrgDeptVo> getDeptInfo(@PathVariable String deptId) { @GetMapping(value = "/getDeptInfo/{deptId}")
AssertUtils.notNull(deptId, "缺少机构ID"); public ResultVo<OrgDeptVo> getDeptInfo(@PathVariable String deptId) {
return ResultVo.success(deptService.getDeptInfo(deptId)); AssertUtils.notNull(deptId, "缺少机构ID");
} return ResultVo.success(deptService.getDeptInfo(deptId));
}
@ApiOperation("根据部门PID查询子机构")
@GetMapping(value = "/getDeptByPid/{parentId}") @ApiOperation("根据部门PID查询子机构")
public ResultVo<List<OrgDept>> getDeptByPid(@PathVariable String parentId) { @GetMapping(value = "/getDeptByPid/{parentId}")
return ResultVo.success(deptService.getDeptByPid(parentId)); public ResultVo<List<OrgDept>> getDeptByPid(@PathVariable String parentId) {
} return ResultVo.success(deptService.getDeptByPid(parentId));
}
@ApiOperation("添加机构")
@PostMapping(value = "/addDept") @ApiOperation("添加机构")
public ResultVo addDept(@RequestBody OrgDept vo) { @PostMapping(value = "/addDept")
AssertUtils.hasText(vo.getDeptName(), "缺少机构名称"); public ResultVo addDept(@RequestBody OrgDept vo) {
AssertUtils.hasText(vo.getCreditCode(), "缺少部门的统一信用代码"); AssertUtils.hasText(vo.getDeptName(), "缺少机构名称");
AssertUtils.hasText(vo.getCreditCode(), "缺少部门的统一信用代码");
deptService.addDept(vo);
return ResultVo.success(); deptService.addDept(vo);
} return ResultVo.success();
}
@ApiOperation("修改机构")
@PostMapping(value = "/modifyDept") @ApiOperation("修改机构")
public ResultVo modifyDept(@RequestBody OrgDept vo) { @PostMapping(value = "/modifyDept")
AssertUtils.hasText(vo.getId(), "ID不能为空"); public ResultVo modifyDept(@RequestBody OrgDept vo) {
AssertUtils.hasText(vo.getId(), "ID不能为空");
deptService.modifyDept(vo);
return ResultVo.success(); deptService.modifyDept(vo);
} return ResultVo.success();
}
@ApiOperation("获取机构树")
@GetMapping(value = "/getDeptTree") @ApiOperation("获取机构树")
public ResultVo getDeptTree() { @GetMapping(value = "/getDeptTree")
return ResultVo.success(deptService.getDeptTree()); public ResultVo getDeptTree() {
} return ResultVo.success(deptService.getDeptTree());
}
@ApiOperation("机构注册")
@PostMapping(value = "/share/registerDept") @ApiOperation("机构注册")
public ResultVo registerDept(@RequestBody IdVo vo) { @PostMapping(value = "/share/registerDept")
AssertUtils.notEmpty(vo.getIds(), "至少选择一项"); @AnonymousAccess
public ResultVo registerDept(@RequestBody IdVo vo) {
deptService.registerDept(vo.getIds()); AssertUtils.notEmpty(vo.getIds(), "至少选择一项");
return ResultVo.success();
} deptService.registerDept(vo.getIds());
return ResultVo.success();
} }
}
/* /*
* Copyright 2019-2020 Zheng Jie * Copyright 2019-2020 Zheng Jie
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.zq.system.modules.system.service; package com.zq.system.modules.system.service;
import com.zq.system.modules.tools.domain.vo.EmailVo; import com.zq.system.modules.tools.domain.vo.EmailVo;
/** /**
* @author Zheng Jie * @author Zheng Jie
* @date 2018-12-26 * @date 2018-12-26
*/ */
public interface VerifyService { public interface VerifyService {
/** /**
* 发送验证码 * 发送验证码
* *
* @param email / * @param email /
* @param key / * @param key /
* @return / * @return /
*/ */
EmailVo sendEmail(String email, String key); EmailVo sendEmail(String email, String key);
/** /**
* 验证 * 验证
* *
* @param code / * @param code /
* @param key / * @param key /
*/ */
void validated(String key, String code); void validated(String key, String code);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment