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/ComPensionAuthRecordServiceImpl.java | 169 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 136 insertions(+), 33 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java index 4c5c62b..ab6d0ff 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java @@ -10,10 +10,17 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.annotation.Resource; +import com.panzhihua.common.model.vos.community.*; +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.ComPensionAuthPensionerService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -25,7 +32,6 @@ 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; @@ -33,30 +39,14 @@ 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.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.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.common.utlis.WxUtil; +import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_community.service.ComPensionAuthRecordService; +import cn.hutool.core.util.IdcardUtil; import lombok.extern.slf4j.Slf4j; /** @@ -83,8 +73,16 @@ private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO; @Resource private SysConfMapper sysConfDao; + @Resource + private ComActActSignDAO comActActSignDAO; @Value("${domain.aesKey:}") private String aesKey; + @Resource + private ComPensionAuthPensionerService comPensionAuthPensionerService; + @Resource + private ComElderAuthElderliesDAO comElderAuthElderliesDAO; + @Resource + private UserService userService; @Override public R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) { @@ -99,6 +97,13 @@ } page.setSize(pageSize); page.setCurrent(pageNum); + try { + //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录 + String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey); + pageElderAuthRecordsDTO.setIdCard(idCard); + }catch (Exception e){ + log.error("查询高龄认证记录转换身份证号失败"); + } IPage<ComPensionAuthRecordVO> iPage = comPensionAuthRecordDAO.pagePensionAuthRecords(page, pageElderAuthRecordsDTO); if (!iPage.getRecords().isEmpty()) { iPage.getRecords().forEach(comPensionAuthRecordVO -> { @@ -113,6 +118,12 @@ @Override public R detailPensionAuthRecords(Long authRecordId) { ComPensionAuthRecordVO comPensionAuthRecordVO = comPensionAuthRecordDAO.detailPensionAuthRecords(authRecordId); + comPensionAuthRecordVO.setNextIds(comPensionAuthRecordDAO.getNextIds(comPensionAuthRecordVO.getCommunityId(),authRecordId)); + try { + comPensionAuthRecordVO.setAge(IdcardUtil.getAgeByIdCard(comPensionAuthRecordVO.getIdCard())); + }catch (Exception e){ + log.error("身份证转换失败"); + } return R.ok(comPensionAuthRecordVO); } @@ -122,9 +133,21 @@ if (comPensionAuthRecordDO == null) { return R.fail("未查询到养老认证记录"); } + + ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(comPensionAuthRecordDO.getPensionerId()); + if(authPensionerDO == null){ + return R.fail("未查询到老人信息"); + } + BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO); if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) { comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", comPensionAuthRecordVO.getAreaCode()); + + authPensionerDO.setAddress(comPensionAuthRecordVO.getAddress()); + comPensionAuthPensionerDAO.updateById(authPensionerDO); + } else { + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", comPensionAuthRecordVO.getRejectReason(),comPensionAuthRecordVO.getAreaCode()); } comPensionAuthRecordDO.setApprovalDate(new Date()); int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO); @@ -132,6 +155,24 @@ return R.fail("审核失败"); } return R.ok(); + } + + 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.getAccessToken(); + R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(areaCode,5); + WxUtil.sendSubscribeRZSH(openid, accessToken, name, + DateUtils.format(new Date(), DateUtils.ymdhms_format), + result,sysTemplateConfigVO.getData().getTemplateId()); + } catch (Exception e) { + log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage()); + } + } } @Override @@ -161,6 +202,8 @@ List<ComPensionAuthRecordDO> saveList = new ArrayList<>(); // 需要修改的认证记录集合 List<ComPensionAuthRecordDO> updateList = new ArrayList<>(); + // 需要更新的老人信息 + List<ComPensionAuthPensionerDO> updatePensionerList = new ArrayList<>(); log.info("开始处理导入数据"); Date nowDate = new Date(); List<ComPensionAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>(); @@ -220,15 +263,30 @@ //存在待审核记录,进行更新认证信息 comPensionAuthRecordDO = updatePensionAuthRecordsDO(vo, comPensionAuthRecordDO, userId,communityId,nowDate); updateList.add(comPensionAuthRecordDO); + + if(StringUtils.isNotEmpty(vo.getAddress())){ + comPensionAuthPensionerDO.setAddress(vo.getAddress()); + updatePensionerList.add(comPensionAuthPensionerDO); + } }else { // 不存在记录,则新增 comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate); saveList.add(comPensionAuthRecordDO); + + if(StringUtils.isNotEmpty(vo.getAddress())){ + comPensionAuthPensionerDO.setAddress(vo.getAddress()); + updatePensionerList.add(comPensionAuthPensionerDO); + } } }else { // 不存在记录,则新增 comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate); saveList.add(comPensionAuthRecordDO); + + if(StringUtils.isNotEmpty(vo.getAddress())){ + comPensionAuthPensionerDO.setAddress(vo.getAddress()); + updatePensionerList.add(comPensionAuthPensionerDO); + } } } } @@ -257,6 +315,9 @@ log.info("执行数据库更新线下认证记录"); comPensionAuthRecordDAO.updateAll(updateList); log.info("数据库更新线下认证记录完成"); + } + if(!updatePensionerList.isEmpty()){ + comPensionAuthPensionerService.updateBatchById(updatePensionerList); } log.info("执行数据库导入完成"); @@ -342,14 +403,9 @@ comPensionAuthStatisticsDO.setSum(comPensionAuthPensionerDOS.size()); } comPensionAuthStatisticsDAO.insert(comPensionAuthStatisticsDO); - //上期已认证人数 - int authSum = comPensionAuthPensionerDAO.havePensionAuthPensionerAmount(act.getCommunityId(), String.valueOf(year - 1)); - ComPensionAuthStatisticsDO comPensionAuthStatisticsDO1 = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>() - .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComPensionAuthStatisticsDO::getYear, year - 1)); - comPensionAuthStatisticsDO1.setAuthSum(authSum); - comPensionAuthStatisticsDO1.setNoAuthSum(comPensionAuthStatisticsDO1.getSum() - comPensionAuthStatisticsDO1.getAuthSum()); - comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO1); }); + + return R.ok(); } @@ -371,7 +427,6 @@ , ComPensionAuthPensionerDO comPensionAuthPensionerDO, String authPeriod, Long userId, Long communityId,Date date) { ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); BeanUtils.copyProperties(vo, comPensionAuthRecordDO); - comPensionAuthRecordDO.setId(Snowflake.getId()); comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); comPensionAuthRecordDO.setAuthPeriod(authPeriod); comPensionAuthRecordDO.setSubmitUserId(userId); @@ -426,16 +481,15 @@ 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::getAuthPeriod, comPensionAuthPensionerDO) .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)); + return R.fail(String.format("该人员%s期已认证无需重复认证", addIdentityAuthDTO.getAuthPeriod())); } boolean isPendingReview = currentAuthPeriodRecords.stream() .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent(); @@ -446,8 +500,8 @@ ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO); comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); - comPensionAuthRecordDO.setAuthDate(dateNow); - comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod); + comPensionAuthRecordDO.setAuthDate(addIdentityAuthDTO.getAuthTime()); + comPensionAuthRecordDO.setAuthPeriod(addIdentityAuthDTO.getAuthPeriod()); if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) { comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus()); comPensionAuthRecordDO.setApprovalDate(dateNow); @@ -455,6 +509,9 @@ } if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { return R.fail("认证失败,请重新尝试"); + } + if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) { + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", addIdentityAuthDTO.getAreaCode()); } return R.ok(); } @@ -479,4 +536,50 @@ public R retrievePensionAuthDetail(Long identityAuthId) { return R.ok(comPensionAuthRecordDAO.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); + ComPensionAuthPensionerDO comPensionAuthPensionerDO=comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda().eq(ComPensionAuthPensionerDO::getPopulationId,comMngPopulationDO.getId())); + if(comPensionAuthPensionerDO!=null){ + Integer count=comPensionAuthRecordDAO.selectCount(new QueryWrapper<ComPensionAuthRecordDO>().lambda().eq(ComPensionAuthRecordDO::getPensionerId,comPensionAuthPensionerDO.getId()).eq(ComPensionAuthRecordDO::getAuthPeriod,comElderAuthRecordVO.getAuthPeriod())); + if(count==0){ + ComPensionAuthRecordDO comPensionAuthRecordDO=new ComPensionAuthRecordDO(); + BeanUtils.copyProperties(comElderAuthRecordVO,comPensionAuthRecordDO); + comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus()); + comPensionAuthRecordDO.setApprovalDate(new Date()); + comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); + comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz); + comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); + comPensionAuthRecordDO.setSubmitUserId(comElderAuthRecordVO.getSubmitUserId()); + comPensionAuthRecordDO.setApproverId(comElderAuthRecordVO.getSubmitUserId()); + if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { + return R.fail("认证失败,请重新尝试"); + } + comMngPopulationDO.setPhone(comElderAuthRecordVO.getPhone()); + comMngPopulationDAO.updateById(comMngPopulationDO); + comPensionAuthPensionerDO.setAddress(comElderAuthRecordVO.getAddress()); + comPensionAuthPensionerDO.setPhone(comElderAuthRecordVO.getPhone()); + comPensionAuthPensionerDO.setIdCard(null); + comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO); + ComElderAuthElderliesDO comElderAuthElderliesDO=comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda().eq(ComElderAuthElderliesDO::getPopulationId,comMngPopulationDO.getId())); + if(comElderAuthElderliesDO!=null){ + comElderAuthElderliesDO.setAddress(comElderAuthRecordVO.getAddress()); + comElderAuthElderliesDO.setPhone(comElderAuthRecordVO.getPhone()); + comElderAuthElderliesDO.setIdCard(null); + comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO); + } + return R.ok(); + } + return R.fail("当前期数已认证,请勿重复认证"); + } + return R.fail("无养老认证数据"); + } + return R.fail("该身份证无实有人口信息"); + } + return R.fail("身份证不能为空"); + } } -- Gitblit v1.7.1