springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java
New file @@ -0,0 +1,41 @@ package com.panzhihua.common.model.vos.elders; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data @ApiModel("高龄老人用户信息") @EncryptDecryptClass public class ComEldersAuthHistoryVO { @ApiModelProperty(value = "认证记录id") private Long id; @ApiModelProperty(value = "认证姓名") private String name; @ApiModelProperty(value = "认证用户老人关系表id") private Long userId; @ApiModelProperty(value = "认证用户身份证") @EncryptDecryptField private String idCard; @ApiModelProperty(value = "认证用户生日") private String birthday; @ApiModelProperty(value = "认证用户户籍地") private String domicile; @ApiModelProperty(value = "社区id") private Long communityId; @ApiModelProperty(value = "认证时间") private Date createAt; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -5245,4 +5245,18 @@ */ @GetMapping("/sys/conf/editSysConfValue") R editSysConfValue(@RequestParam("communityId") Long communityId,@RequestParam("status") Integer status); /** * 定时任务扫描高龄认证记录信息 * @return 执行结果 */ @PostMapping("/elders/auth/task") R timedTaskEldersAuthJobHandler(); /** * 定时任务扫描上月高龄认证使用视频认证的用户添加成功记录 * @return 执行结果 */ @PostMapping("/elders/auth/record/task") R timedTaskEldersAuthRecordJobHandler(); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -758,6 +758,12 @@ return instance.get(Calendar.MONTH); } public static int getYear(Date date) { Calendar instance = Calendar.getInstance(); instance.setTime(date); return instance.get(Calendar.YEAR); } public static boolean before(Date start, Date end) { Calendar date1 = Calendar.getInstance(); date1.setTime(start); @@ -883,6 +889,5 @@ // Date after = new Date(); // System.out.println(getFirstDayOfMonthString()); // System.out.println(getDayOfMonthString()); } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -757,6 +757,7 @@ if (ObjectUtils.isEmpty(type) || type > 5 || type < 1) { return R.fail("操作类型不对"); } comActMicroWishVO.setUserId(userId); R r = communityService.putlMicroWish(comActMicroWishVO); if (R.isOk(r)) { if (R.isOk(r)) { springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -191,4 +191,18 @@ return eldersAuthService.getAuthHistoryExport(pageEldersAuthElderlyDTO); } @PostMapping("/auth/task") public R timedTaskEldersAuthJobHandler() { return eldersAuthService.timedTaskEldersAuthJobHandler(); } /** * 检测上月所有视频认证记录,取最后一条记录为认证成功记录 * @return 执行结果 */ @PostMapping("/auth/record/task") public R timedTaskEldersRecordAuthJobHandler() { return eldersAuthService.timedTaskEldersRecordAuthJobHandler(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java
@@ -34,4 +34,6 @@ * @return */ int countCurrentMonthValidAuthRecord(@Param("elderId") Long elderId); void updateAuthStatus(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -1,7 +1,10 @@ package com.panzhihua.service_community.dao; import java.util.List; import java.util.Map; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -13,10 +16,6 @@ import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO; import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO; import com.panzhihua.common.model.vos.community.ComEldersAuthRecordForCommunityVO; import com.panzhihua.common.model.vos.community.ComEldersAuthRecordVO; import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO; import com.panzhihua.common.model.vos.community.EldersAuthVO; import com.panzhihua.common.model.vos.user.SysUserVO; import com.panzhihua.service_community.model.dos.EldersAuthDO; @@ -149,4 +148,8 @@ IPage<ComEldersAuthRecordForCommunityVO> selectCommunityEldersRecordByPage(Page page, @Param("pageEldersAuthRecordDTO") PageEldersAuthRecordDTO pageEldersAuthRecordDTO); Map<String,String> getEldersAuthStatistics(@Param("communityId") Long communityId); List<ComEldersAuthHistoryVO> getEldersAuthRecords(@Param("communityId") Long communityId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
@@ -169,4 +169,12 @@ R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO); R timedTaskEldersAuthJobHandler(); /** * 检测上月所有视频认证记录,取最后一条记录为认证成功记录 * @return 执行结果 */ R timedTaskEldersRecordAuthJobHandler(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -3,9 +3,11 @@ 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.vos.elders.ComEldersAuthHistoryVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -60,6 +62,8 @@ private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper; @Resource private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper; @Resource private ComActDAO comActDAO; @Value("${domain.aesKey:}") private String aesKey; @@ -524,4 +528,71 @@ }); 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,String> resultMap = this.baseMapper.getEldersAuthStatistics(act.getCommunityId()); if(resultMap != null){ ComEldersAuthStatisticsDO authStatisticsDO = new ComEldersAuthStatisticsDO(); authStatisticsDO.setCommunityId(act.getCommunityId()); authStatisticsDO.setMonth(DateUtils.getMonth(nowDate)); authStatisticsDO.setYear(DateUtils.getYear(nowDate)); authStatisticsDO.setCreateAt(nowDate); authStatisticsDO.setSum(Integer.parseInt(resultMap.get("oldCount"))); authStatisticsDO.setNoAuthSum(Integer.parseInt(resultMap.get("noCount"))); authStatisticsDO.setAuthSum(Integer.parseInt(resultMap.get("yesCount"))); comEldersAuthStatisticsMapper.insert(authStatisticsDO); } }); //重置所有人的认证状态 comEldersAuthUserMapper.updateAuthStatus(); return R.ok(); } /** * 检测上月所有视频认证记录,取最后一条记录为认证成功记录 * @return 执行结果 */ @Override @Transactional(rollbackFor = Exception.class) public R timedTaskEldersRecordAuthJobHandler(){ Date nowDate = new Date(); //查询所有启用中社区 List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0)); actList.forEach(act -> { //查询社区上月所有视频认证 List<ComEldersAuthHistoryVO> authList = eldersAuthDAO.getEldersAuthRecords(act.getCommunityId()); authList.forEach(auth -> { if(auth.getUserId() != null){ ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO(); authHistoryRecordDO.setCommunityId(auth.getCommunityId()); authHistoryRecordDO.setCreateAt(auth.getCreateAt()); authHistoryRecordDO.setAuthId(auth.getId()); authHistoryRecordDO.setUserId(auth.getUserId()); authHistoryRecordDO.setBrithday(auth.getBirthday()); authHistoryRecordDO.setDomicile(auth.getDomicile()); authHistoryRecordDO.setIdCard(auth.getIdCard()); authHistoryRecordDO.setName(auth.getName()); authHistoryRecordDO.setIsAuth(1); try { Integer age = IdcardUtil.getAgeByIdCard(auth.getIdCard()); authHistoryRecordDO.setAge(age); }catch (Exception e){ log.error("年龄转换失败"); } comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO); } }); }); return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml
New file @@ -0,0 +1,83 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.service_community.dao.EldersAuthDAO"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.EldersAuthDO"> <id column="ID" property="id" /> <result column="CREATE_BY" property="createBy" /> <result column="CREATE_AT" property="createAt" /> <result column="UPDATE_BY" property="updateBy" /> <result column="UPDATE_AT" property="updateAt" /> <result column="ID_CARD" property="idCard" /> <result column="AUTH_USER_NAME" property="authUserName" /> <result column="VIDEO_URL" property="videoUrl" /> <result column="SUMIT_USER_ID" property="sumitUserId" /> <result column="DOMICILE" property="domicile" /> <result column="STATUS" property="status" /> <result column="BIRTH_DAY" property="birthDay" /> <result column="FAMILY_USER_ID" property="familyUserId" /> <result column="type" property="type" /> <result column="verification_result" property="verificationResult" /> <result column="age" property="age" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> ID, CREATE_BY, CREATE_AT, UPDATE_BY, UPDATE_AT, ID_CARD, AUTH_USER_NAME, VIDEO_URL, SUMIT_USER_ID, DOMICILE, STATUS, BIRTH_DAY, FAMILY_USER_ID, type, verification_result, age </sql> <select id="getEldersAuthStatistics" resultType="Map"> SELECT community_id, ( SELECT count( id ) FROM com_elders_auth_elderly WHERE community_id = ca.community_id AND is_exist = 1 AND is_big_age = 1 ) AS oldCount, ( SELECT count( id ) FROM com_elders_auth_history_record WHERE community_id = ca.community_id AND is_auth = 1 AND create_at BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' ) AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' ) ) AS yesCount, ( SELECT count( id ) FROM com_elders_auth_history_record WHERE community_id = ca.community_id AND is_auth = 2 AND create_at BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' ) AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' ) ) AS noCount FROM com_act AS ca WHERE community_id = 2 </select> <select id="getEldersAuthRecords" resultType="com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO"> SELECT distinct cea.id, ceau.id as userId, ceau.`name`, ceae.id_card, ceae.birthday, ceae.domicile, cea.CREATE_AT FROM com_elders_auth AS cea LEFT JOIN com_elders_auth_user AS ceau ON ceau.id = cea.FAMILY_USER_ID LEFT JOIN com_elders_auth_elderly AS ceae ON ceae.id = ceau.big_age_id WHERE type = 1 and ceau.community_id = #{communityId} AND cea.CREATE_AT BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' ) AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' ) order by cea.CREATE_AT desc </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml
@@ -45,5 +45,9 @@ WHERE FAMILY_USER_ID = #{elderId} AND DATE_FORMAT(create_at, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') AND (`type` = 2 OR ( type=1 AND `STATUS` IS NULL) ) </select> <update id="updateAuthStatus"> update com_elders_auth_user set is_auth = 2 </update> </mapper> springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -204,4 +204,16 @@ log.info("执行结果【{}】", r.toString()); return ReturnT.SUCCESS; } @XxlJob("timedTaskEldersAuthJobHandler") public ReturnT<String> timedTaskEldersAuthJobHandler(String param) throws Exception { log.info("定时任务扫描上月高龄认证使用视频认证的用户添加成功记录"); R r = communityService.timedTaskEldersAuthRecordJobHandler(); log.info("执行结果【{}】", r.toString()); log.info("定时任务扫描高龄认证记录统计信息"); R r1 = communityService.timedTaskEldersAuthJobHandler(); log.info("执行结果【{}】", r1.toString()); return ReturnT.SUCCESS; } }