|
@@ -1,6 +1,9 @@
|
|
|
package com.backendsys.modules.system.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.backendsys.exception.CustException;
|
|
|
import com.backendsys.modules.common.config.redis.utils.RedisUtil;
|
|
@@ -11,6 +14,7 @@ import com.backendsys.modules.system.dao.SysUserDao;
|
|
|
import com.backendsys.modules.system.dao.SysUserInfoDao;
|
|
|
import com.backendsys.modules.system.entity.*;
|
|
|
import com.backendsys.modules.system.service.SysAuthService;
|
|
|
+import com.backendsys.modules.system.service.SysCommonService;
|
|
|
import com.backendsys.modules.system.service.SysUserIntegralService;
|
|
|
import com.backendsys.modules.system.service.SysUserService;
|
|
|
import com.backendsys.utils.response.ResultEnum;
|
|
@@ -59,14 +63,13 @@ public class SysAuthServiceImpl implements SysAuthService {
|
|
|
private SysMobileAreaDao sysMobileAreaDao;
|
|
|
@Autowired
|
|
|
private SysUserIntegralService sysUserIntegralService;
|
|
|
+ @Autowired
|
|
|
+ private SysCommonService sysCommonService;
|
|
|
|
|
|
@Value("${tencent.sms.debug}")
|
|
|
private String SMS_DEBUG;
|
|
|
@Value("${CAPTCHA_DURATION}")
|
|
|
private Integer CAPTCHA_DURATION;
|
|
|
- @Value("${TOKEN_DURATION_SYSTEM}")
|
|
|
- private Integer TOKEN_DURATION_SYSTEM;
|
|
|
-
|
|
|
|
|
|
@Value("${REDIS_LOGIN_TOKEN_PREFIX}")
|
|
|
private String REDIS_LOGIN_TOKEN_PREFIX;
|
|
@@ -156,9 +159,20 @@ public class SysAuthServiceImpl implements SysAuthService {
|
|
|
sysUserInfo.setLast_login_time(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
sysUserInfoDao.updateById(sysUserInfo);
|
|
|
|
|
|
- // 设置 Token 过期时间
|
|
|
- Integer token_duration = (is_remember != null && is_remember.equals(1)) ? TOKEN_DURATION_SYSTEM * 7 : TOKEN_DURATION_SYSTEM;
|
|
|
- Date token_expiration = new Date((new Date()).getTime() + token_duration);
|
|
|
+ // [系统配置] 系统用户默认登录过期时间(小时)
|
|
|
+ Integer SYSTEM_LOGIN_DURATION_DEFAULT = Convert.toInt(sysCommonService.getCommonByTag("SYSTEM_LOGIN_DURATION_DEFAULT"));
|
|
|
+ // 将小时转换为毫秒
|
|
|
+ Long DEFAULT_MILLISECONDS = SYSTEM_LOGIN_DURATION_DEFAULT * DateUnit.HOUR.getMillis();
|
|
|
+ // 7天 (转毫秒)
|
|
|
+ Long SEVEN_DAY_MILLISECONDS = 7L * 24 * 60 * 60 * 1000;
|
|
|
+
|
|
|
+ Long token_duration_milliseconds = (is_remember != null && is_remember.equals(1)) ? SEVEN_DAY_MILLISECONDS : DEFAULT_MILLISECONDS;
|
|
|
+ Integer token_duration_hours = Convert.toInt(token_duration_milliseconds / 3600000L);
|
|
|
+
|
|
|
+ System.out.println("token_duration_milliseconds = " + token_duration_milliseconds);
|
|
|
+ System.out.println("token_duration_hours = " + token_duration_hours);
|
|
|
+
|
|
|
+ Date token_expiration = new Date((new Date()).getTime() + token_duration_milliseconds);
|
|
|
sysUserInfo.setToken_expiration(DateUtil.format(token_expiration, "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
// 生成 Token
|
|
@@ -169,13 +183,13 @@ public class SysAuthServiceImpl implements SysAuthService {
|
|
|
sysUserInfo.setToken(token);
|
|
|
|
|
|
// [Redis] 将 Token 存入缓存
|
|
|
- redisUtil.setCacheObject(token_redis_key, token, token_duration, TimeUnit.MILLISECONDS);
|
|
|
+ redisUtil.setCacheObject(token_redis_key, token, token_duration_hours, TimeUnit.HOURS);
|
|
|
|
|
|
// [Redis] 将 Permission 存入缓存
|
|
|
List<String> permission_ids_list = sysUserInfo.getPermission_ids();
|
|
|
String permission_ids = String.join(",", permission_ids_list);
|
|
|
String permission_redis_key = REDIS_LOGIN_PERMISSION_PREFIX + uuid;
|
|
|
- redisUtil.setCacheObject(permission_redis_key, permission_ids, token_duration, TimeUnit.MILLISECONDS);
|
|
|
+ redisUtil.setCacheObject(permission_redis_key, permission_ids, token_duration_hours, TimeUnit.HOURS);
|
|
|
|
|
|
return sysUserInfo;
|
|
|
}
|