| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.security.InvalidKeyException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.crypto.BadPaddingException; |
| | | import javax.crypto.IllegalBlockSizeException; |
| | | import javax.crypto.NoSuchPaddingException; |
| | | |
| | | 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.ComElderAuthElderliesDAO; |
| | | import com.panzhihua.service_community.dao.ComElderAuthRecordsDAO; |
| | | import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO; |
| | | import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO; |
| | | import com.panzhihua.service_community.service.ComElderAuthRecordsService; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * title: ComElderAuthRecordsServiceImpl 社区政务》高龄老人认证》认证记录表服务实现类 |
| | |
| | | @Service |
| | | public class ComElderAuthRecordsServiceImpl extends ServiceImpl<ComElderAuthRecordsDAO, ComElderAuthRecordsDO> implements ComElderAuthRecordsService { |
| | | |
| | | @Resource |
| | | private ComElderAuthRecordsDAO comElderAuthRecordsDAO; |
| | | @Resource |
| | | private ComElderAuthElderliesDAO comElderAuthElderliesDAO; |
| | | |
| | | @Value("${domain.aesKey:}") |
| | | private String aesKey; |
| | | |
| | | /** |
| | | * 新增高龄认证 |
| | | * @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() && comElderAuthElderliesDO.getIsAlive()); |
| | | 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()) { |
| | | 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("该人员本期有尚未审核的认证,请稍后再试!"); |
| | | } |
| | | } |
| | | ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO(); |
| | | BeanUtils.copyProperties(addIdentityAuthDTO, comElderAuthRecordsDO); |
| | | comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId()); |
| | | comElderAuthRecordsDO.setAuthDate(dateNow); |
| | | comElderAuthRecordsDO.setAuthPeriod(currentAuthPeriod); |
| | | if (addIdentityAuthDTO.getType().intValue() == 2) { |
| | | comElderAuthRecordsDO.setApprovalStatus(3); |
| | | comElderAuthRecordsDO.setApprovalDate(dateNow); |
| | | comElderAuthRecordsDO.setAuthStatus(true); |
| | | } |
| | | if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) { |
| | | return R.fail("认证失败,请重新尝试"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | System.out.println(AESUtil.encrypt128("500381199804034737", "Ryo7M3n8loC5")); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询高龄认证记录 |
| | | * @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)); |
| | | } |
| | | } |