zqy
2025-11-11 3e02abec44a648f01174a4c3494a96ccb46a3b1a
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -33,6 +33,14 @@
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.time.temporal.Temporal;
import java.util.Date;
import java.util.Objects;
/**
 * 登录校验方法
 * 
@@ -109,7 +117,25 @@
    public boolean endOfLife(String username) {
        SysUser sysUser = userService.selectUserByNickName(username);
        System.out.println(sysUser);
        if (sysUser.getPaid() != null && sysUser.getPaid().equals(0) && !"4".equals(sysUser.getStatus())) {
            Date startTime = sysUser.getCreateTime();
            // 安全转换
            Instant instant = startTime.toInstant();
            LocalDateTime startDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
            long daysPassed = ChronoUnit.DAYS.between(startDateTime, LocalDateTime.now());
            if (daysPassed > sysUser.getRemainTime()) {
                sysUser.setStatus("4");
                userService.updateUserStatus(sysUser);
            }
        }
        return true;
    }
@@ -130,6 +156,8 @@
        loginPreCheck(nickName, password);
        // 用户验证
        Authentication authentication = null;
        try
        {
            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(nickName, password);
@@ -157,6 +185,9 @@
        AsyncManager.me().execute(AsyncFactory.recordLogininfor(nickName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
        recordLoginInfo(loginUser.getUserId());
        endOfLife(nickName);
        SysUser sysUser = userService.selectUserByNickName(nickName);
@@ -257,4 +288,7 @@
        sysUser.setLoginDate(DateUtils.getNowDate());
        userService.updateUserProfile(sysUser);
    }
}