张天森
2022-10-12 3c884ccd7b51edf3b36840bf99de5edaa41a38a7
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -16,6 +16,10 @@
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;
@@ -40,19 +44,6 @@
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.common.utlis.WxXCXTempSend;
import com.panzhihua.service_community.dao.ComActActSignDAO;
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 cn.hutool.core.util.IdcardUtil;
@@ -88,6 +79,10 @@
    private String aesKey;
    @Resource
    private ComPensionAuthPensionerService comPensionAuthPensionerService;
    @Resource
    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
    @Resource
    private UserService userService;
    @Override
    public R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
@@ -147,12 +142,12 @@
        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
        if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) {
            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!");
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", comPensionAuthRecordVO.getAreaCode());
            authPensionerDO.setAddress(comPensionAuthRecordVO.getAddress());
            comPensionAuthPensionerDAO.updateById(authPensionerDO);
        } else {
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", comPensionAuthRecordVO.getRejectReason());
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", comPensionAuthRecordVO.getRejectReason(),comPensionAuthRecordVO.getAreaCode());
        }
        comPensionAuthRecordDO.setApprovalDate(new Date());
        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
@@ -162,17 +157,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());
            }
@@ -485,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();
@@ -505,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);
@@ -516,7 +511,7 @@
            return R.fail("认证失败,请重新尝试");
        }
        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!");
            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", addIdentityAuthDTO.getAreaCode());
        }
        return R.ok();
    }
@@ -558,12 +553,28 @@
                       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("无养老认证数据");
            }