From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 21 八月 2021 16:35:14 +0800
Subject: [PATCH] 随手拍改版接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java |  131 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 118 insertions(+), 13 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 17bf70b..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
@@ -11,25 +11,35 @@
 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 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 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.Date;
 import java.util.List;
@@ -53,6 +63,13 @@
     private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
     @Resource
     private SysConfMapper sysConfDao;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
 
     /**
      * 新增高龄认证
@@ -135,12 +152,41 @@
      * @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();
@@ -234,29 +280,49 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO){
+    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(authUserDO.getIdCard());
+            eldersAuthDO.setIdCard(idCard);
             eldersAuthDO.setAuthUserName(authUserDO.getName());
             eldersAuthDO.setCreateBy(authGetResultDTO.getUserId());
             eldersAuthDO.setCreateAt(new Date());
             eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId());
-            String domicile = this.baseMapper.selectDomicile(eldersAuthDO.getIdCard());
+            String domicile = this.baseMapper.selectDomicile(idCard);
             if(org.springframework.util.StringUtils.isEmpty(domicile)){
                 domicile = "暂无";
             }
             eldersAuthDO.setDomicile(domicile);
-            eldersAuthDO.setBirthDay(IdCard.birthDay(authUserDO.getIdCard()));
+            eldersAuthDO.setBirthDay(IdcardUtil.getBirthDate(idCard));
             eldersAuthDO.setFamilyUserId(authUserDO.getId());
-            eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(eldersAuthDO.getIdCard()));
+            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());
@@ -271,13 +337,15 @@
      * @return  查询结果
      */
     @Override
-    public R pageEldersByApp(ComEldersAuthPageDTO authPageDTO){
+    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()));
+                    .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard()));
             if(oldAuthUserDO == null){
                 //查询老人库是否存在当前用户信息
                 ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
@@ -287,7 +355,7 @@
                     authUserDO.setUserId(userVO.getUserId());
                     authUserDO.setRelation(ComEldersAuthUserDO.relation.br);
                     authUserDO.setName(userVO.getName());
-                    authUserDO.setIdCard(userVO.getIdCard());
+                    authUserDO.setIdCard(idCard);
                     authUserDO.setCommunityId(authElderlyDO.getCommunityId());
                     authUserDO.setBigAgeId(authElderlyDO.getId());
                     comEldersAuthUserMapper.insert(authUserDO);
@@ -301,7 +369,7 @@
 
                 if(authUser.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)){
                     List<EldersAuthDO> authDOS = eldersAuthDAO.selectList(new QueryWrapper<EldersAuthDO>().lambda()
-                            .eq(EldersAuthDO::getSumitUserId,authPageDTO.getUserId()).orderByDesc(EldersAuthDO::getCreateAt));
+                            .eq(EldersAuthDO::getFamilyUserId,authUser.getElderId()).orderByDesc(EldersAuthDO::getCreateAt));
                     if(!authDOS.isEmpty()){
                         EldersAuthDO authDO = authDOS.get(0);
                         if(authDO.getType().equals(1)){//视频认证
@@ -313,7 +381,15 @@
                         }
                     }
                 }
-                authUser.setAge(AgeUtils.getAgeFromBirthTimes(IdCard.birthDay(authUser.getIdCard()).getTime()));
+
+                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);
@@ -333,8 +409,14 @@
             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,authUserAddAppDTO.getIdCard()));
+                .eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard));
         if(authElderlyDO == null){
             return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
         }
@@ -373,14 +455,15 @@
         }
         return R.fail();
     }
+
     @Override
     public R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) {
         Page page = new Page();
         page.setCurrent(pageEldersAuthElderlyDTO.getPageNum());
         page.setSize(pageEldersAuthElderlyDTO.getPageSize());
-        return R.ok(eldersAuthDAO.selectCommunityEldersRecordByPage(page, pageEldersAuthElderlyDTO));
+        IPage<ComEldersAuthRecordForCommunityVO> ipage = eldersAuthDAO.selectCommunityEldersRecordByPage(page, pageEldersAuthElderlyDTO);
+        return R.ok(ipage);
     }
-
     @Override
     public R setCommunityAuthType(Long communityId, Integer type) {
         List<SysConfDO> authConf =
@@ -398,4 +481,26 @@
         }
         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