CeDo
2021-06-15 1d21a9673d47a186bd189d9cceaa6e2ea17d293d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -1,5 +1,6 @@
package com.panzhihua.service_community.api;
import cn.hutool.core.util.IdcardUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -18,9 +19,8 @@
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.model.vos.user.UserPhoneVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.IdCardUtil;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
@@ -82,6 +82,10 @@
    private EldersAuthService eldersAuthService;
    @Resource
    public ComMngPopulationDAO comMngPopulationDAO;
    @Resource
    public ComEldersAuthUserService comEldersAuthUserService;
    @Resource
    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
    /**
     * 新增社区活动
@@ -1574,48 +1578,71 @@
    }
    @PostMapping("/eldersauth/addByFamilyUser")
    @Transactional(rollbackFor = Exception.class)
    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){
        List<ComMngFamilyInfoVO> list = comMngPopulationDAO.listFamilyByUserId(eldersAuthAddByFamilyDTO.getUserId());
        ComMngFamilyInfoVO theFamily = null;
        Long familyUserId = eldersAuthAddByFamilyDTO.getFamilyUserId();
        for (ComMngFamilyInfoVO family : list) {
            if (familyUserId == family.getId()) {
                theFamily = family;
            }
        ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(eldersAuthAddByFamilyDTO.getFamilyUserId());
        if(authUserDO == null){
            return R.fail("未查询到老人信息");
        }
        if(theFamily==null){
            return R.fail("家庭成员信息错误");
        Long elderId = authUserDO.getId();
        boolean canReAuthThisMonth = comEldersAuthUserService.checkReAuthAgain(elderId);
        if(!canReAuthThisMonth){
            return R.fail("当月已认证,不能再次进行认证");
        }
        Integer age = IdCard.IdNOToAge(theFamily.getIdCard());
        if(age>=80){
            Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
            EldersAuthDO eldersAuthDO = new EldersAuthDO();
            eldersAuthDO.setSumitUserId(eldersAuthAddByFamilyDTO.getSumitUserId());
            eldersAuthDO.setCreateBy(loginUserId);
            eldersAuthDO.setCreateAt(new Date());
            eldersAuthDO.setIdCard(theFamily.getIdCard());
            eldersAuthDO.setAuthUserName(theFamily.getName());
            eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
            eldersAuthDO.setFamilyUserId(eldersAuthAddByFamilyDTO.getFamilyUserId());
            //根据身份证查询出籍贯 出生日期
            //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
            String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
            if(StringUtils.isEmpty(domicile)){
                domicile = "暂无";
            }
            Date birthDay = IdCard.birthDay(eldersAuthDO.getIdCard());
            eldersAuthDO.setDomicile(domicile);
            eldersAuthDO.setBirthDay(birthDay);
            int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
            if(add==1){
                return R.ok(eldersAuthDO.getId());
            }
        }else{
            return R.fail("家庭成员年龄还未达到80");
        String idCard = authUserDO.getIdCard();
        Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
        EldersAuthDO eldersAuthDO = new EldersAuthDO();
        eldersAuthDO.setSumitUserId(loginUserId);
        eldersAuthDO.setCreateBy(loginUserId);
        eldersAuthDO.setCreateAt(new Date());
        eldersAuthDO.setIdCard(idCard);
        eldersAuthDO.setAuthUserName(authUserDO.getName());
        eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
        eldersAuthDO.setFamilyUserId(authUserDO.getId());
        eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
        //根据身份证查询出籍贯 出生日期
        //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
        String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
        if(StringUtils.isEmpty(domicile)){
            domicile = "暂无";
        }
        Date birthDay = IdCard.birthDay(idCard);
        eldersAuthDO.setDomicile(domicile);
        eldersAuthDO.setBirthDay(birthDay);
        int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
        if(add==1){
            //设置认证成功
            Long familyUserId = eldersAuthDO.getFamilyUserId();
            ComEldersAuthUserDO comEldersAuthUserDO = new ComEldersAuthUserDO();
            comEldersAuthUserDO.setId(familyUserId);
            comEldersAuthUserDO.setIsAuth(1);
            boolean updated = comEldersAuthUserService.updateById(comEldersAuthUserDO);
            if(!updated){
                throw  new ServiceException("添加认证失败,更新认证状态");
            }
            //认证成功  添加认证记录
            List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>()
                    .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,idCard).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
            if(authHistoryRecordDOList.isEmpty()){
                ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
                authHistoryRecordDO.setUserId(eldersAuthAddByFamilyDTO.getFamilyUserId());
                authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
                BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO);
                authHistoryRecordDO.setId(null);
                authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard)));
                authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
                authHistoryRecordDO.setIsAuth(1);
                authHistoryRecordDO.setDomicile(domicile);
                comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
            }
            return R.ok(eldersAuthDO.getId());
        }
        return R.fail();
    }
@@ -1663,4 +1690,15 @@
    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){
        return eldersAuthService.queryExportData(pageEldersAuthDTO);
    }
    /**
     * 设置社区认证方式
     * @param communityId 社区ID
     * @param type 核验类型(1.视频认证 2.人脸核验)
     * @return
     */
    @PostMapping("/elders/setCommunityAuthType")
    R setCommunityAuthType(@RequestParam("communityId")Long communityId,@RequestParam("type") Integer type){
        return eldersAuthService.setCommunityAuthType(communityId, type);
    }
}