From a64da80a8dcf17f71f87a9c3a76842c31d8615cf Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期一, 13 九月 2021 15:55:40 +0800 Subject: [PATCH] 身份认证小程序相关接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 101 insertions(+), 0 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 dee3582..ae114d0 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 @@ -1,9 +1,26 @@ package com.panzhihua.service_community.service.impl; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +import javax.annotation.Resource; + +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; +import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO; +import com.panzhihua.common.model.helper.AESUtil; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO; import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO; +import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO; import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO; import com.panzhihua.service_community.service.ComPensionAuthRecordService; @@ -19,4 +36,88 @@ @Slf4j @Service public class ComPensionAuthRecordServiceImpl extends ServiceImpl<ComPensionAuthRecordDAO, ComPensionAuthRecordDO> implements ComPensionAuthRecordService { + + @Resource + private ComPensionAuthRecordDAO comPensionAuthRecordDAO; + @Resource + private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO; + + @Value("${domain.aesKey:}") + private String aesKey; + + /** + * 新增养老认证 + * @param addIdentityAuthDTO 请求参数 + * @return 新增结果 + */ + @Override + public R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO) { + String idCard; + try { + idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey); + } catch (Exception e) { + e.printStackTrace(); + log.error("加密失败【{}】", e.getMessage()); + return R.fail("认证失败,请重新尝试"); + } + ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>() + .lambda().eq(ComPensionAuthPensionerDO::getIdCard, idCard).eq(ComPensionAuthPensionerDO::getCommunityId, addIdentityAuthDTO.getCommunityId())); + if (Objects.isNull(comPensionAuthPensionerDO)) { + return R.fail("该人员未在社区报道无法认证"); + } + boolean isInfoCorrect = !comPensionAuthPensionerDO.getName().equals(addIdentityAuthDTO.getName()) || + !(comPensionAuthPensionerDO.getIsRegister() && comPensionAuthPensionerDO.getIsAlive()); + if (isInfoCorrect) { + return R.fail("信息有误,请检查!"); + } + Date dateNow = new Date(); + String currentAuthPeriod = new SimpleDateFormat("yyyy").format(dateNow); + List<ComPensionAuthRecordDO> currentAuthPeriodRecords = comPensionAuthRecordDAO + .selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda() + .eq(ComPensionAuthRecordDO::getAuthPeriod, currentAuthPeriod) + .eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId())); + if (!currentAuthPeriodRecords.isEmpty()) { + if (currentAuthPeriodRecords.stream().filter(record -> record.getAuthStatus()).findFirst().isPresent()) { + return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod)); + } + if (currentAuthPeriodRecords.stream().filter(record -> record.getApprovalStatus().intValue() == 1).findFirst().isPresent()) { + return R.fail("该人员本期有尚未审核的认证,请稍后再试!"); + } + } + ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); + BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO); + comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); + comPensionAuthRecordDO.setAuthDate(dateNow); + comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod); + if (addIdentityAuthDTO.getType().intValue() == 2) { + comPensionAuthRecordDO.setApprovalStatus(3); + comPensionAuthRecordDO.setApprovalDate(dateNow); + comPensionAuthRecordDO.setAuthStatus(true); + } + if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { + return R.fail("认证失败,请重新尝试"); + } + return R.ok(); + } + + /** + * 分页查询养老认证记录 + * @param pageIdentityAuthRecordDTO 查询参数 + * @return 养老认证记录列表 + */ + @Override + public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { + return R.ok(comPensionAuthRecordDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(), + pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO)); + } + + /** + * 获取养老认证详情 + * @param identityAuthId 认证id + * @return 认证记录详情 + */ + @Override + public R retrievePensionAuthDetail(Long identityAuthId) { + return R.ok(comPensionAuthRecordDAO.findById(identityAuthId)); + } } -- Gitblit v1.7.1