puhanshu
2021-09-13 a64da80a8dcf17f71f87a9c3a76842c31d8615cf
身份认证小程序相关接口开发
13个文件已修改
6个文件已添加
1125 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>