springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java
New file @@ -0,0 +1,85 @@ package com.panzhihua.applets.api; import javax.annotation.Resource; import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO; import org.springframework.web.bind.annotation.GetMapping; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; /** * @title: IdentityAuthApi 身份认证相关API * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 小程序端身份认证相关 * @author: hans * @date: 2021/09/01 16:00 */ @Slf4j @RestController @RequestMapping("/identity-auth") @Api(tags = {"身份认证"}) public class IdentityAuthApi extends BaseController { @Resource private CommunityService communityService; @ApiOperation(value = "查询社区身份认证方式", response = R.class) @GetMapping("/mode") public R getIdentityAuthMode(@RequestParam(value = "communityId") @ApiParam(value = "社区id", required = true) Long communityId, @RequestParam(value = "identityAuthType") @ApiParam(value = "身份认证类型", required = true) Integer identityAuthType) { return communityService.getIdentityAuthMode(communityId, identityAuthType); } @ApiOperation(value = "身份认证获取EidToken接口") @PostMapping("/getEidToken") public R getEidToken(@RequestBody GetIdentityEidTokenDTO getIdentityEidTokenDTO) { return communityService.getEidToken(getIdentityEidTokenDTO); } @ApiOperation(value = "新增身份认证") @PostMapping("/add") public R addIdentityAuth(@RequestBody AddIdentityAuthDTO addIdentityAuthDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); addIdentityAuthDTO.setSubmitUserId(loginUserInfo.getUserId()); addIdentityAuthDTO.setCommunityId(loginUserInfo.getCommunityId()); return communityService.addIdentityAuth(addIdentityAuthDTO); } @ApiOperation(value = "分页查询身份认证记录", response = IdentityAuthRecordDetailVO.class) @PostMapping("/record/page") public R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { pageIdentityAuthRecordDTO.setSubmitUserId(this.getUserId()); return communityService.queryRecordWithPage(pageIdentityAuthRecordDTO); } @ApiOperation(value = "获取身份认证详情", response = IdentityAuthRecordDetailVO.class) @GetMapping("/detail") public R retrieveIdentityAuthDetail(@RequestParam("authType") @ApiParam(value = "身份认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1") Integer authType, @RequestParam("identityAuthId") @ApiParam(value = "身份认证id", required = true, example = "1") Long identityAuthId) { return communityService.retrieveIdentityAuthDetail(authType, identityAuthId); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java
New file @@ -0,0 +1,65 @@ package com.panzhihua.common.model.dtos.community; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; import com.panzhihua.common.model.helper.sensitive.Sensitive; import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @title: AddIdentityAuthDTO * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 新增身份认证 * @author: hans * @date: 2021/09/03 9:43 */ @Data @ApiModel("新增身份认证参数") @EncryptDecryptClass public class AddIdentityAuthDTO { @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1") @NotNull private Integer authType; @ApiModelProperty(value = "姓名", required = true, example = "张三") @Sensitive(strategy = SensitiveStrategy.USERNAME) @NotBlank private String name; @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233") @Sensitive(strategy = SensitiveStrategy.ID_CARD) @EncryptDecryptField @NotBlank @Size(min = 18, max = 18) private String idCard; @ApiModelProperty(value = "现居住地址", required = true, example = "双流小区") @NotBlank private String address; @ApiModelProperty(value = "认证视频url,视频认证时需传入", example = "http://test.video.html") private String authVideo; @ApiModelProperty(value = "用户eidToken,人脸核验时需传入") private String eidToken; @ApiModelProperty(value = "提交用户", hidden = true) private Long submitUserId; @ApiModelProperty(value = "人脸核身结果数据", hidden = true) private String verificationResult; @ApiModelProperty(value = "身份认证方式 1.视频认证 2.人脸认证", hidden = true) private Integer type = 1; @ApiModelProperty(value = "社区id", hidden = true) private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java
New file @@ -0,0 +1,43 @@ package com.panzhihua.common.model.dtos.community; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; import com.panzhihua.common.model.helper.sensitive.Sensitive; import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @title: GetIdentityEidTokenDTO * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 获取身份认证人脸核验token参数 * @author: hans * @date: 2021/09/13 11:07 */ @Data @ApiModel("获取身份认证人脸核验token参数") @EncryptDecryptClass public class GetIdentityEidTokenDTO { @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1") @NotNull private Integer authType; @ApiModelProperty(value = "姓名", required = true, example = "张三") @Sensitive(strategy = SensitiveStrategy.USERNAME) @NotBlank private String name; @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233") @Sensitive(strategy = SensitiveStrategy.ID_CARD) @EncryptDecryptField @NotBlank @Size(min = 18, max = 18) private String idCard; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java
New file @@ -0,0 +1,37 @@ package com.panzhihua.common.model.dtos.community; import javax.validation.constraints.NotNull; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @title: PageIdentityAuthRecordDTO * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 分页查询身份认证记录 * @author: hans * @date: 2021/09/03 9:39 */ @Data @ApiModel("分页查询身份认证记录参数") @EncryptDecryptClass public class PageIdentityAuthRecordDTO { @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1") @NotNull private Integer authType; @ApiModelProperty(value = "当前页数", required = true, example = "1") @NotNull private Long pageNum; @ApiModelProperty(value = "每页记录数", required = true, example = "10") @NotNull private Long pageSize; @ApiModelProperty(value = "提交用户", example = "1") private Long submitUserId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java
New file @@ -0,0 +1,60 @@ package com.panzhihua.common.model.vos.community; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; import com.panzhihua.common.model.helper.sensitive.Sensitive; import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @title: IdentityAuthRecordDetailVO * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 身份认证记录详情 * @author: hans * @date: 2021/09/03 15:32 */ @Data @ApiModel("身份认证记录详情") @EncryptDecryptClass public class IdentityAuthRecordDetailVO { @ApiModelProperty(value = "自增id") private Long id; @ApiModelProperty(value = "姓名") @Sensitive(strategy = SensitiveStrategy.USERNAME) private String name; @ApiModelProperty(value = "身份证号") @Sensitive(strategy = SensitiveStrategy.ID_CARD) @EncryptDecryptField private String idCard; @ApiModelProperty(value = "现居住地址") private String address; @ApiModelProperty(value = "认证期数") private String authPeriod; @ApiModelProperty(value = "管辖社区") private String communityName; @ApiModelProperty(value = "认证时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date authDate; @ApiModelProperty(value = "认证状态(1.待审核 2.认证失败 3.已认证)") private Integer approvalStatus; @ApiModelProperty(value = "认证视频url") private String authVideo; @ApiModelProperty(value = "驳回原因") private String rejectReason; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2,9 +2,7 @@ import java.util.List; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.vos.community.*; import io.swagger.annotations.ApiOperation; import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -18,6 +16,77 @@ import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO; import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO; import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.CancelRecordDTO; import com.panzhihua.common.model.dtos.community.CascadeHouseDTO; import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO; import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO; import com.panzhihua.common.model.dtos.community.ComActDiscussDTO; import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO; import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO; import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO; import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO; import com.panzhihua.common.model.dtos.community.ComCvtCategoryDTO; import com.panzhihua.common.model.dtos.community.ComCvtServeDTO; import com.panzhihua.common.model.dtos.community.ComExServicemanDTO; import com.panzhihua.common.model.dtos.community.ComMngCarAppletDTO; import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseEditAdminDTO; import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO; import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO; import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO; import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO; import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO; import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO; import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO; import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO; import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO; import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO; import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO; import com.panzhihua.common.model.dtos.community.EldersAuthAddByFamilyDTO; import com.panzhihua.common.model.dtos.community.EldersAuthAddDTO; import com.panzhihua.common.model.dtos.community.EldersAuthDeleteDTO; import com.panzhihua.common.model.dtos.community.EldersAuthEditDTO; import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO; import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO; import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO; import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO; import com.panzhihua.common.model.dtos.community.ExportRealAssetsExcelDTO; import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO; import com.panzhihua.common.model.dtos.community.GrantRewardDTO; import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO; import com.panzhihua.common.model.dtos.community.OperationDetailDTO; import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO; import com.panzhihua.common.model.dtos.community.PageComActDTO; import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO; import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO; import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO; import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO; import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO; import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO; import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO; import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO; import com.panzhihua.common.model.dtos.community.PageComMngCarDTO; import com.panzhihua.common.model.dtos.community.PageComMngRealAssetsDTO; import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO; import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO; import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO; import com.panzhihua.common.model.dtos.community.PageComStreetDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthHistoryDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO; import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO; import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO; import com.panzhihua.common.model.dtos.community.PageUserReserveDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; @@ -39,7 +108,18 @@ import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO; import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO; import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO; import com.panzhihua.common.model.dtos.community.reserve.*; import com.panzhihua.common.model.dtos.community.reserve.AddReserveAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.CancelReserveRecordDTO; import com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO; import com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO; import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveInfoDTO; import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveStatusDTO; import com.panzhihua.common.model.dtos.community.reserve.EditReserveAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.MakeHandleAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO; import com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO; import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO; import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO; import com.panzhihua.common.model.dtos.community.wallet.ComActWalletSettlementAdminDTO; @@ -108,6 +188,53 @@ import com.panzhihua.common.model.vos.DictionaryVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.SystemmanagementConfigVO; import com.panzhihua.common.model.vos.community.ActivitySignVO; import com.panzhihua.common.model.vos.community.BatchhouseVO; import com.panzhihua.common.model.vos.community.ComActActEvaluateVO; import com.panzhihua.common.model.vos.community.ComActActRegistVO; import com.panzhihua.common.model.vos.community.ComActActivityVO; import com.panzhihua.common.model.vos.community.ComActDynVO; import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; import com.panzhihua.common.model.vos.community.ComActMessageBackVO; import com.panzhihua.common.model.vos.community.ComActMessageVO; import com.panzhihua.common.model.vos.community.ComActMicroWishVO; import com.panzhihua.common.model.vos.community.ComActReserveCommitVO; import com.panzhihua.common.model.vos.community.ComActVO; import com.panzhihua.common.model.vos.community.ComActWorkGuideVO; import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO; import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO; import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO; import com.panzhihua.common.model.vos.community.ComMngCarExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationCorrectExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationCultExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationDisabilityExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationDrugExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationKeyExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationLowSecurityExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationMajorExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationRehabilitationExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationSentenceExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO; import com.panzhihua.common.model.vos.community.ComMngPopulationVO; import com.panzhihua.common.model.vos.community.ComMngPopulationVeteransExcelVO; import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO; import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO; import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO; import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO; import com.panzhihua.common.model.vos.community.ComMngStructAreaVO; import com.panzhihua.common.model.vos.community.ComMngStructHouseVO; import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO; import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO; import com.panzhihua.common.model.vos.community.ComMngVillageVO; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO; import com.panzhihua.common.model.vos.community.ComOpsHouseVO; import com.panzhihua.common.model.vos.community.ComStreetVO; import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO; import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO; import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO; import com.panzhihua.common.model.vos.community.ResetComActMessageVO; import com.panzhihua.common.model.vos.community.SignactivityVO; import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticAgeGender; import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyActivity; import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyBuild; @@ -115,7 +242,6 @@ import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; import com.panzhihua.common.model.vos.community.reserve.*; import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO; import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO; import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO; @@ -5192,4 +5318,48 @@ */ @PostMapping("/activity/default-praise") R timedTaskActivityDefaultPraise(); /** * 新增身份认证 * @param addIdentityAuthDTO 新增身份认证请求参数 * @return 新增结果结果 */ @PostMapping("/identity-auth/add") R addIdentityAuth(@RequestBody AddIdentityAuthDTO addIdentityAuthDTO); /** * 分页查询身份认证记录 * @param pageIdentityAuthRecordDTO 分页查询身份认证记录参数 * @return 身份认证记录列表 */ @PostMapping("/identity-auth/record/page") R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO); /** * 获取身份认证详情 * @param authType 认证类型 * @param identityAuthId 认证id * @return 认证记录详情 */ @GetMapping("/identity-auth/detail") R retrieveIdentityAuthDetail(@RequestParam("authType") Integer authType, @RequestParam("identityAuthId") Long identityAuthId); /** * 获取身份认证方式 * @param communityId * @param identityAuthType * @return 认证方式 */ @GetMapping("/identity-auth/mode") R getIdentityAuthMode(@RequestParam(value = "communityId") Long communityId, @RequestParam(value = "identityAuthType") Integer identityAuthType); /** * 获取身份认证人脸核验token * @param getIdentityEidTokenDTO * @return token */ @PostMapping("/identity-auth/getEidToken") R getEidToken(@RequestBody GetIdentityEidTokenDTO getIdentityEidTokenDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java
New file @@ -0,0 +1,203 @@ package com.panzhihua.service_community.api; import static java.util.Objects.nonNull; import static org.apache.commons.lang3.StringUtils.isBlank; import javax.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.SysConfVO; import com.panzhihua.common.utlis.TencentUtils; import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO; import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO; import com.panzhihua.service_community.dao.SysConfMapper; import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO; import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO; import com.panzhihua.service_community.model.dos.SysConfDO; import com.panzhihua.service_community.service.ComElderAuthRecordsService; import com.panzhihua.service_community.service.ComPensionAuthRecordService; import lombok.extern.slf4j.Slf4j; /** * @title: IdentityAuthApi * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 身份认证相关api * @author: hans * @date: 2021/09/01 18:06 */ @Slf4j @RestController @RequestMapping("/identity-auth") public class IdentityAuthApi { private static final String ELDER_AUTH_TYPE_PREFIX = "ELDER_AUTH_TYPE_"; private static final String PENSION_AUTH_TYPE_PREFIX = "PENSION_AUTH_TYPE_"; @Resource private ComElderAuthRecordsService comElderAuthRecordsService; @Resource private ComPensionAuthRecordService comPensionAuthRecordService; @Resource private SysConfMapper sysConfDao; @Resource private ComElderAuthElderliesDAO comElderAuthElderliesDAO; @Resource private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO; @Value("${domain.aesKey:}") private String aesKey; /** * 新增身份认证 * @param addIdentityAuthDTO 新增身份认证请求参数 * @return 新增结果 */ @PostMapping("/add") public R addIdentityAuth(@RequestBody AddIdentityAuthDTO addIdentityAuthDTO) { String eidToken = addIdentityAuthDTO.getEidToken(); boolean isEidTokenBlank = isBlank(eidToken); if (!Boolean.logicalXor(isEidTokenBlank, isBlank(addIdentityAuthDTO.getAuthVideo()))) { return R.fail("缺少认证参数"); } if (!isEidTokenBlank) { String result = TencentUtils.getEidResult(eidToken); JSONObject object = JSON.parseObject(result); if (object == null) { return R.fail("核验失败"); } JSONObject textObject = object.getJSONObject("Text"); String code = textObject.getString("ErrCode"); if (!code.equals("0")) { log.error("人脸核验失败,错误原因:" + textObject.toJSONString()); return R.fail("核验失败"); } addIdentityAuthDTO.setType(2); addIdentityAuthDTO.setVerificationResult(object.toJSONString()); } int authType = addIdentityAuthDTO.getAuthType().intValue(); if (authType == 1) { return comElderAuthRecordsService.addElderAuth(addIdentityAuthDTO); } else if (authType == 2) { return comPensionAuthRecordService.addPensionAuth(addIdentityAuthDTO); } else { return R.fail("请核对需要认证的类型"); } } /** * 分页查询身份认证记录 * @param pageIdentityAuthRecordDTO 分页查询身份认证记录参数 * @return 身份认证记录列表 */ @PostMapping("/record/page") public R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { Integer authType = pageIdentityAuthRecordDTO.getAuthType(); if (nonNull(authType) && authType.intValue() == 1) { return comElderAuthRecordsService.queryRecordWithPage(pageIdentityAuthRecordDTO); } else if (nonNull(authType) && authType.intValue() == 2) { return comPensionAuthRecordService.queryRecordWithPage(pageIdentityAuthRecordDTO); } else { return R.fail("请核对需要查询的身份认证类型"); } } /** * 获取身份认证详情 * @param authType 认证类型 * @param identityAuthId 认证id * @return 认证记录详情 */ @GetMapping("/detail") public R retrieveIdentityAuthDetail(@RequestParam("authType") Integer authType, @RequestParam("identityAuthId") Long identityAuthId) { if (authType.intValue() == 1) { return comElderAuthRecordsService.retrieveElderAuthDetail(identityAuthId); } else if (authType.intValue() == 2) { return comPensionAuthRecordService.retrievePensionAuthDetail(identityAuthId); } else { return R.fail("请核对认证类型"); } } /** * 获取身份认证方式 * @param communityId * @param identityAuthType * @return 认证方式 */ @GetMapping("/mode") public R getIdentityAuthMode(@RequestParam(value = "communityId") Long communityId, @RequestParam(value = "identityAuthType") Integer identityAuthType) { String identityCode; if (identityAuthType.intValue() ==1) { //高龄认证 identityCode = ELDER_AUTH_TYPE_PREFIX + communityId; } else if (identityAuthType.intValue() ==2) { //养老认证 identityCode = PENSION_AUTH_TYPE_PREFIX + communityId; } else { return R.fail("身份认证类型错误"); } SysConfDO sysConfDO = sysConfDao.selectOne(new QueryWrapper<SysConfDO>() .lambda().eq(SysConfDO::getCode, identityCode).eq(SysConfDO::getCommunityId, communityId)); if (nonNull(sysConfDO)) { SysConfVO sysConfVO = new SysConfVO(); BeanUtils.copyProperties(sysConfDO, sysConfVO); return R.ok(sysConfVO.getValue()); } return R.fail("获取失败!"); } /** * 获取身份认证人脸核验token * @param getIdentityEidTokenDTO * @return token */ @PostMapping("/getEidToken") public R getEidToken(@RequestBody GetIdentityEidTokenDTO getIdentityEidTokenDTO) { int isExist; String idCard; try { idCard = AESUtil.encrypt128(getIdentityEidTokenDTO.getIdCard(), aesKey); } catch (Exception e) { e.printStackTrace(); log.error("加密失败【{}】", e.getMessage()); return R.fail("认证失败,请重新尝试"); } if (getIdentityEidTokenDTO.getAuthType().intValue() == 1) { //高龄认证 isExist = comElderAuthElderliesDAO.selectCount(new QueryWrapper<ComElderAuthElderliesDO>() .lambda().eq(ComElderAuthElderliesDO::getName, getIdentityEidTokenDTO.getName()) .eq(ComElderAuthElderliesDO::getIdCard, idCard)); } else if (getIdentityEidTokenDTO.getAuthType().intValue() == 2) { //养老认证 isExist = comPensionAuthPensionerDAO.selectCount(new QueryWrapper<ComPensionAuthPensionerDO>() .lambda().eq(ComPensionAuthPensionerDO::getName, getIdentityEidTokenDTO.getName()) .eq(ComPensionAuthPensionerDO::getIdCard, idCard)); } else { return R.fail("请核对身份认证类型"); } if (isExist <= 0) { return R.fail("该人员未在社区报道无法认证"); } // 获取EidToken return R.ok(TencentUtils.getEidToken(getIdentityEidTokenDTO.getName(), getIdentityEidTokenDTO.getIdCard())); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
@@ -1,8 +1,14 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO; import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO; /** * title: ComElderAuthRecordsDAO 社区政务》高龄老人认证》认证记录表mapper类 @@ -15,4 +21,18 @@ @Mapper public interface ComElderAuthRecordsDAO extends BaseMapper<ComElderAuthRecordsDO> { /** * 分页查询高龄认证记录 * @param page 分页参数 * @param pageIdentityAuthRecordDTO * @return */ IPage<IdentityAuthRecordDetailVO> queryRecordWithPage(@Param("page") Page page, @Param("pageIdentityAuthRecordDTO") PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO); /** * 获取身份认证详情 * @param identityAuthId 认证id * @return ComElderAuthRecordVO */ IdentityAuthRecordDetailVO findById(@Param("identityAuthId") Long identityAuthId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
@@ -1,8 +1,13 @@ package com.panzhihua.service_community.dao; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO; import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO; /** @@ -14,4 +19,19 @@ */ @Mapper public interface ComPensionAuthRecordDAO extends BaseMapper<ComPensionAuthRecordDO> { /** * 分页查询养老认证记录 * @param page 分页参数 * @param pageIdentityAuthRecordDTO * @return */ IPage<IdentityAuthRecordDetailVO> queryRecordWithPage(@Param("page") Page page, @Param("pageIdentityAuthRecordDTO") PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO); /** * 获取养老认证详情 * @param identityAuthId 认证id * @return ComPensionAuthRecordVO */ IdentityAuthRecordDetailVO findById(@Param("identityAuthId") Long identityAuthId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java
@@ -80,12 +80,12 @@ /** * 是否高龄老人登记(1.是 0.否) */ private Integer isRegister; private Boolean isRegister; /** * 是否健在(1.是 0.否) */ private Integer isAlive; private Boolean isAlive; /** * 居住地址 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
@@ -1,11 +1,15 @@ package com.panzhihua.service_community.model.dos; import com.baomidou.mybatisplus.annotation.*; import io.swagger.models.auth.In; import lombok.Data; import java.io.Serializable; import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * title: ComElderAuthRecordsDO 社区政务》高龄老人认证》认证记录表实体类 @@ -44,14 +48,29 @@ private Long submitUserId; /** * 身份认证方式 1.视频认证 2.人脸认证 */ private Integer type; /** * 人脸核验结果数据 */ private String verificationResult; /** * 认证视频 */ private String authVideo; /** * 现居地址 */ private String address; /** * 审核人员 */ private String approver; private Long approverId; /** * 审核状态(1.待审核 2.驳回 3.通过) @@ -102,7 +121,8 @@ ", authPeriod=" + authPeriod + ", submitUserId=" + submitUserId + ", authVideo=" + authVideo + ", approver=" + approver + ", address=" + address + ", approverId=" + approverId + ", approvalStatus=" + approvalStatus + ", approvalDate=" + approvalDate + ", mark=" + mark + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java
@@ -70,11 +70,11 @@ /** * 是否养老登记(1.是 0.否) */ private Integer isRegister; private Boolean isRegister; /** * 是否健在(1.是 0.否) */ private Integer isAlive; private Boolean isAlive; /** * 居住地址 */ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
@@ -39,14 +39,31 @@ *认证期数 */ private String authPeriod; /** * 身份认证方式 1.视频认证 2.人脸认证 */ private Integer type; /** * 人脸核验结果数据 */ private String verificationResult; /** * 认证视频 */ private String authVideo; /** *审核人员 * 现居地址 */ private String approver; private String address; /** *审核人员id */ private Long approverId; /** *审核状态(1.待审核 2.驳回 3.通过) */ @@ -66,15 +83,11 @@ /** *认证状态(1.已认证 0.未认证) */ private Integer authStatus; private Boolean authStatus; /** *认证时间 */ private Date authDate; /** *社区id */ private Long communityId; /** *创建时间 */ @@ -92,14 +105,14 @@ ", submitUserId=" + submitUserId + ", authPeriod='" + authPeriod + '\'' + ", authVideo='" + authVideo + '\'' + ", approver='" + approver + '\'' + ", address='" + address + '\'' + ", approverId='" + approverId + '\'' + ", approvalStatus=" + approvalStatus + ", approvalDate=" + approvalDate + ", mark='" + mark + '\'' + ", rejectReason='" + rejectReason + '\'' + ", authStatus=" + authStatus + ", authDate=" + authDate + ", communityId=" + communityId + ", createAt=" + createAt + ", updateAt=" + updateAt + '}'; springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
@@ -1,6 +1,9 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO; /** @@ -13,4 +16,24 @@ */ public interface ComElderAuthRecordsService extends IService<ComElderAuthRecordsDO> { /** * 新增高龄认证 * @param addIdentityAuthDTO 请求参数 * @return 新增结果 */ R addElderAuth(AddIdentityAuthDTO addIdentityAuthDTO); /** * 分页查询高龄认证记录 * @param pageIdentityAuthRecordDTO 查询参数 * @return 高龄认证记录列表 */ R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO); /** * 获取高龄认证详情 * @param identityAuthId 认证id * @return 认证记录详情 */ R retrieveElderAuthDetail(Long identityAuthId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
@@ -1,6 +1,9 @@ package com.panzhihua.service_community.service; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO; /** @@ -12,4 +15,24 @@ */ public interface ComPensionAuthRecordService extends IService<ComPensionAuthRecordDO> { /** * 新增养老认证 * @param addIdentityAuthDTO 请求参数 * @return 新增结果 */ R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO); /** * 分页查询养老认证记录 * @param pageIdentityAuthRecordDTO 查询参数 * @return 养老认证记录列表 */ R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO); /** * 获取养老认证详情 * @param identityAuthId 认证id * @return 认证记录详情 */ R retrievePensionAuthDetail(Long identityAuthId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -1,11 +1,36 @@ package com.panzhihua.service_community.service.impl; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; import javax.annotation.Resource; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO; import com.panzhihua.service_community.dao.ComElderAuthRecordsDAO; import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO; import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO; import com.panzhihua.service_community.service.ComElderAuthRecordsService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * title: ComElderAuthRecordsServiceImpl 社区政务》高龄老人认证》认证记录表服务实现类 @@ -19,4 +44,91 @@ @Service public class ComElderAuthRecordsServiceImpl extends ServiceImpl<ComElderAuthRecordsDAO, ComElderAuthRecordsDO> implements ComElderAuthRecordsService { @Resource private ComElderAuthRecordsDAO comElderAuthRecordsDAO; @Resource private ComElderAuthElderliesDAO comElderAuthElderliesDAO; @Value("${domain.aesKey:}") private String aesKey; /** * 新增高龄认证 * @param addIdentityAuthDTO 请求参数 * @return 新增结果 */ @Override public R addElderAuth(AddIdentityAuthDTO addIdentityAuthDTO) { String idCard; try { idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey); } catch (Exception e) { e.printStackTrace(); log.error("加密失败【{}】", e.getMessage()); return R.fail("认证失败,请重新尝试"); } ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>() .lambda().eq(ComElderAuthElderliesDO::getIdCard, idCard).eq(ComElderAuthElderliesDO::getCommunityId, addIdentityAuthDTO.getCommunityId())); if (Objects.isNull(comElderAuthElderliesDO)) { return R.fail("该人员未在社区报道无法认证"); } boolean isInfoCorrect = !comElderAuthElderliesDO.getName().equals(addIdentityAuthDTO.getName()) || !(comElderAuthElderliesDO.getIsRegister() && comElderAuthElderliesDO.getIsAlive()); if (isInfoCorrect) { return R.fail("信息有误,请检查!"); } Date dateNow = new Date(); String currentAuthPeriod = new SimpleDateFormat("yyyyMM").format(dateNow); List<ComElderAuthRecordsDO> currentAuthPeriodRecords = comElderAuthRecordsDAO .selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda() .eq(ComElderAuthRecordsDO::getAuthPeriod, currentAuthPeriod) .eq(ComElderAuthRecordsDO::getElderliesId, comElderAuthElderliesDO.getId())); if (!currentAuthPeriodRecords.isEmpty()) { if (currentAuthPeriodRecords.stream().filter(record -> record.getAuthStatus()).findFirst().isPresent()) { return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod)); } if (currentAuthPeriodRecords.stream().filter(record -> record.getApprovalStatus().intValue() == 1).findFirst().isPresent()) { return R.fail("该人员本期有尚未审核的认证,请稍后再试!"); } } ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO(); BeanUtils.copyProperties(addIdentityAuthDTO, comElderAuthRecordsDO); comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId()); comElderAuthRecordsDO.setAuthDate(dateNow); comElderAuthRecordsDO.setAuthPeriod(currentAuthPeriod); if (addIdentityAuthDTO.getType().intValue() == 2) { comElderAuthRecordsDO.setApprovalStatus(3); comElderAuthRecordsDO.setApprovalDate(dateNow); comElderAuthRecordsDO.setAuthStatus(true); } if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) { return R.fail("认证失败,请重新尝试"); } return R.ok(); } public static void main(String[] args) throws Exception { System.out.println(AESUtil.encrypt128("500381199804034737", "Ryo7M3n8loC5")); } /** * 分页查询高龄认证记录 * @param pageIdentityAuthRecordDTO 高龄认证记录vo * @return 高龄认证记录列表 */ @Override public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { return R.ok(comElderAuthRecordsDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(), pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO)); } /** * 获取高龄认证详情 * @param identityAuthId 认证id * @return 认证记录详情 */ @Override public R retrieveElderAuthDetail(Long identityAuthId) { return R.ok(comElderAuthRecordsDAO.findById(identityAuthId)); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -1,9 +1,26 @@ package com.panzhihua.service_community.service.impl; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; import javax.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; import com.panzhihua.common.model.helper.AESUtil; import com.panzhihua.common.model.vos.R; import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO; import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO; import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO; import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO; import com.panzhihua.service_community.service.ComPensionAuthRecordService; @@ -19,4 +36,88 @@ @Slf4j @Service public class ComPensionAuthRecordServiceImpl extends ServiceImpl<ComPensionAuthRecordDAO, ComPensionAuthRecordDO> implements ComPensionAuthRecordService { @Resource private ComPensionAuthRecordDAO comPensionAuthRecordDAO; @Resource private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO; @Value("${domain.aesKey:}") private String aesKey; /** * 新增养老认证 * @param addIdentityAuthDTO 请求参数 * @return 新增结果 */ @Override public R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO) { String idCard; try { idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey); } catch (Exception e) { e.printStackTrace(); log.error("加密失败【{}】", e.getMessage()); return R.fail("认证失败,请重新尝试"); } ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>() .lambda().eq(ComPensionAuthPensionerDO::getIdCard, idCard).eq(ComPensionAuthPensionerDO::getCommunityId, addIdentityAuthDTO.getCommunityId())); if (Objects.isNull(comPensionAuthPensionerDO)) { return R.fail("该人员未在社区报道无法认证"); } boolean isInfoCorrect = !comPensionAuthPensionerDO.getName().equals(addIdentityAuthDTO.getName()) || !(comPensionAuthPensionerDO.getIsRegister() && comPensionAuthPensionerDO.getIsAlive()); if (isInfoCorrect) { return R.fail("信息有误,请检查!"); } Date dateNow = new Date(); String currentAuthPeriod = new SimpleDateFormat("yyyy").format(dateNow); List<ComPensionAuthRecordDO> currentAuthPeriodRecords = comPensionAuthRecordDAO .selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda() .eq(ComPensionAuthRecordDO::getAuthPeriod, currentAuthPeriod) .eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId())); if (!currentAuthPeriodRecords.isEmpty()) { if (currentAuthPeriodRecords.stream().filter(record -> record.getAuthStatus()).findFirst().isPresent()) { return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod)); } if (currentAuthPeriodRecords.stream().filter(record -> record.getApprovalStatus().intValue() == 1).findFirst().isPresent()) { return R.fail("该人员本期有尚未审核的认证,请稍后再试!"); } } ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO); comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); comPensionAuthRecordDO.setAuthDate(dateNow); comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod); if (addIdentityAuthDTO.getType().intValue() == 2) { comPensionAuthRecordDO.setApprovalStatus(3); comPensionAuthRecordDO.setApprovalDate(dateNow); comPensionAuthRecordDO.setAuthStatus(true); } if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { return R.fail("认证失败,请重新尝试"); } return R.ok(); } /** * 分页查询养老认证记录 * @param pageIdentityAuthRecordDTO 查询参数 * @return 养老认证记录列表 */ @Override public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { return R.ok(comPensionAuthRecordDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(), pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO)); } /** * 获取养老认证详情 * @param identityAuthId 认证id * @return 认证记录详情 */ @Override public R retrievePensionAuthDetail(Long identityAuthId) { return R.ok(comPensionAuthRecordDAO.findById(identityAuthId)); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -7,9 +7,12 @@ <id column="id" property="id" /> <result column="elderlies_id" property="elderliesId" /> <result column="auth_period" property="authPeriod" /> <result column="type" property="type" /> <result column="verification_result" property="verificationResult" /> <result column="submit_user_id" property="submitUserId" /> <result column="auth_video" property="authVideo" /> <result column="approver" property="approver" /> <result column="address" property="address" /> <result column="approver_id" property="approverId" /> <result column="approval_status" property="approvalStatus" /> <result column="approval_date" property="approvalDate" /> <result column="mark" property="mark" /> @@ -22,7 +25,36 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, elderlies_id, auth_period, submit_user_id, auth_video, approver, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at id, elderlies_id, auth_period, `type`, verification_result, submit_user_id, auth_video, address, approver_id, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at </sql> <select id="queryRecordWithPage" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO"> SELECT cear.id, cear.auth_date, cear.auth_status, cear.reject_reason, cear.approval_status, ceae.name, ceae.id_card FROM `com_elder_auth_records` cear LEFT JOIN `com_elder_auth_elderlies` ceae ON cear.elderlies_id = ceae.id WHERE cear.submit_user_id = #{pageIdentityAuthRecordDTO.submitUserId} ORDER BY cear.id DESC </select> <select id="findById" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO"> SELECT ceae.name, ceae.id_card, ca.name AS communityName, cear.address, cear.auth_period, cear.auth_date, cear.auth_video, cear.reject_reason, cear.approval_status FROM `com_elder_auth_records` cear LEFT JOIN `com_elder_auth_elderlies` ceae ON cear.elderlies_id = ceae.id LEFT JOIN `com_act` ca ON ceae.community_id = ca.community_id WHERE cear.id = #{identityAuthId} </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
@@ -7,9 +7,12 @@ <id column="id" property="id" /> <result column="pensioner_id" property="pensionerId" /> <result column="auth_period" property="authPeriod" /> <result column="type" property="type" /> <result column="verification_result" property="verificationResult" /> <result column="submit_user_id" property="submitUserId" /> <result column="auth_video" property="authVideo" /> <result column="approver" property="approver" /> <result column="address" property="address" /> <result column="approver_id" property="approverId" /> <result column="approval_status" property="approvalStatus" /> <result column="approval_date" property="approvalDate" /> <result column="mark" property="mark" /> @@ -22,7 +25,36 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, pensioner_id, auth_period, submit_user_id, auth_video, approver, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at id, pensioner_id, auth_period, `type`, verification_result, submit_user_id, auth_video, address, approver_id, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at </sql> <select id="queryRecordWithPage" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO"> SELECT cpar.id, cpar.auth_period, cpar.auth_date, cpar.reject_reason, cpar.approval_status, cpap.name, cpap.id_card FROM `com_pension_auth_records` cpar LEFT JOIN `com_pension_auth_pensioners` cpap ON cpar.pensioner_id = cpap.id WHERE cpar.submit_user_id = #{pageIdentityAuthRecordDTO.submitUserId} ORDER BY cpar.id DESC </select> <select id="findById" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO"> SELECT cpap.name, cpap.id_card, ca.name AS communityName, cpar.address, cpar.auth_period, cpar.auth_date, cpar.auth_video, cpar.reject_reason, cpar.approval_status FROM `com_pension_auth_records` cpar LEFT JOIN `com_pension_auth_pensioners` cpap ON cpar.pensioner_id = cpap.id LEFT JOIN `com_act` ca ON cpap.community_id = ca.community_id WHERE cpar.id = #{identityAuthId} </select> </mapper>