罗元桥
2021-08-05 cc1098fc00a50cb1591d182f04bc37066ff0a9e2
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -34,6 +34,12 @@
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;
@@ -146,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();
@@ -245,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());
@@ -276,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());
@@ -302,9 +341,11 @@
        //判断当前用户是否是高龄老人,如果是则将这个人新增到高龄老人的列表里
        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, AESUtil.encrypt128(userVO.getIdCard(), aesKey)));
                    .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard()));
            if(oldAuthUserDO == null){
                //查询老人库是否存在当前用户信息
                ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
@@ -314,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);
@@ -328,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)){//视频认证
@@ -368,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("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
        }
@@ -414,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) {