From cc1098fc00a50cb1591d182f04bc37066ff0a9e2 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期四, 05 八月 2021 15:12:39 +0800
Subject: [PATCH] Merge branch 'test' into 'master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 99 insertions(+), 17 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 e99da5e..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,12 +11,14 @@
 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;
@@ -26,11 +28,18 @@
 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;
@@ -56,6 +65,11 @@
     private SysConfMapper sysConfDao;
     @Resource
     private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
 
     /**
      * 新增高龄认证
@@ -138,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();
@@ -237,23 +280,26 @@
      */
     @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(IdcardUtil.getBirthDate(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());
 
@@ -268,14 +314,15 @@
                 authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
                 BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO);
                 authHistoryRecordDO.setId(null);
-                authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(eldersAuthDO.getIdCard())));
-                authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(eldersAuthDO.getIdCard()));
+                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());
@@ -290,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()
@@ -306,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);
@@ -320,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)){//视频认证
@@ -332,10 +381,14 @@
                         }
                     }
                 }
-                try {
-                    authUser.setAge(IdcardUtil.getAgeByIdCard(authUser.getIdCard()));
-                }catch (NullPointerException e){
-                    log.error("获取用户年龄出错了:" + authUser.getIdCard());
+
+                ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUser.getElderId());
+                if(authUserDO != null){
+                    try {
+                        authUser.setAge(IdcardUtil.getAgeByIdCard(authUserDO.getIdCard()));
+                    }catch (NullPointerException e){
+                        log.error("获取用户年龄出错了:" + authUser.getIdCard());
+                    }
                 }
             });
         }
@@ -356,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("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
         }
@@ -402,7 +461,8 @@
         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) {
@@ -421,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