huanghongfa
2021-09-18 15d3711a5321e9a5c38b66320ca6bff5b96a3b50
Merge remote-tracking branch 'origin/test' into test

# Conflicts:
# springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
# springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
11个文件已添加
24个文件已修改
1634 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java 28 ●●●●● 补丁 | 查看 | 原始文档 | 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/ComActDiscussOptionUserDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | 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/ComActDiscussVO.java 2 ●●● 补丁 | 查看 | 原始文档 | 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 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java 48 ●●●● 补丁 | 查看 | 原始文档 | 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 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
@@ -5,8 +5,8 @@
import java.util.Objects;
import javax.annotation.Resource;
import javax.validation.Valid;
import com.panzhihua.common.validated.PutGroup;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@@ -25,6 +25,7 @@
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
import com.panzhihua.common.model.dtos.community.DiscussVoteOptionDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
@@ -35,6 +36,7 @@
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PutGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -196,20 +198,22 @@
    }
    @ApiOperation(value = "一起议-投票")
    @GetMapping("discussoptionuser")
    @ApiImplicitParam(name = "id", value = "一起议选项主键", required = true)
    public R addDiscussOptionUser(@RequestParam("id") Long id) {
        if (null == id || 0 == id) {
    @PostMapping("discussoptionuser")
    public R addDiscussOptionUser(@RequestBody @Valid DiscussVoteOptionDTO discussVoteOptionDTO) {
        List<Long> optionIds = discussVoteOptionDTO.getOptionIds();
        if (optionIds.isEmpty()) {
            return R.fail("选项主键不能为空");
        }
        ComActDiscussOptionUserDTO comActDiscussOptionUserDTO = new ComActDiscussOptionUserDTO();
        comActDiscussOptionUserDTO.setDiscussOptionId(id);
        comActDiscussOptionUserDTO.setDiscussOptionIds(optionIds);
        comActDiscussOptionUserDTO.setUserId(this.getUserId());
        // 议事投票计算积分
        AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(id,
            AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
        integralUserDTO.setIsComment(2);
        communityService.addIntegralTradeAdmin(integralUserDTO);
        optionIds.forEach(optionId -> {
            // 议事投票计算积分
            AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(optionId,
                    AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
            integralUserDTO.setIsComment(2);
            communityService.addIntegralTradeAdmin(integralUserDTO);
        });
        return communityService.addDiscussOptionUser(comActDiscussOptionUserDTO);
    }
@@ -227,4 +231,15 @@
        comActDiscussDTO.setUserId(this.getUserId());
        return communityService.editDiscussResult(comActDiscussDTO);
    }
    @ApiOperation(value = "一起议-获取是否有发布权限", response = Boolean.class)
    @GetMapping("discuss/permissions")
    public R getDiscussPermissions() {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        ComActDiscussDTO comActDiscussDTO = new ComActDiscussDTO();
        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
        comActDiscussDTO.setIsApplets(true);
        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
        return communityService.getDiscussPermissions(comActDiscussDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java
New file
@@ -0,0 +1,86 @@
package com.panzhihua.applets.api;
import javax.annotation.Resource;
import javax.validation.Valid;
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.model.vos.community.IdentityAuthRecordDetailVO;
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 @Valid GetIdentityEidTokenDTO getIdentityEidTokenDTO) {
        return communityService.getEidToken(getIdentityEidTokenDTO);
    }
    @ApiOperation(value = "新增身份认证")
    @PostMapping("/add")
    public R addIdentityAuth(@RequestBody @Valid 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 @Valid 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/enums/IdentityApprovalStatusEnum.java
New file
@@ -0,0 +1,32 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * @title: IdentityApprovalStatusEnum
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 身份认证审核状态枚举类
 * @author: hans
 * @date: 2021/09/14 11:26
 */
@Getter
public enum IdentityApprovalStatusEnum {
    /**
     * 待审核
     */
    PENDING_REVIEW(1),
    /**
     * 驳回
     */
    REFUSE(2),
    /**
     * 通过
     */
    PASS_THROUGH(3);
    private int status;
    IdentityApprovalStatusEnum(int status) {
        this.status = status;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java
New file
@@ -0,0 +1,32 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * @title: IdentityAuthMethodEnum
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 身份认证方式枚举类
 * @author: hans
 * @date: 2021/09/14 13:11
 */
@Getter
public enum IdentityAuthMethodEnum {
    /**
     * 视频认证
     */
    VIDEO_AUTH(1),
    /**
     * 人脸核验
     */
    FACE_AUTH(2),
    /**
     * 线下认证
     */
    OFFLINE_AUTH(3);
    private int method;
    IdentityAuthMethodEnum(int method) {
        this.method = method;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * @title: IdentityAuthStatusEnum
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 身份认证认证状态枚举类
 * @author: hans
 * @date: 2021/09/14 11:30
 */
@Getter
public enum IdentityAuthStatusEnum {
    /**
     * 已认证
     */
    CERTIFIED(1),
    /**
     * 未认证
     */
    NOT_CERTIFIED(0);
    private int status;
    IdentityAuthStatusEnum(int status) {
        this.status = status;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * @title: IdentityAuthTypeEnum
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 身份认证类型枚举类
 * @author: hans
 * @date: 2021/09/14 10:40
 */
@Getter
public enum IdentityAuthTypeEnum {
    /**
     * 高龄认证
     */
    ELDER_AUTH(1),
    /**
     * 养老认证
     */
    PENSION_AUTH(2);
    private int type;
    IdentityAuthTypeEnum(int type) {
        this.type = type;
    }
}
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(message = "认证类型不能为空")
    private Integer authType;
    @ApiModelProperty(value = "姓名", required = true, example = "张三")
    @Sensitive(strategy = SensitiveStrategy.USERNAME)
    @NotBlank(message = "姓名不能为空")
    private String name;
    @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233")
    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
    @EncryptDecryptField
    @NotBlank(message = "身份证号码不能为空")
    @Size(min = 18, max = 18, message = "请输入18位有效身份证号")
    private String idCard;
    @ApiModelProperty(value = "现居住地址", required = true, example = "双流小区")
    @NotBlank(message = "居住地址不能为空")
    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.人脸认证 3.线下认证", hidden = true)
    private Integer authMethod = 1;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 选项投票
@@ -14,8 +16,8 @@
@ApiModel("选项投票")
public class ComActDiscussOptionUserDTO {
    @ApiModelProperty("一起议选项id")
    private Long discussOptionId;
    @ApiModelProperty("一起议选项id集合")
    private List<Long> discussOptionIds;
    @ApiModelProperty("投票人id")
    private Long userId;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.dtos.community;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @title: DiscussVoteOptionDTO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 一起议投票请求参数
 * @author: hans
 * @date: 2021/09/16 17:03
 */
@Data
@ApiModel("一起议投票请求参数")
public class DiscussVoteOptionDTO {
    @ApiModelProperty("主键")
    @NotEmpty(message = "投票选项不能为空")
    private List<Long> optionIds;
}
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(message = "认证类型不能为空")
    private Integer authType;
    @ApiModelProperty(value = "姓名", required = true, example = "张三")
    @Sensitive(strategy = SensitiveStrategy.USERNAME)
    @NotBlank(message = "姓名不能为空")
    private String name;
    @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233")
    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
    @EncryptDecryptField
    @NotBlank(message = "身份证号码不能为空")
    @Size(min = 18, max = 18, message = "请输入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(message = "认证类型不能为空")
    private Integer authType;
    @ApiModelProperty(value = "当前页数", required = true, example = "1")
    @NotNull(message = "分页参数不能为空")
    private Long pageNum;
    @ApiModelProperty(value = "每页记录数", required = true, example = "10")
    @NotNull(message = "分页参数不能为空")
    private Long pageSize;
    @ApiModelProperty(value = "提交用户", example = "1", hidden = true)
    private Long submitUserId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
@@ -109,7 +109,7 @@
    private BigDecimal imgWidth;
    @ApiModelProperty("单张图片高度")
    private BigDecimal heightWidth;
    private BigDecimal imgHeight;
    @ApiModelProperty("是否可重复投票(1.是 2.否)")
    private Integer isRepeat;
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,6 +2,7 @@
import java.util.List;
import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
@@ -25,6 +26,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;
@@ -46,7 +118,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;
@@ -101,6 +184,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;
@@ -108,7 +238,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;
@@ -5699,6 +5828,58 @@
    R setEldersAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
    /**
     * 新增身份认证
     * @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);
    /**
     * 一起议获取是否有发布权
     * @param comActDiscussDTO
     * @return
     */
    @PostMapping("discuss/permissions")
    R getDiscussPermissions(@RequestBody ComActDiscussDTO comActDiscussDTO);
    /**
     * 高龄认证统计-分页查询
     * @param pageElderAuthStatisticDTO 请求参数
     * @return  高龄认证统计列表
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
@@ -338,4 +338,14 @@
    public R timedTaskWriteDiscussViewNumToTable() {
        return comActDiscussService.writeDiscussViewNumToTable();
    }
    /**
     * 一起议获取是否有发布权
     * @param comActDiscussDTO
     * @return
     */
    @PostMapping("discuss/permissions")
    public R getDiscussPermissions(@RequestBody ComActDiscussDTO comActDiscussDTO) {
        return comActDiscussService.getDiscussPermissions(comActDiscussDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java
New file
@@ -0,0 +1,206 @@
package com.panzhihua.service_community.api;
import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
import static com.panzhihua.common.enums.IdentityAuthTypeEnum.ELDER_AUTH;
import static com.panzhihua.common.enums.IdentityAuthTypeEnum.PENSION_AUTH;
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.setAuthMethod(FACE_AUTH.getMethod());
            addIdentityAuthDTO.setVerificationResult(object.toJSONString());
        }
        int authType = addIdentityAuthDTO.getAuthType().intValue();
        if (authType == ELDER_AUTH.getType()) {
            return comElderAuthRecordsService.addElderAuth(addIdentityAuthDTO);
        } else if (authType == PENSION_AUTH.getType()) {
            return comPensionAuthRecordService.addPensionAuth(addIdentityAuthDTO);
        } else {
            return R.fail("请核对需要认证的类型");
        }
    }
    /**
     * 分页查询身份认证记录
     * @param pageIdentityAuthRecordDTO 分页查询身份认证记录参数
     * @return 身份认证记录列表
     */
    @PostMapping("/record/page")
    public R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) {
        int authType = pageIdentityAuthRecordDTO.getAuthType().intValue();
        if (authType == ELDER_AUTH.getType()) {
            return comElderAuthRecordsService.queryRecordWithPage(pageIdentityAuthRecordDTO);
        } else if (authType == PENSION_AUTH.getType()) {
            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() == ELDER_AUTH.getType()) {
            return comElderAuthRecordsService.retrieveElderAuthDetail(identityAuthId);
        } else if (authType.intValue() == PENSION_AUTH.getType()) {
            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() == ELDER_AUTH.getType()) {
            //高龄认证
            identityCode = ELDER_AUTH_TYPE_PREFIX + communityId;
        } else if (identityAuthType.intValue() == PENSION_AUTH.getType()) {
            //养老认证
            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() == ELDER_AUTH.getType()) {
            //高龄认证
            isExist = comElderAuthElderliesDAO.selectCount(new QueryWrapper<ComElderAuthElderliesDO>()
                    .lambda().eq(ComElderAuthElderliesDO::getName, getIdentityEidTokenDTO.getName())
                    .eq(ComElderAuthElderliesDO::getIdCard, idCard));
        } else if (getIdentityEidTokenDTO.getAuthType().intValue() == PENSION_AUTH.getType()) {
            //养老认证
            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/ComActDiscussCommentDAO.java
@@ -31,31 +31,37 @@
//            " </if> " +
//            " </where>" +
//            "</script>")
    @Select("" +
            "SELECT\n" +
            "u.`name` userName,\n" +
            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
            "u.`image_url`,\n" +
            "u.phone,\n" +
            "c.`comment`,\n" +
            "c.`parent_id`,\n" +
            "c.`is_author`,\n" +
            "c.`is_topping`,\n" +
            "COUNT( cu.id ) num,\n" +
            "c.create_at,\n" +
            "c.id \n" +
            "FROM\n" +
            "com_act_discuss_comment c\n" +
            "JOIN sys_user u ON c.user_id = u.user_id\n" +
            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
            "WHERE\n" +
            "FIND_IN_SET(\n" +
            "\tc.id,\n" +
            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
            "GROUP BY c.id\n" +
            "ORDER BY\n" +
            "create_at desc")
    List<ComActDiscussCommentVO> selectChilds(Long id);
//    @Select("" +
//            "SELECT\n" +
//            "u.`name` userName,\n" +
//            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
//            "u.`image_url`,\n" +
//            "u.phone,\n" +
//            "c.`comment`,\n" +
//            "c.`parent_id`,\n" +
//            "c.`is_author`,\n" +
//            "c.`is_topping`,\n" +
//            "COUNT( cu.id ) num,\n" +
//            "c.create_at,\n" +
//            "c.id \n" +
//            "FROM\n" +
//            "com_act_discuss_comment c\n" +
//            "JOIN sys_user u ON c.user_id = u.user_id\n" +
//            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
//            "WHERE\n" +
//            "FIND_IN_SET(\n" +
//            "\tc.id,\n" +
//            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
//            "GROUP BY c.id\n" +
//            "ORDER BY\n" +
//            "create_at desc")
    /**
     * 获取子评论
     * @param parentId
     * @return
     */
    List<ComActDiscussCommentVO> selectChilds(@Param("parentId") Long parentId);
    /**
     * 该评论下所有回复内容
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
@@ -57,4 +57,11 @@
     * @return
     */
    int selectVotedPersonNum(@Param("discussId") Long discussId);
    /**
     * 批量插入投票记录
     * @param comActDiscussOptionUserDOList
     * @return
     */
    int batchInsert(@Param("comActDiscussOptionUserDOList") List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
@@ -1,20 +1,19 @@
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.ComMngPopulationDTO;
import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
@@ -40,6 +39,20 @@
    List<ComElderAuthRecordStatisticExcleVO> exportElderAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthStatisticDTO pageElderAuthRecordsDTO);
    /**
     * 分页查询高龄认证记录
     * @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);
    /**
     * 查询社区待审核高龄认证记录id集合
     * @param communityId   社区id
     * @param authRecordId   需要排除的详情id
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
@@ -1,17 +1,20 @@
package com.panzhihua.service_community.dao;
import java.util.List;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
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.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @title: ComPensionAuthRecordDAO
@@ -32,4 +35,19 @@
    void updateAll(@Param("comPensionAuthRecordDOS") List<ComPensionAuthRecordDO> comPensionAuthRecordDOS);
    List<ComPensionAuthRecordStatisticExcleVO> exportPensionAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 分页查询养老认证记录
     * @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/ComActDiscussDO.java
@@ -89,7 +89,7 @@
    /**
     * 单张图片高度
     */
    private Integer imgHeight;
    private BigDecimal imgHeight;
    /**
     * 开始时间
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  社区政务》高龄老人认证》认证记录表实体类
@@ -49,9 +53,19 @@
    private Integer authMethod;
    /**
     * 人脸核验结果数据
     */
    private String verificationResult;
    /**
    * 认证视频
    */
    private String authVideo;
    /**
     * 现居地址
     */
    private String address;
    /**
    * 审核人员
@@ -106,11 +120,6 @@
    private Long communityId;
    /**
     * 现居地址
     */
    private String address;
    /**
     * 审核状态(1.待审核 2.驳回 3.通过)
     */
    public interface approvalStatus{
@@ -135,4 +144,25 @@
        int rlrz = 2;
        int xxrz = 3;
    }
    @Override
    public String toString() {
        return "ComElderAuthRecordsDO{" +
                "id=" + id +
                ", elderliesId=" + elderliesId +
                ", authPeriod=" + authPeriod +
                ", submitUserId=" + submitUserId +
                ", authVideo=" + authVideo +
                ", address=" + address +
                ", approverId=" + approverId +
                ", approvalStatus=" + approvalStatus +
                ", approvalDate=" + approvalDate +
                ", mark=" + mark +
                ", rejectReason=" + rejectReason +
                ", authStatus=" + authStatus +
                ", authDate=" + authDate +
                ", createAt=" + createAt +
                ", updateAt=" + updateAt +
                "}";
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java
@@ -74,11 +74,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
@@ -3,7 +3,11 @@
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
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;
@@ -43,12 +47,23 @@
     *认证期数
     */
    private String authPeriod;
    /**
     * 人脸核验结果数据
     */
    private String verificationResult;
    /**
     * 认证视频
     */
    private String authVideo;
    /**
     *审核人员
     * 现居地址
     */
    private String address;
    /**
     *审核人员id
     */
    private Long approverId;
    /**
@@ -89,11 +104,6 @@
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 现居地址
     */
    private String address;
    /**
     *审核状态(1.待审核 2.驳回 3.通过)
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
@@ -249,4 +249,11 @@
     * @return
     */
    R editDiscussResult(ComActDiscussDTO comActDiscussDTO);
    /**
     * 一起议获取是否有发布权
     * @param comActDiscussDTO
     * @return
     */
    R getDiscussPermissions(ComActDiscussDTO comActDiscussDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
@@ -1,16 +1,15 @@
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.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
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.RequestParam;
import java.util.List;
@@ -95,4 +94,24 @@
     * @return  执行结果
     */
    R timedTaskElderAuthStatisticsJobHandler();
    /**
     * 新增高龄认证
     * @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,16 +1,16 @@
package com.panzhihua.service_community.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @title: ComPensionAuthRecordService
@@ -110,4 +110,24 @@
     * @return  执行结果
     */
    R timedTaskPensionAuthStatisticsJobHandler();
    /**
     * 新增养老认证
     * @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/ComActDiscussServiceImpl.java
@@ -188,26 +188,27 @@
            String discussIdentityConfig = (String) sysConfValue.getData();
            if (isBlank(discussIdentityConfig)) {
                checkResult = false;
            }
            List<String> currentUserRoles = new ArrayList<>();
            List<String> sysAllowedRoles = Arrays.asList(discussIdentityConfig.split(","));
            LoginUserInfoVO loginUserInfo = comActDiscussDTO.getLoginUserInfo();
            if (loginUserInfo.getIsPartymember().intValue() == 1) {
                currentUserRoles.add("2");
            }
            if (loginUserInfo.getIsVolunteer().intValue() == 1) {
                currentUserRoles.add("3");
            }
            R isTeamResult = userService.checkCurrentUserIsTeam(loginUserInfo.getPhone(), loginUserInfo.getCommunityId());
            if (R.isOk(isTeamResult) && (Boolean) isTeamResult.getData()) {
                currentUserRoles.add("4");
            }
            if (currentUserRoles.isEmpty()) {
                checkResult = false;
            }
            boolean result = sysAllowedRoles.stream().anyMatch(role -> currentUserRoles.contains(role));
            if (!result) {
                checkResult = false;
            } else {
                List<String> currentUserRoles = new ArrayList<>();
                List<String> sysAllowedRoles = Arrays.asList(discussIdentityConfig.split(","));
                LoginUserInfoVO loginUserInfo = comActDiscussDTO.getLoginUserInfo();
                if (loginUserInfo.getIsPartymember() == 1) {
                    currentUserRoles.add("2");
                }
                if (loginUserInfo.getIsVolunteer().intValue() == 1) {
                    currentUserRoles.add("3");
                }
                R isTeamResult = userService.checkCurrentUserIsTeam(loginUserInfo.getPhone(), loginUserInfo.getCommunityId());
                if (R.isOk(isTeamResult) && (Boolean) isTeamResult.getData()) {
                    currentUserRoles.add("4");
                }
                if (currentUserRoles.isEmpty()) {
                    checkResult = false;
                }
                boolean result = sysAllowedRoles.stream().anyMatch(role -> currentUserRoles.contains(role));
                if (!result) {
                    checkResult = false;
                }
            }
        }
        return checkResult;
@@ -599,10 +600,16 @@
            records.forEach(comActDiscussVO -> {
                Integer type = comActDiscussVO.getType();
                Long id = comActDiscussVO.getId();
                String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
                if (stringRedisTemplate.hasKey(viewNumKey)) {
                    ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
                    comActDiscussVO.setViewsNum(Integer.parseInt(opsForValue.get(viewNumKey)));
                }
                if (type.equals(2)) {
                    List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                            new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
                    List<Integer> votes = new ArrayList<>();
                    comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                        Long discussOptionDOId = comActDiscussOptionDO.getId();
                        Integer selectCount =
@@ -616,6 +623,7 @@
                            // 判断选项是否已投票
                            int haveVote =
                                    comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                            votes.add(haveVote);
                            comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                        }
                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
@@ -623,6 +631,20 @@
                    fillThePercentAndSort(comActDiscussOptionVOS);
                    checkDiscussStatusIsCorrect(comActDiscussVO);
                    comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
                    //填充剩余可投票数
                    if (loginUserId != null && !loginUserId.equals(0L)) {
                        if (comActDiscussVO.getIsRepeat().intValue() == 1) {
                            //可重复投票
                            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(id, loginUserId);
                            int remainingVotes = comActDiscussVO.getCount().intValue() - votedVotesInToday;
                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                        } else {
                            //不可重复投票
                            int alreadyVotedVotes = votes.stream().mapToInt(Integer::intValue).sum();
                            int remainingVotes = comActDiscussVO.getCount().intValue() - alreadyVotedVotes;
                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
                        }
                    }
                    //填充投票记录列表
                    List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList = comActDiscussOptionUserDAO
                            .selectVotedRecords(comActDiscussVO.getId());
@@ -872,7 +894,12 @@
            comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
            comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
        }
        String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
        if (stringRedisTemplate.hasKey(viewNumKey)) {
            ValueOperations opsForValue = stringRedisTemplate.opsForValue();
            int viewNum = Integer.parseInt((String) opsForValue.get(viewNumKey));
            comActDiscussVO.setViewsNum(viewNum);
        }
        return R.ok(comActDiscussVO);
    }
@@ -904,7 +931,8 @@
     */
    @Override
    public R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO) {
        Long discussOptionId = comActDiscussOptionUserDTO.getDiscussOptionId();
        List<Long> discussOptionIds = comActDiscussOptionUserDTO.getDiscussOptionIds();
        Long discussOptionId = discussOptionIds.get(0);
        Long userId = comActDiscussOptionUserDTO.getUserId();
        ComActDiscussOptionDO comActDiscussOptionDO = comActDiscussOptionDAO.selectById(discussOptionId);
        if (ObjectUtils.isEmpty(comActDiscussOptionDO)) {
@@ -922,27 +950,32 @@
        }
        boolean isRepeat = comActDiscussDO.getIsRepeat().intValue() == 1;
        int usableVoteVotes = comActDiscussDO.getCount().intValue();
        int currentVoteNum = discussOptionIds.size();
        if (isRepeat) {
            //可重复投票
            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(discussId, userId);
            if (usableVoteVotes <= votedVotesInToday) {
                return R.fail("当天投票次数已用完");
            if (usableVoteVotes <= votedVotesInToday || currentVoteNum > usableVoteVotes - votedVotesInToday) {
                return R.fail("票数不足");
            }
        } else {
            //不可重复投票
            int alreadyVotedVotes = comActDiscussOptionUserDAO.selectCount(
                new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
                    .eq(ComActDiscussOptionUserDO::getDiscussId, discussId));
            if (usableVoteVotes <= alreadyVotedVotes) {
                return R.fail("投票次数已用完");
            if (usableVoteVotes <= alreadyVotedVotes || currentVoteNum > usableVoteVotes - alreadyVotedVotes) {
                return R.fail("票数不足");
            }
        }
        ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
        comActDiscussOptionUserDO.setUserId(userId);
        comActDiscussOptionUserDO.setDiscussOptionId(discussOptionId);
        comActDiscussOptionUserDO.setDiscussId(discussId);
        int insert = comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
        if (insert > 0) {
        List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList = new ArrayList<>();
        discussOptionIds.forEach(optionId -> {
            ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
            comActDiscussOptionUserDO.setUserId(userId);
            comActDiscussOptionUserDO.setDiscussOptionId(optionId);
            comActDiscussOptionUserDO.setDiscussId(discussId);
            comActDiscussOptionUserDOList.add(comActDiscussOptionUserDO);
        });
        int result = comActDiscussOptionUserDAO.batchInsert(comActDiscussOptionUserDOList);
        if (result > 0) {
            return R.ok();
        }
        return R.fail();
@@ -1226,6 +1259,7 @@
            return R.fail("只能公布或编辑自己发布的主题!");
        }
        comActDiscussDO.setPublishResult(comActDiscussDTO.getPublishResult());
        comActDiscussDO.setStatus(4);
        int result = comActDiscussDAO.updateById(comActDiscussDO);
        if (result > 0) {
            return R.ok();
@@ -1234,6 +1268,16 @@
    }
    /**
     * 一起议获取是否有发布权
     * @param comActDiscussDTO
     * @return
     */
    @Override
    public R getDiscussPermissions(ComActDiscussDTO comActDiscussDTO) {
        return R.ok(checkCurrentUserDiscussIdentity(comActDiscussDTO));
    }
    /**
     * 将redis中浏览量写入表中
     * @return 执行结果
     */
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -1,6 +1,25 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.util.IdcardUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportMistakeExcelVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,28 +27,36 @@
import com.google.common.base.Joiner;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.enums.*;
import com.panzhihua.common.enums.PopulHouseUseEnum;
import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
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.*;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.common.utlis.AgeUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO;
import com.panzhihua.service_community.dao.ComElderAuthRecordsDAO;
import com.panzhihua.service_community.dao.ComEldersAuthStatisticsMapper;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import com.panzhihua.service_community.model.dos.ComEldersAuthStatisticsDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.service.ComElderAuthRecordsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
/**
 * title: ComElderAuthRecordsServiceImpl  社区政务》高龄老人认证》认证记录表服务实现类
@@ -111,7 +138,7 @@
        if (comElderAuthRecordVO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) {
            comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
        }
        comElderAuthRecordsDO.setApprovalDate(new Date());
        int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
        if (nub < 1) {
            return R.fail("审核失败");
@@ -360,4 +387,83 @@
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
    /**
     * 新增高龄认证
     * @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().equals(1) && comElderAuthElderliesDO.getIsAlive().equals(1));
        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()) {
            boolean alreadyAuth = currentAuthPeriodRecords.stream()
                    .filter(record -> record.getAuthStatus().equals(CERTIFIED.getStatus())).findFirst().isPresent();
            if (alreadyAuth) {
                return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod));
            }
            boolean isPendingReview = currentAuthPeriodRecords.stream()
                    .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent();
            if (isPendingReview) {
                return R.fail("该人员本期有尚未审核的认证,请稍后再试!");
            }
        }
        ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO();
        BeanUtils.copyProperties(addIdentityAuthDTO, comElderAuthRecordsDO);
        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
        comElderAuthRecordsDO.setAuthDate(dateNow);
        comElderAuthRecordsDO.setAuthPeriod(currentAuthPeriod);
        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
            comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
            comElderAuthRecordsDO.setApprovalDate(dateNow);
            comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
        }
        if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) {
            return R.fail("认证失败,请重新尝试");
        }
        return R.ok();
    }
    /**
     * 分页查询高龄认证记录
     * @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,37 +1,63 @@
package com.panzhihua.service_community.service.impl;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
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 org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.enums.PopulHouseUseEnum;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
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.*;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
import com.panzhihua.common.model.vos.community.SysConfVO;
import com.panzhihua.common.utlis.AgeUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComPensionAuthPensionerService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO;
import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
import com.panzhihua.service_community.dao.SysConfMapper;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
import com.panzhihua.service_community.model.dos.SysConfDO;
import com.panzhihua.service_community.service.ComPensionAuthRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @title: ComPensionAuthRecordServiceImpl
@@ -97,8 +123,8 @@
            return R.fail("未查询到养老认证记录");
        }
        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
        if (comPensionAuthRecordVO.getApprovalStatus().equals(3)) {
            comPensionAuthRecordDO.setAuthStatus(1);
        if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) {
            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
        }
        comPensionAuthRecordDO.setApprovalDate(new Date());
        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
@@ -351,9 +377,9 @@
        BeanUtils.copyProperties(vo, comPensionAuthRecordsDO);
        comPensionAuthRecordsDO.setSubmitUserId(userId);
        comPensionAuthRecordsDO.setApproverId(userId);
        comPensionAuthRecordsDO.setApprovalStatus(3);
        comPensionAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
        comPensionAuthRecordsDO.setApprovalDate(new Date());
        comPensionAuthRecordsDO.setAuthStatus(1);
        comPensionAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
        comPensionAuthRecordsDO.setCommunityId(communityId);
        comPensionAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
        return comPensionAuthRecordsDO;
@@ -368,9 +394,9 @@
        comPensionAuthRecordDO.setAuthPeriod(authPeriod);
        comPensionAuthRecordDO.setSubmitUserId(userId);
        comPensionAuthRecordDO.setApproverId(userId);
        comPensionAuthRecordDO.setApprovalStatus(3);
        comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
        comPensionAuthRecordDO.setApprovalDate(new Date());
        comPensionAuthRecordDO.setAuthStatus(1);
        comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
        comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
        comPensionAuthRecordDO.setCommunityId(communityId);
        return comPensionAuthRecordDO;
@@ -393,4 +419,84 @@
    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
    /**
     * 新增养老认证
     * @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()) {
            boolean alreadyAuth = currentAuthPeriodRecords.stream()
                    .filter(record -> record.getAuthStatus().equals(CERTIFIED.getStatus())).findFirst().isPresent();
            if (alreadyAuth) {
                return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod));
            }
            boolean isPendingReview = currentAuthPeriodRecords.stream()
                    .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent();
            if (isPendingReview) {
                return R.fail("该人员本期有尚未审核的认证,请稍后再试!");
            }
        }
        ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO();
        BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO);
        comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId());
        comPensionAuthRecordDO.setAuthDate(dateNow);
        comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod);
        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
            comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
            comPensionAuthRecordDO.setApprovalDate(dateNow);
            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
        }
        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/ComActDiscussCommentDOMapper.xml
@@ -35,5 +35,29 @@
            where cadc.parent_id = #{id} and cadc.is_del = 2
        order by cadc.create_at desc
    </select>
    <select id="selectChilds" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
        SELECT
            u.`name` userName,
            IFNULL(u.`nick_name`,'社区管理员') AS userNickName,
            u.`image_url`,
            u.phone,
            c.`comment`,
            c.`parent_id`,
            c.`is_author`,
            c.`is_topping`,
            COUNT( cu.id ) num,
            c.create_at,
            c.id
            FROM
            com_act_discuss_comment c
            JOIN sys_user u ON c.user_id = u.user_id
            LEFT JOIN com_act_discuss_comment_user cu ON c.id=cu.disscuss_comment_id
            WHERE
            FIND_IN_SET(
            c.id,
            getChildren ( #{parentId} )) AND c.parent_id != 0 AND c.is_del = 2
            GROUP BY c.id
            ORDER BY create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
@@ -160,7 +160,7 @@
        SELECT t.* FROM (
            SELECT d.id, d.vote_title, if(d.address IS NULL OR d.address='null',a.name,d.address )address, d.photo_pah,
                d.`discuss_subject`, d.type, d.end_time, d.status, d.views_num, d.join_num, d.fabulous_num AS signNum,
                d.comment_num AS commentNum, d.release_at, u.type AS userType, if(u.type=1,u.name,a.name) userName,
                d.comment_num AS commentNum, d.release_at, d.img_width, d.img_height, d.is_repeat, d.count, u.type AS userType, if(u.type=1,u.name,a.name) userName,
                if(u.type=1,u.nick_name,a.name) userNickName,
                <if test='pageComActDiscussDTO.loginUserId != null '>
                    if(du.id IS NOT NULL,1,0) haveSign, if(ou.id IS NOT NULL,1,0) haveVote,
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml
@@ -15,6 +15,13 @@
    <sql id="Base_Column_List">
        id, discuss_option_id, user_id, create_at, discuss_id
    </sql>
    <insert id="batchInsert" parameterType="java.util.List">
        INSERT INTO `com_act_discuss_option_user`(discuss_option_id,user_id,create_at,discuss_id)
        VALUES
        <foreach collection="comActDiscussOptionUserDOList" item="item" index="index" separator="," >
            (#{item.discussOptionId}, #{item.userId}, now(), #{item.discussId})
        </foreach>
    </insert>
    <select id="selectVotedVotesInToday" resultType="java.lang.Integer">
        SELECT COUNT(1) FROM `com_act_discuss_option_user`
        WHERE discuss_id = #{discussId} AND user_id = #{userId} AND DATE(create_at) &gt;= DATE(now())
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -7,8 +7,11 @@
                <id column="id" property="id" />
                <result column="elderlies_id" property="elderliesId" />
                <result column="auth_period" property="authPeriod" />
                <result column="auth_method" property="authMethod" />
                <result column="verification_result" property="verificationResult" />
                <result column="submit_user_id" property="submitUserId" />
                <result column="auth_video" property="authVideo" />
                <result column="address" property="address" />
                <result column="approver_id" property="approverId" />
                <result column="approval_status" property="approvalStatus" />
                <result column="approval_date" property="approvalDate" />
@@ -23,7 +26,7 @@
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, elderlies_id, auth_method, auth_period, submit_user_id, auth_video, approver, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at, community_id
        id, elderlies_id, auth_period, auth_method, 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, community_id
    </sql>
    <select id="pageElderAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordVO">
@@ -317,4 +320,35 @@
    <select id="getNextIds" resultType="long">
        select id from com_elder_auth_records where approval_status = 1 and community_id = #{communityId} and id != #{authRecordId}
    </select>
    <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,8 +7,11 @@
                <id column="id" property="id" />
                <result column="pensioner_id" property="pensionerId" />
                <result column="auth_period" property="authPeriod" />
                <result column="auth_method" property="authMethod" />
                <result column="verification_result" property="verificationResult" />
                <result column="submit_user_id" property="submitUserId" />
                <result column="auth_video" property="authVideo" />
                <result column="address" property="address" />
                <result column="approver_id" property="approverId" />
                <result column="approval_status" property="approvalStatus" />
                <result column="approval_date" property="approvalDate" />
@@ -22,7 +25,7 @@
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, pensioner_id, auth_method, 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, authMethod, 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="pagePensionAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO">
@@ -300,4 +303,34 @@
        order by cpar.create_at desc
    </select>
    <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>