From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java | 647 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 617 insertions(+), 30 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 dfe5b33..2fb3c82 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 @@ -1,33 +1,52 @@ package com.panzhihua.service_community.service.impl; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO; +import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO; +import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO; +import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO; +import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO; +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; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.*; +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.EldersAuthDetailsVO; -import com.panzhihua.common.model.vos.community.EldersAuthFeedbackVO; -import com.panzhihua.common.model.vos.community.EldersAuthVO; +import com.panzhihua.common.model.vos.community.*; +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.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.EldersAuthService; -import io.swagger.annotations.ApiModelProperty; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.beans.BeanUtils; -import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import cn.hutool.core.util.IdcardUtil; +import lombok.extern.slf4j.Slf4j; /** * @auther lyq * @create 2021-04-14 15:03:01 - * @describe 订单表服务实现类 + * @describe 服务实现类 */ @Slf4j @Service @@ -35,20 +54,46 @@ @Resource private EldersAuthDAO eldersAuthDAO; - @Resource private EldersAuthFeedbackDAO eldersAuthFeedbackDAO; + @Resource + private ComEldersAuthUserMapper comEldersAuthUserMapper; + @Resource + private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper; + @Resource + private SysConfMapper sysConfDao; + @Resource + private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper; + @Resource + private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper; + @Resource + private ComActDAO comActDAO; + @Resource + private ComElderAuthRecordsDAO comElderAuthRecordsDAO; + @Resource + private ComElderAuthElderliesDAO comElderAuthElderliesDAO; + @Resource + private ComPensionAuthHistoryRecordMapper comPensionAuthHistoryRecordMapper; + @Resource + private ComPensionAuthRecordDAO comPensionAuthRecordDAO; + @Resource + private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO; + + @Value("${domain.aesKey:}") + private String aesKey; + /** * 新增高龄认证 + * * @param eldersAuthAddDTO * @return 新增结果 */ - public R add(EldersAuthAddDTO eldersAuthAddDTO){ + public R add(EldersAuthAddDTO eldersAuthAddDTO) { EldersAuthDO eldersAuthDO = new EldersAuthDO(); BeanUtils.copyProperties(eldersAuthAddDTO, eldersAuthDO); eldersAuthDO.setCreateAt(new Date()); eldersAuthDO.setCreateBy(eldersAuthAddDTO.getSumitUserId()); - if(eldersAuthDAO.insert(eldersAuthDO)>0){ + if (eldersAuthDAO.insert(eldersAuthDO) > 0) { return R.ok(); } return R.fail(); @@ -56,15 +101,16 @@ /** * 修改高龄认证 + * * @param eldersAuthEditDTO * @return 维护结果 */ - public R edit(EldersAuthEditDTO eldersAuthEditDTO){ + public R edit(EldersAuthEditDTO eldersAuthEditDTO) { EldersAuthDO eldersAuthDO = new EldersAuthDO(); BeanUtils.copyProperties(eldersAuthEditDTO, eldersAuthDO); eldersAuthDO.setUpdateAt(new Date()); eldersAuthDO.setUpdateBy(eldersAuthEditDTO.getSumitUserId()); - if(eldersAuthDAO.updateById(eldersAuthDO)>0){ + if (eldersAuthDAO.updateById(eldersAuthDO) > 0) { return R.ok(); } return R.fail(); @@ -72,10 +118,11 @@ /** * 分页查找高龄认证 + * * @param pageEldersAuthDTO * @return 维护结果 */ - public R<IPage<EldersAuthVO>> query(PageEldersAuthDTO pageEldersAuthDTO){ + public R<IPage<EldersAuthVO>> query(PageEldersAuthDTO pageEldersAuthDTO) { Page page = new Page<>(); page.setSize(pageEldersAuthDTO.getPageSize()); page.setCurrent(pageEldersAuthDTO.getPageNum()); @@ -84,27 +131,30 @@ /** * 删除高龄认证 + * * @param EldersAuthDeleteDTO * @return 平台用户信息 */ - public R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO){ + public R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO) { return R.fail(); } /** * 查询高龄认证详细信息 - * @param id 高龄认证 id + * + * @param id + * 高龄认证 id * @return 查找结果 */ - public R<EldersAuthDetailsVO> eldersAuthDetails(Long id){ + public R<EldersAuthDetailsVO> eldersAuthDetails(Long id) { EldersAuthDetailsVO eldersAuthDetailsVO = eldersAuthDAO.selectDetails(id); - if(eldersAuthDetailsVO!=null) { - //社区反馈 + if (eldersAuthDetailsVO != null) { + // 社区反馈 List<EldersAuthFeedbackDO> list = - eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>() - .eq(EldersAuthFeedbackDO::getAuthId, eldersAuthDetailsVO.getId())); + eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>() + .eq(EldersAuthFeedbackDO::getAuthId, eldersAuthDetailsVO.getId())); List<EldersAuthFeedbackVO> listVO = new ArrayList<>(); - list.forEach(feedDo ->{ + list.forEach(feedDo -> { EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO(); BeanUtils.copyProperties(feedDo, eldersAuthFeedbackVO); listVO.add(eldersAuthFeedbackVO); @@ -114,19 +164,556 @@ } return R.fail(); } + /** * 新增高龄认证社区反馈 + * * @param eldersAuthFeedbackAddDTO * @return 新增结果 */ - public R addFeedback(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO){ + @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){ + 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(); } + + /** + * 查找高龄认证导出数据 + * + * @param pageEldersAuthDTO + * @return 维护结果 + */ + public R<List<ExcelElderAuthDTO>> queryExportData(PageEldersAuthDTO pageEldersAuthDTO) { + Page page = new Page<>(); + page.setSize(pageEldersAuthDTO.getPageSize()); + page.setCurrent(10000); + return R.ok(eldersAuthDAO.selectByParams(pageEldersAuthDTO)); + } + + @Override + public String queryDomicile(String idCard) { + return eldersAuthDAO.selectDomicile(idCard); + } + + @Override + public R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO) { + Page page = new Page<>(); + page.setSize(pageComEldersRecordsDTO.getPageSize()); + page.setCurrent(pageComEldersRecordsDTO.getPageNum()); + List<ComEldersAuthRecordVO> eldersAuthDOList = + eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO); + return R.ok(eldersAuthDOList); + } + + @Override + public R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(Long id) { + EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(id); + if (eldersAuthDO == null) { + return R.fail("未查询到认证记录"); + } + ComEldersAuthElderlyDetailsVO comEldersAuthElderlyDetailsVO = new ComEldersAuthElderlyDetailsVO(); + BeanUtils.copyProperties(eldersAuthDO, comEldersAuthElderlyDetailsVO); + + String communityName = eldersAuthDAO.selectCommunityNameByAuth(id); + comEldersAuthElderlyDetailsVO.setCommunityName(communityName); + + List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO + .selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id)); + List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList = new ArrayList<>(); + eldersAuthFeedbackDOList.forEach(edo -> { + EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO(); + BeanUtils.copyProperties(edo, eldersAuthFeedbackVO); + eldersAuthFeedbackVOList.add(eldersAuthFeedbackVO); + }); + comEldersAuthElderlyDetailsVO.setFeedback(eldersAuthFeedbackVOList); + return R.ok(comEldersAuthElderlyDetailsVO); + } + + @Override + public R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) { + Long communityId = eldersAuthTypeQueryDTO.getCommunityId(); + List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt)); + if (confDOList == null || confDOList.size() == 0) { + SysConfDO sysConfDO = new SysConfDO(); + sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId); + sysConfDO.setName("高龄认证类型"); + sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验) + sysConfDO.setDescription("高龄认证默认添加的核验类型"); + sysConfDO.setCommunityId(communityId); + sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId()); + int inserted = sysConfDao.insert(sysConfDO); + if (inserted != 1) { + throw new ServiceException("添加高龄认证默认添加的核验类型失败"); + } + confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId()) + .orderByDesc(SysConfDO::getCreateAt)); + } + if (confDOList != null && confDOList.size() > 0) { + SysConfDO latest = confDOList.get(0); + SysConfVO sysConfVO = new SysConfVO(); + BeanUtils.copyProperties(latest, sysConfVO); + return R.ok(sysConfVO.getValue()); + } + return R.ok(); + } + + /** + * 人脸核验新增高龄认证记录 + * + * @param authGetResultDTO + * 请求参数 + * @return 新增结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + 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(idCard); + eldersAuthDO.setAuthUserName(authUserDO.getName()); + eldersAuthDO.setCreateBy(authGetResultDTO.getUserId()); + eldersAuthDO.setCreateAt(new Date()); + eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId()); + String domicile = this.baseMapper.selectDomicile(idCard); + if (org.springframework.util.StringUtils.isEmpty(domicile)) { + domicile = "暂无"; + } + eldersAuthDO.setDomicile(domicile); + eldersAuthDO.setBirthDay(IdcardUtil.getBirthDate(idCard)); + eldersAuthDO.setFamilyUserId(authUserDO.getId()); + 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()); + } + log.error("人脸核验新增认证记录失败,错误原因:未查询到老人记录,老人id:" + authGetResultDTO.getAuthUserId()); + return R.fail(); + } + + /** + * 高龄认证分页接口 + * + * @param authPageDTO + * 请求参数 + * @return 查询结果 + */ + @Override + 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())); + if (oldAuthUserDO == null) { + // 查询老人库是否存在当前用户信息 + ComEldersAuthElderlyDO authElderlyDO = + comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda() + .eq(ComEldersAuthElderlyDO::getIdCard, userVO.getIdCard())); + if (authElderlyDO != null) { + ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO(); + authUserDO.setUserId(userVO.getUserId()); + authUserDO.setRelation(ComEldersAuthUserDO.relation.br); + authUserDO.setName(userVO.getName()); + authUserDO.setIdCard(idCard); + authUserDO.setCommunityId(authElderlyDO.getCommunityId()); + authUserDO.setBigAgeId(authElderlyDO.getId()); + comEldersAuthUserMapper.insert(authUserDO); + } + } + } + + 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)); + 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())); + if (count > 0) { + authUser.setIsFeedback(1); + } + } + } + } + + 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); + } + + /** + * 添加高龄老人接口 + * + * @param authUserAddAppDTO + * 请求参数 + * @return 添加结果 + */ + @Override + public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) { + + ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>() + .lambda().eq(ComEldersAuthUserDO::getIdCard, authUserAddAppDTO.getIdCard())); + if (authUserDO != null) { + 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, encryptedIdCard)); + if (authElderlyDO == null) { + return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员"); + } + + authUserDO = new ComEldersAuthUserDO(); + BeanUtils.copyProperties(authUserAddAppDTO, authUserDO); + authUserDO.setBigAgeId(authElderlyDO.getId()); + authUserDO.setName(authElderlyDO.getName()); + if (comEldersAuthUserMapper.insert(authUserDO) > 0) { + return R.ok(authUserDO.getId()); + } + + return R.fail("添加失败"); + } + + /** + * 修改高龄老人接口 + * + * @param authUserAddAppDTO + * 请求参数 + * @return 修改结果 + */ + @Override + public R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) { + + ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUserAddAppDTO.getElderId()); + if (authUserDO == null) { + return R.fail("未查询到老人信息"); + } + if (StringUtils.isNotEmpty(authUserAddAppDTO.getName())) { + authUserDO.setName(authUserAddAppDTO.getName()); + } + if (authUserAddAppDTO.getRelation() != null) { + authUserDO.setRelation(authUserAddAppDTO.getRelation()); + } + if (comEldersAuthUserMapper.updateById(authUserDO) > 0) { + return R.ok(); + } + return R.fail(); + } + + @Override + public R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) { + Page page = new Page(); + page.setCurrent(pageEldersAuthElderlyDTO.getPageNum()); + page.setSize(pageEldersAuthElderlyDTO.getPageSize()); + 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_" + communityId).orderByDesc(SysConfDO::getCreateAt)); + if (authConf != null && authConf.size() > 0) { + SysConfDO first = authConf.get(0); + first.setValue(type + ""); + int updated = sysConfDao.updateById(first); + if (updated == 1) { + return R.ok(); + } + } + return R.fail(); + } + + @Override + public R getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) { + return R.ok(comEldersAuthStatisticsMapper.findByPage( + new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()), + pageEldersAuthElderlyDTO)); + } + + @Override + 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); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R timedTaskEldersAuthJobHandler(){ + + Date nowDate = new Date(); + //查询所有启用中社区 + List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0)); + + actList.forEach(act -> { + //查询社区老人认证统计信息,并存储到数据库中 + Map<String,Object> resultMap = this.baseMapper.getEldersAuthStatistics(act.getCommunityId()); + if(resultMap != null){ + ComEldersAuthStatisticsDO authStatisticsDO = new ComEldersAuthStatisticsDO(); + authStatisticsDO.setCommunityId(act.getCommunityId()); + authStatisticsDO.setMonth(DateUtils.getMonth(nowDate) + 1); + authStatisticsDO.setYear(DateUtils.getYear(nowDate)); + authStatisticsDO.setCreateAt(nowDate); + authStatisticsDO.setSum(Integer.parseInt(resultMap.get("oldCount").toString())); + authStatisticsDO.setNoAuthSum(Integer.parseInt(resultMap.get("noCount").toString())); + authStatisticsDO.setAuthSum(Integer.parseInt(resultMap.get("yesCount").toString())); + comEldersAuthStatisticsMapper.insert(authStatisticsDO); + } + }); + //重置所有人的认证状态 + comEldersAuthUserMapper.updateAuthStatus(); + return R.ok(); + } + + /** + * 身份认证定时任务 + * @return 执行结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R timedTaskEldersRecordAuthJobHandler(){ + Date nowDate = new Date(); + + //高龄认证本期期数 + String elderAuthPeriod = DateUtils.getCurrentDateString_YYYY_MM(); + //养老认证本期期数 + String pensionAuthPeriod = DateUtils.getCurrentDateString_YYYY(); + + //查询所有老人信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作 + List<ComElderAuthElderliesDO> authElderliesList = comElderAuthElderliesDAO.getAuthElderLiesList(); + authElderliesList.forEach(authElderlies -> { + //查询高龄认证记录 + ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda() + .eq(ComEldersAuthHistoryRecordDO::getElderliesId,authElderlies.getId()) + .eq(ComEldersAuthHistoryRecordDO::getAuthPeriod,elderAuthPeriod)); + if(authHistoryRecordDO == null){ + authHistoryRecordDO = new ComEldersAuthHistoryRecordDO(); + BeanUtils.copyProperties(authElderlies,authHistoryRecordDO); + authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.no); + authHistoryRecordDO.setElderliesId(authElderlies.getId()); + authHistoryRecordDO.setAuthPeriod(elderAuthPeriod); + authHistoryRecordDO.setCreateAt(nowDate); + authHistoryRecordDO.setBrithday(IdcardUtil.getBirthByIdCard(authElderlies.getIdCard())); + authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderlies.getIdCard())); + comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO); + } + }); + + //查询所有养老人员信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作 + List<ComPensionAuthPensionerDO> pensionAuthPensionerList = comPensionAuthPensionerDAO.getAuthPensionList(); + pensionAuthPensionerList.forEach(authPension -> { + //查询养老认证记录 + ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComPensionAuthHistoryRecordDO>().lambda() + .eq(ComPensionAuthHistoryRecordDO::getElderliesId,authPension.getId()) + .eq(ComPensionAuthHistoryRecordDO::getAuthPeriod,pensionAuthPeriod)); + if(pensionAuthDO == null){ + pensionAuthDO = new ComPensionAuthHistoryRecordDO(); + BeanUtils.copyProperties(authPension,pensionAuthDO); + pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.no); + pensionAuthDO.setElderliesId(authPension.getId()); + pensionAuthDO.setAuthPeriod(pensionAuthPeriod); + pensionAuthDO.setCreateAt(nowDate); + pensionAuthDO.setBrithday(IdcardUtil.getBirthByIdCard(authPension.getIdCard())); + pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPension.getIdCard())); + comPensionAuthHistoryRecordMapper.insert(pensionAuthDO); + } + }); + return R.ok(); + } + + @Override + public R setAuthType(Long communityId, Integer type){ + List<SysConfDO> authConf = + sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId) + .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt)); + if (authConf != null && authConf.size() > 0) { + SysConfDO first = authConf.get(0); + first.setValue(type + ""); + int updated = sysConfDao.updateById(first); + if (updated == 1) { + return R.ok(); + } + } + return R.fail(); + } + + @Override + public R getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO){ + Long communityId = eldersAuthTypeQueryDTO.getCommunityId(); + List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt)); + if (confDOList == null || confDOList.size() == 0) { + SysConfDO sysConfDO = new SysConfDO(); + sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId); + sysConfDO.setName("高龄认证类型"); + sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验) + sysConfDO.setDescription("高龄认证默认添加的核验类型"); + sysConfDO.setCommunityId(communityId); + sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId()); + int inserted = sysConfDao.insert(sysConfDO); + if (inserted != 1) { + throw new ServiceException("添加高龄认证默认添加的核验类型失败"); + } + confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, communityId) + .orderByDesc(SysConfDO::getCreateAt)); + } + if (confDOList != null && confDOList.size() > 0) { + SysConfDO latest = confDOList.get(0); + SysConfVO sysConfVO = new SysConfVO(); + BeanUtils.copyProperties(latest, sysConfVO); + return R.ok(sysConfVO.getValue()); + } + return R.ok(); + } + + /** + * 高龄认证统计-分页查询 + * @param pageElderAuthStatisticDTO 请求参数 + * @return 高龄认证统计列表 + */ + @Override + public R pageAuthStatisticAdmin(PageElderAuthStatisticDTO pageElderAuthStatisticDTO){ + IPage<ComEldersAuthStatisticVO> authStatisticPage = comEldersAuthHistoryRecordMapper.pageAuthStatisticAdmin( + new Page(pageElderAuthStatisticDTO.getPageNum(),pageElderAuthStatisticDTO.getPageSize()),pageElderAuthStatisticDTO); + authStatisticPage.getRecords().forEach(authStatistic -> { + authStatistic.setAge(IdcardUtil.getAgeByIdCard(authStatistic.getIdCard())); + authStatistic.setBirthday(IdcardUtil.getBirth(authStatistic.getIdCard())); + }); + return R.ok(authStatisticPage); + } + + /** + * 高龄认证统计-标记 + * @param signElderAuthStatisticDTO 请求参数 + * @return 标记结果 + */ + @Override + public R signAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO){ + ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectById(signElderAuthStatisticDTO.getId()); + if(authHistoryRecordDO == null){ + return R.fail("未查询到该记录"); + } + authHistoryRecordDO.setMark(signElderAuthStatisticDTO.getMark()); + if(comEldersAuthHistoryRecordMapper.updateById(authHistoryRecordDO) > 0){ + return R.ok(); + } + return R.fail(); + } + + /** + * 高龄认证统计-统计表头数据 + * @param statisticHeaderDTO 请求参数 + * @return 统计表头数据 + */ + @Override + public R getAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO){ + return R.ok(comEldersAuthHistoryRecordMapper.getAuthHeaderStatisticAdmin(statisticHeaderDTO)); + } } -- Gitblit v1.7.1