huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -1,6 +1,16 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.util.IdcardUtil;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -14,35 +24,18 @@
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;
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
/**
 * @auther lyq
@@ -73,6 +66,7 @@
    /**
     * 新增高龄认证
     *
     * @param eldersAuthAddDTO
     * @return 新增结果
     */
@@ -89,6 +83,7 @@
    /**
     * 修改高龄认证
     *
     * @param eldersAuthEditDTO
     * @return 维护结果
     */
@@ -105,6 +100,7 @@
    /**
     * 分页查找高龄认证
     *
     * @param pageEldersAuthDTO
     * @return 维护结果
     */
@@ -117,6 +113,7 @@
    /**
     * 删除高龄认证
     *
     * @param EldersAuthDeleteDTO
     * @return 平台用户信息
     */
@@ -126,7 +123,9 @@
    /**
     * 查询高龄认证详细信息
     * @param id 高龄认证 id
     *
     * @param id
     *            高龄认证 id
     * @return 查找结果
     */
    public R<EldersAuthDetailsVO> eldersAuthDetails(Long id){
@@ -147,8 +146,10 @@
        }
        return R.fail();
    }
    /**
     * 新增高龄认证社区反馈
     *
     * @param eldersAuthFeedbackAddDTO
     * @return 新增结果
     */
@@ -178,23 +179,21 @@
            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("更新认证记录状态失败");
            }
             * 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 维护结果
     */
@@ -215,7 +214,8 @@
        Page page = new Page<>();
        page.setSize(pageComEldersRecordsDTO.getPageSize());
        page.setCurrent(pageComEldersRecordsDTO.getPageNum());
        List<ComEldersAuthRecordVO> eldersAuthDOList = eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO);
        List<ComEldersAuthRecordVO> eldersAuthDOList =
            eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO);
        return R.ok(eldersAuthDOList);
    }
@@ -231,7 +231,8 @@
        String communityName = eldersAuthDAO.selectCommunityNameByAuth(id);
        comEldersAuthElderlyDetailsVO.setCommunityName(communityName);
        List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id));
        List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO
            .selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id));
        List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList = new ArrayList<>();
        eldersAuthFeedbackDOList.forEach(edo ->{
            EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
@@ -245,9 +246,8 @@
    @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));
        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");
@@ -260,8 +260,8 @@
            if(inserted!=1){
                throw new ServiceException("添加高龄认证默认添加的核验类型失败");
            }
            confDOList =
                    sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId())
            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                .eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId())
                            .orderByDesc(SysConfDO::getCreateAt));
        }
        if(confDOList!=null && confDOList.size()>0){
@@ -275,7 +275,9 @@
    /**
     * 人脸核验新增高龄认证记录
     * @param authGetResultDTO  请求参数
     *
     * @param authGetResultDTO
     *            请求参数
     * @return  新增结果
     */
    @Override
@@ -306,8 +308,10 @@
            this.baseMapper.insert(eldersAuthDO);
            //认证成功  添加认证记录
            List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>()
                    .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,eldersAuthDO.getIdCard()).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
            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());
@@ -333,7 +337,9 @@
    /**
     * 高龄认证分页接口
     * @param authPageDTO   请求参数
     *
     * @param authPageDTO
     *            请求参数
     * @return  查询结果
     */
    @Override
@@ -344,11 +350,13 @@
            String idCard = userVO.getIdCard();
            userVO.setIdCard(AESUtil.encrypt128(userVO.getIdCard(), aesKey));
            //查询当前用户是否已存在用户关联中
            ComEldersAuthUserDO oldAuthUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
            ComEldersAuthUserDO oldAuthUserDO =
                comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
                    .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard()));
            if(oldAuthUserDO == null){
                //查询老人库是否存在当前用户信息
                ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
                ComEldersAuthElderlyDO authElderlyDO =
                    comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
                        .eq(ComEldersAuthElderlyDO::getIdCard,userVO.getIdCard()));
                if(authElderlyDO != null){
                    ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO();
@@ -363,18 +371,20 @@
            }
        }
        IPage<ComElderAuthUserAppVO> authUserAppVOIPage = comEldersAuthUserMapper.findByPage(new Page(authPageDTO.getPageNum(),authPageDTO.getPageSize()),authPageDTO.getUserId());
        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));
                        .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()));
                            Integer count = eldersAuthFeedbackDAO.selectCount(new QueryWrapper<EldersAuthFeedbackDO>()
                                .lambda().eq(EldersAuthFeedbackDO::getAuthId, authDO.getId()));
                            if(count > 0){
                                authUser.setIsFeedback(1);
                            }
@@ -397,14 +407,16 @@
    /**
     * 添加高龄老人接口
     * @param authUserAddAppDTO 请求参数
     *
     * @param authUserAddAppDTO
     *            请求参数
     * @return  添加结果
     */
    @Override
    public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO){
        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
                .eq(ComEldersAuthUserDO::getIdCard,authUserAddAppDTO.getIdCard()));
        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>()
            .lambda().eq(ComEldersAuthUserDO::getIdCard, authUserAddAppDTO.getIdCard()));
        if(authUserDO != null){
            return R.fail("当前老人已存在");
        }
@@ -415,8 +427,8 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
                .eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard));
        ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(
            new QueryWrapper<ComEldersAuthElderlyDO>().lambda().eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard));
        if(authElderlyDO == null){
            return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
        }
@@ -434,7 +446,9 @@
    /**
     * 修改高龄老人接口
     * @param authUserAddAppDTO 请求参数
     *
     * @param authUserAddAppDTO
     *            请求参数
     * @return  修改结果
     */
    @Override
@@ -461,16 +475,16 @@
        Page page = new Page();
        page.setCurrent(pageEldersAuthElderlyDTO.getPageNum());
        page.setSize(pageEldersAuthElderlyDTO.getPageSize());
        IPage<ComEldersAuthRecordForCommunityVO> ipage = 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 =
                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                        .eq(SysConfDO::getCommunityId, communityId)
                        .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE")
                        .orderByDesc(SysConfDO::getCreateAt));
            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+"");
@@ -484,16 +498,22 @@
    @Override
    public R getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO){
        return R.ok(comEldersAuthStatisticsMapper.findByPage(new Page(pageEldersAuthElderlyDTO.getPageNum(),pageEldersAuthElderlyDTO.getPageSize()),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());
        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()
        List<ComEldersAuthHistoryRecordDO> userList =
            comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
                .eq(ComEldersAuthHistoryRecordDO::getCommunityId,pageEldersAuthElderlyDTO.getCommunityId())
                .ge(ComEldersAuthHistoryRecordDO::getCreateAt,startTime).le(ComEldersAuthHistoryRecordDO::getCreateAt,endTime));
                .ge(ComEldersAuthHistoryRecordDO::getCreateAt, startTime)
                .le(ComEldersAuthHistoryRecordDO::getCreateAt, endTime));
        List<ComEldersAuthHistoryExcelVO> authHistoryExcelVOS = new ArrayList<>();
        userList.forEach(user -> {