From aa76c2b0bb73e9fe463387fb5656ea80094eceec Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期三, 04 八月 2021 15:15:59 +0800
Subject: [PATCH] 值班表导入bug修改
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java | 384 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 379 insertions(+), 5 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
index dfe5b33..00201f9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -1,33 +1,53 @@
package com.panzhihua.service_community.service.impl;
+import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
+import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
+import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
import com.panzhihua.common.model.vos.community.EldersAuthFeedbackVO;
import com.panzhihua.common.model.vos.community.EldersAuthVO;
+import com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO;
+import com.panzhihua.common.model.vos.partybuilding.ComEldersAuthHistoryExcelVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.EldersAuthService;
-import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
+import javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @auther lyq
* @create 2021-04-14 15:03:01
- * @describe 订单表服务实现类
+ * @describe 服务实现类
*/
@Slf4j
@Service
@@ -35,9 +55,22 @@
@Resource
private EldersAuthDAO eldersAuthDAO;
-
@Resource
private EldersAuthFeedbackDAO eldersAuthFeedbackDAO;
+ @Resource
+ private ComEldersAuthUserMapper comEldersAuthUserMapper;
+ @Resource
+ private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
+ @Resource
+ private SysConfMapper sysConfDao;
+ @Resource
+ private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+ @Resource
+ private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+
+ @Value("${domain.aesKey:}")
+ private String aesKey;
+
/**
* 新增高龄认证
* @param eldersAuthAddDTO
@@ -119,14 +152,355 @@
* @param eldersAuthFeedbackAddDTO
* @return 新增结果
*/
+ @Transactional(rollbackFor = Exception.class)
public R addFeedback(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO){
+ EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(eldersAuthFeedbackAddDTO.getAuthId());
+ if(eldersAuthDO==null){
+ return R.fail("认证记录不存在");
+ }
+ if(eldersAuthDO.getType()==null){
+ return R.fail("认证方式未知");
+ }
+ if(eldersAuthDO.getType().intValue()!=1){
+ return R.fail("当前认证方式不能进行反馈");
+ }
EldersAuthFeedbackDO eldersAuthFeedbackDO = new EldersAuthFeedbackDO();
eldersAuthFeedbackDO.setCreateBy(eldersAuthFeedbackAddDTO.getUserId());
eldersAuthFeedbackDO.setCreateAt(new Date());
BeanUtils.copyProperties(eldersAuthFeedbackAddDTO, eldersAuthFeedbackDO);
if(eldersAuthFeedbackDAO.insert(eldersAuthFeedbackDO)>0){
+ eldersAuthDO.setStatus("1");
+ eldersAuthDO.setIdCard(null);
+ int updated = eldersAuthDAO.updateById(eldersAuthDO);
+ if(updated!=1){
+ throw new ServiceException("更新认证记录状态失败");
+ }
+ Long familyUserId = eldersAuthDO.getFamilyUserId();
+ ComEldersAuthUserDO comEldersAuthUserDO = comEldersAuthUserMapper.selectById(familyUserId);
+ /**
+ ComEldersAuthUserDO comEldersAuthUserDOToUpdate = new ComEldersAuthUserDO();
+
+ comEldersAuthUserDOToUpdate.setId(comEldersAuthUserDO.getId());
+ comEldersAuthUserDOToUpdate.setIsAuth(2);//是否已认证(1.是 2.否)
+ int updatedEAU = comEldersAuthUserMapper.updateById(comEldersAuthUserDOToUpdate);
+ if(updatedEAU!=1){
+ throw new ServiceException("更新认证记录状态失败");
+ }
+ */
return R.ok();
}
return R.fail();
}
+
+
+ /**
+ * 查找高龄认证导出数据
+ * @param pageEldersAuthDTO
+ * @return 维护结果
+ */
+ public R<List<ExcelElderAuthDTO>> queryExportData(PageEldersAuthDTO pageEldersAuthDTO){
+ Page page = new Page<>();
+ page.setSize(pageEldersAuthDTO.getPageSize());
+ page.setCurrent(10000);
+ return R.ok(eldersAuthDAO.selectByParams(pageEldersAuthDTO));
+ }
+
+ @Override
+ public String queryDomicile(String idCard) {
+ return eldersAuthDAO.selectDomicile(idCard);
+ }
+
+ @Override
+ public R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO) {
+ Page page = new Page<>();
+ page.setSize(pageComEldersRecordsDTO.getPageSize());
+ page.setCurrent(pageComEldersRecordsDTO.getPageNum());
+ List<ComEldersAuthRecordVO> eldersAuthDOList = eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO);
+ return R.ok(eldersAuthDOList);
+ }
+
+ @Override
+ public R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(Long id) {
+ EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(id);
+ if(eldersAuthDO == null){
+ return R.fail("未查询到认证记录");
+ }
+ ComEldersAuthElderlyDetailsVO comEldersAuthElderlyDetailsVO = new ComEldersAuthElderlyDetailsVO();
+ BeanUtils.copyProperties(eldersAuthDO, comEldersAuthElderlyDetailsVO);
+
+ String communityName = eldersAuthDAO.selectCommunityNameByAuth(id);
+ comEldersAuthElderlyDetailsVO.setCommunityName(communityName);
+
+ List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id));
+ List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList = new ArrayList<>();
+ eldersAuthFeedbackDOList.forEach(edo ->{
+ EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
+ BeanUtils.copyProperties(edo, eldersAuthFeedbackVO);
+ eldersAuthFeedbackVOList.add(eldersAuthFeedbackVO);
+ });
+ comEldersAuthElderlyDetailsVO.setFeedback(eldersAuthFeedbackVOList);
+ return R.ok(comEldersAuthElderlyDetailsVO);
+ }
+
+ @Override
+ public R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+ Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
+ List<SysConfDO> confDOList =
+ sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+ .orderByDesc(SysConfDO::getCreateAt));
+ if(confDOList==null || confDOList.size()==0){
+ SysConfDO sysConfDO = new SysConfDO();
+ sysConfDO.setCode("ELDER_AUTH_TYPE");
+ sysConfDO.setName("高龄认证类型");
+ sysConfDO.setValue(2+"");//核验类型(1.视频认证 2.人脸核验)
+ sysConfDO.setDescription("高龄认证默认添加的核验类型");
+ sysConfDO.setCommunityId(communityId);
+ sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
+ int inserted = sysConfDao.insert(sysConfDO);
+ if(inserted!=1){
+ throw new ServiceException("添加高龄认证默认添加的核验类型失败");
+ }
+ confDOList =
+ sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId())
+ .orderByDesc(SysConfDO::getCreateAt));
+ }
+ if(confDOList!=null && confDOList.size()>0){
+ SysConfDO latest = confDOList.get(0);
+ SysConfVO sysConfVO = new SysConfVO();
+ BeanUtils.copyProperties(latest, sysConfVO);
+ return R.ok(sysConfVO.getValue());
+ }
+ return R.ok();
+ }
+
+ /**
+ * 人脸核验新增高龄认证记录
+ * @param authGetResultDTO 请求参数
+ * @return 新增结果
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO) throws Exception{
+ ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authGetResultDTO.getAuthUserId());
+ if(authUserDO != null){
+ String idCard = authUserDO.getIdCard();
+ EldersAuthDO eldersAuthDO = new EldersAuthDO();
+ eldersAuthDO.setIdCard(idCard);
+ eldersAuthDO.setAuthUserName(authUserDO.getName());
+ eldersAuthDO.setCreateBy(authGetResultDTO.getUserId());
+ eldersAuthDO.setCreateAt(new Date());
+ eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId());
+ String domicile = this.baseMapper.selectDomicile(idCard);
+ if(org.springframework.util.StringUtils.isEmpty(domicile)){
+ domicile = "暂无";
+ }
+ eldersAuthDO.setDomicile(domicile);
+ eldersAuthDO.setBirthDay(IdcardUtil.getBirthDate(idCard));
+ eldersAuthDO.setFamilyUserId(authUserDO.getId());
+ Integer age = IdcardUtil.getAgeByIdCard(idCard);
+
+ eldersAuthDO.setAge(age);
+ eldersAuthDO.setType(2);
+ eldersAuthDO.setVerificationResult(authGetResultDTO.getVerificationResult());
+
+ this.baseMapper.insert(eldersAuthDO);
+
+ //认证成功 添加认证记录
+ List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>()
+ .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,eldersAuthDO.getIdCard()).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
+ if(authHistoryRecordDOList.isEmpty()){
+ ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+ authHistoryRecordDO.setUserId(authGetResultDTO.getAuthUserId());
+ authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
+ BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO);
+ authHistoryRecordDO.setId(null);
+ authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard)));
+ authHistoryRecordDO.setAge(age);
+ authHistoryRecordDO.setIsAuth(1);
+ authHistoryRecordDO.setDomicile(domicile);
+ comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+ }
+
+ authUserDO.setIsAuth(ComEldersAuthUserDO.isAuth.yes);
+ authUserDO.setIdCard(AESUtil.encrypt128(authUserDO.getIdCard(), aesKey));
+ comEldersAuthUserMapper.updateById(authUserDO);
+
+ return R.ok(eldersAuthDO.getId());
+ }
+ log.error("人脸核验新增认证记录失败,错误原因:未查询到老人记录,老人id:" + authGetResultDTO.getAuthUserId());
+ return R.fail();
+ }
+
+ /**
+ * 高龄认证分页接口
+ * @param authPageDTO 请求参数
+ * @return 查询结果
+ */
+ @Override
+ public R pageEldersByApp(ComEldersAuthPageDTO authPageDTO) throws Exception{
+ //判断当前用户是否是高龄老人,如果是则将这个人新增到高龄老人的列表里
+ SysUserVO userVO = this.eldersAuthDAO.getSysUserByUserId(authPageDTO.getUserId());
+ if(userVO != null){
+ String idCard = userVO.getIdCard();
+ userVO.setIdCard(AESUtil.encrypt128(userVO.getIdCard(), aesKey));
+ //查询当前用户是否已存在用户关联中
+ ComEldersAuthUserDO oldAuthUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
+ .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard()));
+ if(oldAuthUserDO == null){
+ //查询老人库是否存在当前用户信息
+ ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
+ .eq(ComEldersAuthElderlyDO::getIdCard,userVO.getIdCard()));
+ if(authElderlyDO != null){
+ ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO();
+ authUserDO.setUserId(userVO.getUserId());
+ authUserDO.setRelation(ComEldersAuthUserDO.relation.br);
+ authUserDO.setName(userVO.getName());
+ authUserDO.setIdCard(idCard);
+ authUserDO.setCommunityId(authElderlyDO.getCommunityId());
+ authUserDO.setBigAgeId(authElderlyDO.getId());
+ comEldersAuthUserMapper.insert(authUserDO);
+ }
+ }
+ }
+
+ IPage<ComElderAuthUserAppVO> authUserAppVOIPage = comEldersAuthUserMapper.findByPage(new Page(authPageDTO.getPageNum(),authPageDTO.getPageSize()),authPageDTO.getUserId());
+ if(!authUserAppVOIPage.getRecords().isEmpty()){
+ authUserAppVOIPage.getRecords().forEach(authUser -> {
+
+ if(authUser.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)){
+ List<EldersAuthDO> authDOS = eldersAuthDAO.selectList(new QueryWrapper<EldersAuthDO>().lambda()
+ .eq(EldersAuthDO::getFamilyUserId,authUser.getElderId()).orderByDesc(EldersAuthDO::getCreateAt));
+ if(!authDOS.isEmpty()){
+ EldersAuthDO authDO = authDOS.get(0);
+ if(authDO.getType().equals(1)){//视频认证
+ Integer count = eldersAuthFeedbackDAO.selectCount(new QueryWrapper<EldersAuthFeedbackDO>().lambda()
+ .eq(EldersAuthFeedbackDO::getAuthId,authDO.getId()));
+ if(count > 0){
+ authUser.setIsFeedback(1);
+ }
+ }
+ }
+ }
+
+ ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUser.getElderId());
+ if(authUserDO != null){
+ try {
+ authUser.setAge(IdcardUtil.getAgeByIdCard(authUserDO.getIdCard()));
+ }catch (NullPointerException e){
+ log.error("获取用户年龄出错了:" + authUser.getIdCard());
+ }
+ }
+ });
+ }
+ return R.ok(authUserAppVOIPage);
+ }
+
+ /**
+ * 添加高龄老人接口
+ * @param authUserAddAppDTO 请求参数
+ * @return 添加结果
+ */
+ @Override
+ public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO){
+
+ ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
+ .eq(ComEldersAuthUserDO::getIdCard,authUserAddAppDTO.getIdCard()));
+ if(authUserDO != null){
+ return R.fail("当前老人已存在");
+ }
+
+ String encryptedIdCard =authUserAddAppDTO.getIdCard();
+ try {
+ encryptedIdCard = AESUtil.encrypt128(authUserAddAppDTO.getIdCard(), aesKey);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
+ .eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard));
+ if(authElderlyDO == null){
+ return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
+ }
+
+ authUserDO = new ComEldersAuthUserDO();
+ BeanUtils.copyProperties(authUserAddAppDTO,authUserDO);
+ authUserDO.setBigAgeId(authElderlyDO.getId());
+ authUserDO.setName(authElderlyDO.getName());
+ if(comEldersAuthUserMapper.insert(authUserDO) > 0){
+ return R.ok(authUserDO.getId());
+ }
+
+ return R.fail("添加失败");
+ }
+
+ /**
+ * 修改高龄老人接口
+ * @param authUserAddAppDTO 请求参数
+ * @return 修改结果
+ */
+ @Override
+ public R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO){
+
+ ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUserAddAppDTO.getElderId());
+ if(authUserDO == null){
+ return R.fail("未查询到老人信息");
+ }
+ if(StringUtils.isNotEmpty(authUserAddAppDTO.getName())){
+ authUserDO.setName(authUserAddAppDTO.getName());
+ }
+ if(authUserAddAppDTO.getRelation() != null){
+ authUserDO.setRelation(authUserAddAppDTO.getRelation());
+ }
+ if(comEldersAuthUserMapper.updateById(authUserDO) > 0){
+ return R.ok();
+ }
+ return R.fail();
+ }
+
+ @Override
+ public R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) {
+ Page page = new Page();
+ page.setCurrent(pageEldersAuthElderlyDTO.getPageNum());
+ page.setSize(pageEldersAuthElderlyDTO.getPageSize());
+ IPage<ComEldersAuthRecordForCommunityVO> ipage = eldersAuthDAO.selectCommunityEldersRecordByPage(page, pageEldersAuthElderlyDTO);
+ return R.ok(ipage);
+ }
+ @Override
+ public R setCommunityAuthType(Long communityId, Integer type) {
+ List<SysConfDO> authConf =
+ sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+ .eq(SysConfDO::getCommunityId, communityId)
+ .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE")
+ .orderByDesc(SysConfDO::getCreateAt));
+ if(authConf!=null && authConf.size()>0){
+ SysConfDO first = authConf.get(0);
+ first.setValue(type+"");
+ int updated = sysConfDao.updateById(first);
+ if(updated == 1){
+ return R.ok();
+ }
+ }
+ return R.fail();
+ }
+
+ @Override
+ public R getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO){
+ return R.ok(comEldersAuthStatisticsMapper.findByPage(new Page(pageEldersAuthElderlyDTO.getPageNum(),pageEldersAuthElderlyDTO.getPageSize()),pageEldersAuthElderlyDTO));
+ }
+
+ public R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO){
+ Date startTime = DateUtils.getYearMonthStart(pageEldersAuthElderlyDTO.getYear(),pageEldersAuthElderlyDTO.getMonth());
+ Date endTime = DateUtils.getYearMonthEnd(pageEldersAuthElderlyDTO.getYear(),pageEldersAuthElderlyDTO.getMonth());
+
+ List<ComEldersAuthHistoryRecordDO> userList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+ .eq(ComEldersAuthHistoryRecordDO::getCommunityId,pageEldersAuthElderlyDTO.getCommunityId())
+ .ge(ComEldersAuthHistoryRecordDO::getCreateAt,startTime).le(ComEldersAuthHistoryRecordDO::getCreateAt,endTime));
+
+ List<ComEldersAuthHistoryExcelVO> authHistoryExcelVOS = new ArrayList<>();
+ userList.forEach(user -> {
+ ComEldersAuthHistoryExcelVO authHistoryExcelVO = new ComEldersAuthHistoryExcelVO();
+ BeanUtils.copyProperties(user,authHistoryExcelVO);
+ authHistoryExcelVOS.add(authHistoryExcelVO);
+ });
+ return R.ok(authHistoryExcelVOS);
+ }
}
--
Gitblit v1.7.1