From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 106 insertions(+), 11 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
index 92cb759..7c7ea6a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -15,8 +15,11 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.service_community.dao.*;
 import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComElderAuthElderliesService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -84,6 +87,10 @@
     private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
     @Resource
     private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComElderAuthElderliesService comElderAuthElderliesService;
+    @Resource
+    private UserService userService;
 
     @Override
     public R pageElderAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
@@ -119,6 +126,18 @@
     }
 
     @Override
+    public R export(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        try {
+            //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录
+            String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey);
+            pageElderAuthRecordsDTO.setIdCard(idCard);
+        }catch (Exception e){
+            log.error("查询高龄认证记录转换身份证号失败");
+        }
+        return R.ok(comElderAuthRecordsDAO.export(pageElderAuthRecordsDTO));
+    }
+
+    @Override
     public R detailElderAuthRecords(Long authRecordId) {
         ComElderAuthRecordVO comElderAuthRecordVO = comElderAuthRecordsDAO.detailElderAuthRecords(authRecordId);
         comElderAuthRecordVO.setNextIds(comElderAuthRecordsDAO.getNextIds(comElderAuthRecordVO.getCommunityId(),authRecordId));
@@ -149,9 +168,12 @@
         comElderAuthRecordsDO.setApprovalDate(nowDate);
         if (comElderAuthRecordVO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) {
             comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
-            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", "认证成功!");
+            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", "认证成功!",comElderAuthRecordVO.getAreaCode());
+
+            authElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+            comElderAuthElderliesDAO.updateById(authElderliesDO);
         } else {
-            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", comElderAuthRecordVO.getRejectReason());
+            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", comElderAuthRecordVO.getRejectReason(),comElderAuthRecordVO.getAreaCode());
         }
 //        comElderAuthRecordsDO.setApprovalDate(new Date());
         int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
@@ -161,17 +183,18 @@
         return R.ok();
     }
 
-    private void sendAuthSubscribe(Long userId, String name, String result) {
+    private void sendAuthSubscribe(Long userId, String name, String result,String areaCode) {
         //发送订阅通知
         Map<String, String> map = comActActSignDAO.getUserOpenId(userId);
         if (map != null) {
             String openid = map.get("openid");
             try {
                 WxXCXTempSend util = new WxXCXTempSend();
-                String accessToken = util.getAppAccessToken();
+                String accessToken = util.getAccessToken();
+                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(areaCode,5);
                 WxUtil.sendSubscribeRZSH(openid, accessToken, name,
                         DateUtils.format(new Date(), DateUtils.ymdhms_format),
-                        result);
+                        result,sysTemplateConfigVO.getData().getTemplateId());
             } catch (Exception e) {
                 log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
             }
@@ -212,12 +235,16 @@
         List<ComElderAuthRecordsDO> saveList = new ArrayList<>();
         // 需要修改的认证记录集合
         List<ComElderAuthRecordsDO> updateList = new ArrayList<>();
+        //需要更新的老人信息
+        List<ComElderAuthElderliesDO> updateElderliesList = new ArrayList<>();
         log.info("开始处理导入数据");
+
 
         List<ComElderAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
         try {
             // 查询所有人口数据放入HashMap中
-            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
+//            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectListIds();
             HashMap<String, Object> populationMap = new HashMap<>();
             populationList.forEach(population -> {
                 String key = population.getCardNo();
@@ -272,15 +299,30 @@
                                     }else if (comElderAuthRecordsDO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.dsh)) {
                                         comElderAuthRecordsDO = updateElderAuthRecordsDO(vo, comElderAuthRecordsDO,userId,communityId,nowDate);
                                         updateList.add(comElderAuthRecordsDO);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
                                     }else {
                                         // 驳回状态,则新增
                                         comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
                                         saveList.add(comElderAuthRecordsDO);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
                                     }
                                 }else {
                                     // 不存在记录,则新增
                                     comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
                                     saveList.add(comElderAuthRecordsDO);
+
+                                    if(StringUtils.isNotEmpty(vo.getAddress())){
+                                        comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                        updateElderliesList.add(comElderAuthElderliesDO);
+                                    }
                                 }
                             }
                         }
@@ -310,6 +352,9 @@
             log.info("执行数据库更新线下认证记录");
             comElderAuthRecordsDAO.updateAll(updateList);
             log.info("数据库更新线下认证记录完成");
+        }
+        if(!updateElderliesList.isEmpty()){
+            comElderAuthElderliesService.updateBatchById(updateElderliesList);
         }
         log.info("执行数据库导入完成");
 
@@ -354,8 +399,10 @@
                         //查询老人信息
                         ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
                         if(authElderliesDO != null){
+                            Long authId = authHistoryRecordDO.getId();
                             BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
-                            authHistoryRecordDO.setBrithday(IdcardUtil.getBirthByIdCard(authElderliesDO.getIdCard()));
+                            authHistoryRecordDO.setId(authId);
+                            authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
                             authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
                         }
                         authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.yes);
