xiangpei
2024-07-10 4fd337a8357e855b70bd5591b216320445ab650b
密码过期处理定时任务
2个文件已修改
1个文件已添加
73 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/job/PasswordExpireJob.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/UserMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/job/PasswordExpireJob.java
New file
@@ -0,0 +1,53 @@
package com.ycl.jxkg.job;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.jxkg.domain.entity.SysConfig;
import com.ycl.jxkg.mapper.SysConfigMapper;
import com.ycl.jxkg.mapper.UserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 密码过期处理
 *
 * @author:xp
 * @date:2024/7/10 9:52
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class PasswordExpireJob {
    private final UserMapper userMapper;
    private final SysConfigMapper configMapper;
    /**
     * 每天凌晨执行
     *
     */
    @Scheduled(cron = "0 0 0 * * ?")
    public void passwordExpire() {
        List<SysConfig> list = new LambdaQueryChainWrapper<>(configMapper)
                .list();
        if (list.size() > 1) {
            log.error("系统配置大于1条,无法正确执行【密码过期】任务");
            return;
        }
        if (list.size() == 0) {
            log.error("不存在系统配置,无法正确执行【密码过期】任务");
            return;
        }
        SysConfig config = list.get(0);
        if (Objects.isNull(config.getPasswordExpireTime())) {
            // 如果未配置密码过期时间,则默认30天密码过期
            config.setPasswordExpireTime(30);
        }
        userMapper.updatePasswordExpire(config.getPasswordExpireTime(), new Date());
    }
}
src/main/java/com/ycl/jxkg/mapper/UserMapper.java
@@ -8,6 +8,7 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -138,4 +139,12 @@
     * @return
     */
    List<StudentVO> classesStudent(@Param("classesId") Integer classesId);
    /**
     * 修改用户密码过期
     *
     * @param passwordExpireDay 密码过期时间(天)
     * @param now 当前时间
     */
    void updatePasswordExpire(@Param("expireDay") Integer passwordExpireDay, @Param("now") Date now);
}
src/main/resources/mapper/UserMapper.xml
@@ -208,4 +208,15 @@
        ORDER BY tcu.create_time
    </select>
    <update id="updatePasswordExpire">
        UPDATE
            t_user
        SET
            need_update_password = 1,last_update_password_time = #{now}
        WHERE
            last_update_password_time IS NOT NULL
          AND
            DATEDIFF(#{now}, last_update_password_time) > #{expireDay}
    </update>
</mapper>