Commit 18a10678 by wqc

app数据修改

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