@@ -375,7 +422,7 @@
                     ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
                     if(authElderliesDO != null){
                         BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
-                        authHistoryRecordDO.setBrithday(IdcardUtil.getBirthByIdCard(authElderliesDO.getIdCard()));
+                        authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
                         authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
                     }
                     BeanUtils.copyProperties(authRecords,authHistoryRecordDO);
@@ -401,8 +448,10 @@
                     //查询老人信息
                     ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
                     if(authPensionerDO != null){
+                        Long authId = pensionAuthDO.getId();
                         BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
-                        pensionAuthDO.setBrithday(IdcardUtil.getBirthByIdCard(authPensionerDO.getIdCard()));
+                        pensionAuthDO.setId(authId);
+                        pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
                         pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
                     }
                     pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.yes);
@@ -421,7 +470,7 @@
                 ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
                 if(authPensionerDO != null){
                     BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
-                    pensionAuthDO.setBrithday(IdcardUtil.getBirthByIdCard(authPensionerDO.getIdCard()));
+                    pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
                     pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
                 }
                 BeanUtils.copyProperties(authRecords,pensionAuthDO);
@@ -537,7 +586,7 @@
             return R.fail("认证失败,请重新尝试");
         }
         if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
-            sendAuthSubscribe(addIdentityAuthDTO.getSubmitUserId(), "高龄认证", "认证成功!");
+            sendAuthSubscribe(addIdentityAuthDTO.getSubmitUserId(), "高龄认证", "认证成功!",addIdentityAuthDTO.getAreaCode());
         }
         return R.ok();
     }
@@ -562,4 +611,50 @@
     public R retrieveElderAuthDetail(Long identityAuthId) {
         return R.ok(comElderAuthRecordsDAO.findById(identityAuthId));
     }
+
+    @Override
+    public R add(ComElderAuthRecordVO comElderAuthRecordVO) {
+        if(!comElderAuthRecordVO.getIdCard().isEmpty()){
+            List<ComMngPopulationDO>  comMngPopulationDOS=comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,comElderAuthRecordVO.getIdCard()).orderByDesc(ComMngPopulationDO::getCreateAt));
+            if(!comMngPopulationDOS.isEmpty()){
+                ComMngPopulationDO comMngPopulationDO=comMngPopulationDOS.get(0);
+                ComElderAuthElderliesDO comElderAuthElderliesDO=comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda().eq(ComElderAuthElderliesDO::getPopulationId,comMngPopulationDO.getId()));
+                if(comElderAuthElderliesDO!=null){
+                    Integer count=comElderAuthRecordsDAO.selectCount(new QueryWrapper<ComElderAuthRecordsDO>().lambda().eq(ComElderAuthRecordsDO::getElderliesId,comElderAuthElderliesDO.getId()).eq(ComElderAuthRecordsDO::getAuthPeriod,comElderAuthRecordVO.getAuthPeriod()));
+                    if(count==0){
+                        ComElderAuthRecordsDO comElderAuthRecordsDO=new ComElderAuthRecordsDO();
+                        BeanUtils.copyProperties(comElderAuthRecordVO,comElderAuthRecordsDO);
+                        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
+                        comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
+                        comElderAuthRecordsDO.setApprovalDate(new Date());
+                        comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
+                        comElderAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+                        comElderAuthRecordsDO.setApproverId(comElderAuthRecordVO.getSubmitUserId());
+                        comElderAuthRecordsDO.setSubmitUserId(comElderAuthRecordVO.getSubmitUserId());
+                        if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) {
+                            return R.fail("认证失败,请重新尝试");
+                        }
+                        comMngPopulationDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comMngPopulationDAO.updateById(comMngPopulationDO);
+                        comElderAuthElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+                        comElderAuthElderliesDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comElderAuthElderliesDO.setIdCard(null);
+                        comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+                        ComPensionAuthPensionerDO comPensionAuthPensionerDO=comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda().eq(ComPensionAuthPensionerDO::getPopulationId,comMngPopulationDO.getId()));
+                        if(comPensionAuthPensionerDO!=null){
+                            comPensionAuthPensionerDO.setAddress(comElderAuthRecordVO.getAddress());
+                            comPensionAuthPensionerDO.setPhone(comElderAuthRecordVO.getPhone());
+                            comPensionAuthPensionerDO.setIdCard(null);
+                            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+                        }
+                        return R.ok();
+                    }
+                    return R.fail("当前期数已认证,请勿重复认证");
+                }
+                return R.fail("无养老认证数据");
+            }
+            return R.fail("该身份证无实有人口信息");
+        }
+        return R.fail("身份证不能为空");
+    }
 }

--
Gitblit v1.7.1