huanghongfa
2021-09-04 60d2671345116e6d9366efe6765bdf5ca9e71d86
高龄认证定时任务,修复bug
2个文件已添加
10个文件已修改
268 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}