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.*;
|
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 cn.hutool.core.util.IdcardUtil;
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* @auther lyq
|
* @create 2021-04-14 15:03:01
|
* @describe 服务实现类
|
*/
|
@Slf4j
|
@Service
|
public class EldersAuthServiceImpl extends ServiceImpl<EldersAuthDAO, EldersAuthDO> implements EldersAuthService {
|
|
@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) {
|
EldersAuthDO eldersAuthDO = new EldersAuthDO();
|
BeanUtils.copyProperties(eldersAuthAddDTO, eldersAuthDO);
|
eldersAuthDO.setCreateAt(new Date());
|
eldersAuthDO.setCreateBy(eldersAuthAddDTO.getSumitUserId());
|
if (eldersAuthDAO.insert(eldersAuthDO) > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 修改高龄认证
|
*
|
* @param eldersAuthEditDTO
|
* @return 维护结果
|
*/
|
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) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 分页查找高龄认证
|
*
|
* @param pageEldersAuthDTO
|
* @return 维护结果
|
*/
|
public R<IPage<EldersAuthVO>> query(PageEldersAuthDTO pageEldersAuthDTO) {
|
Page page = new Page<>();
|
page.setSize(pageEldersAuthDTO.getPageSize());
|
page.setCurrent(pageEldersAuthDTO.getPageNum());
|
return R.ok(eldersAuthDAO.selectByPage(page, pageEldersAuthDTO));
|
}
|
|
/**
|
* 删除高龄认证
|
*
|
* @param EldersAuthDeleteDTO
|
* @return 平台用户信息
|
*/
|
public R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO) {
|
return R.fail();
|
}
|
|
/**
|
* 查询高龄认证详细信息
|
*
|
* @param id
|
* 高龄认证 id
|
* @return 查找结果
|
*/
|
public R<EldersAuthDetailsVO> eldersAuthDetails(Long id) {
|
EldersAuthDetailsVO eldersAuthDetailsVO = eldersAuthDAO.selectDetails(id);
|
if (eldersAuthDetailsVO != null) {
|
// 社区反馈
|
List<EldersAuthFeedbackDO> list =
|
eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>()
|
.eq(EldersAuthFeedbackDO::getAuthId, eldersAuthDetailsVO.getId()));
|
List<EldersAuthFeedbackVO> listVO = new ArrayList<>();
|
list.forEach(feedDo -> {
|
EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
|
BeanUtils.copyProperties(feedDo, eldersAuthFeedbackVO);
|
listVO.add(eldersAuthFeedbackVO);
|
});
|
eldersAuthDetailsVO.setEldersAuthFeedbackVOList(listVO);
|
return R.ok(eldersAuthDetailsVO);
|
}
|
return R.fail();
|
}
|
|
/**
|
* 新增高龄认证社区反馈
|
*
|
* @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();
|
}
|
|
/**
|
* 查找高龄认证导出数据
|
*
|
* @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));
|
}
|
}
|