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;
|
|
/**
|
* title: ComElderAuthRecordsServiceImpl 社区政务》高龄老人认证》认证记录表服务实现类
|
* projectName 成都呐喊信息技术有限公司-智慧社区项目
|
* description: 社区政务》高龄老人认证》认证记录表服务实现类
|
*
|
* @author txb
|
* @date 2021/9/01 14:12
|
*/
|
@Slf4j
|
@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));
|
}
|
}
|