refactor(core): 升级时间字段为 LocalDateTime
- 将 SystemTenant 及相关 VO 的过期时间字段由 java.util.Date 替换为 java.time.LocalDateTime - 同步修改 DateUtils.dateBetween 签名并适配 LocalDateTime 计算 - 调整 FeatureAuthController 与 LoginService 中的时间比较逻辑 - 保持功能不变,提升类型安全与时区清晰度
This commit is contained in:
@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -91,8 +92,8 @@ public class FeatureAuthController {
|
||||
|
||||
// 5. 校验租户是否过期(根据功能代码选择不同的过期时间字段)
|
||||
String featureCode = request.getFeatureCode();
|
||||
Date expireTime = getFeatureExpireTime(tenant, featureCode);
|
||||
if (expireTime != null && expireTime.before(new Date())) {
|
||||
LocalDateTime expireTime = getFeatureExpireTime(tenant, featureCode);
|
||||
if (expireTime != null && expireTime.isBefore(LocalDateTime.now())) {
|
||||
throw new BusinessException(ErrorCode.PACKAGE_EXPIRED, "该功能套餐已过期");
|
||||
}
|
||||
|
||||
@@ -119,7 +120,7 @@ public class FeatureAuthController {
|
||||
/**
|
||||
* 根据功能代码获取对应的过期时间
|
||||
*/
|
||||
private Date getFeatureExpireTime(SystemTenant tenant, String featureCode) {
|
||||
private LocalDateTime getFeatureExpireTime(SystemTenant tenant, String featureCode) {
|
||||
if (featureCode == null) {
|
||||
return tenant.getExpireTime();
|
||||
}
|
||||
|
||||
@@ -84,28 +84,28 @@ public class SystemTenant {
|
||||
*/
|
||||
@TableField(value = "expire_time")
|
||||
@ApiModelProperty(value="过期时间")
|
||||
private Date expireTime;
|
||||
private LocalDateTime expireTime;
|
||||
|
||||
/**
|
||||
* 爬主播过期时间
|
||||
*/
|
||||
@TableField(value = "crawl_expire_time")
|
||||
@ApiModelProperty(value="爬主播过期时间")
|
||||
private Date crawlExpireTime;
|
||||
private LocalDateTime crawlExpireTime;
|
||||
|
||||
/**
|
||||
* ai过期时间
|
||||
*/
|
||||
@TableField(value = "expire_time")
|
||||
@ApiModelProperty(value="ai过期时间")
|
||||
private Date aiExpireTime;
|
||||
@TableField(value = "ai_expire_time")
|
||||
private LocalDateTime aiExpireTime;
|
||||
|
||||
/**
|
||||
* 大哥过期时间
|
||||
*/
|
||||
@TableField(value = "expire_time")
|
||||
@ApiModelProperty(value="大哥过期时间")
|
||||
private Date brotherExpireTime;
|
||||
@TableField(value = "brother_expire_time")
|
||||
private LocalDateTime brotherExpireTime;
|
||||
|
||||
|
||||
/**
|
||||
@@ -125,9 +125,9 @@ public class SystemTenant {
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "create_time")
|
||||
@ApiModelProperty(value="创建时间")
|
||||
private Date createTime;
|
||||
@TableField(value = "create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
@@ -141,7 +141,7 @@ public class SystemTenant {
|
||||
*/
|
||||
@TableField(value = "update_time")
|
||||
@ApiModelProperty(value="更新时间")
|
||||
private Date updateTime;
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 是否删除
|
||||
|
||||
@@ -11,5 +11,5 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
public class SystemTenantVO {
|
||||
private Date expiredTime;
|
||||
private LocalDateTime expiredTime;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/*
|
||||
@@ -32,13 +33,13 @@ public class SystemUsersVO {
|
||||
|
||||
private String tokenValue;
|
||||
|
||||
private Date expireTime;
|
||||
private LocalDateTime expireTime;
|
||||
|
||||
private Date brotherExpireTime;
|
||||
private LocalDateTime brotherExpireTime;
|
||||
|
||||
private Date aiExpireTime;
|
||||
private LocalDateTime aiExpireTime;
|
||||
|
||||
private Date crawlExpireTime;
|
||||
private LocalDateTime crawlExpireTime;
|
||||
|
||||
private Byte aiReplay;
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ public class LoginService {
|
||||
StpUtil.login(user.getId(), scene.getSaMode());
|
||||
switch (scene) {
|
||||
case AI_CHAT:
|
||||
StpUtil.renewTimeout(DateUtils.dateBetween(systemTenant.getAiExpireTime(),DateUtil.date()));
|
||||
StpUtil.renewTimeout(DateUtils.dateBetween(systemTenant.getAiExpireTime(), DateUtil.date().toLocalDateTime()));
|
||||
BeanUtil.copyProperties(user, vo);
|
||||
vo.setTokenName(StpUtil.getTokenName());
|
||||
vo.setTokenValue(StpUtil.getTokenValue());
|
||||
|
||||
@@ -51,14 +51,14 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
|
||||
@Override
|
||||
public boolean isExpired(Long tendId) {
|
||||
SystemTenant systemTenant = systemTenantMapper.selectById(tendId);
|
||||
long between = DateUtil.between(systemTenant.getExpireTime(), DateUtil.date(), DateUnit.DAY);
|
||||
long between = DateUtil.between(DateUtil.date(systemTenant.getExpireTime()), DateUtil.date(), DateUnit.DAY);
|
||||
return between < 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getTenantExpiredTime(Long tenantId) {
|
||||
SystemTenant systemTenant = systemTenantMapper.selectById(tenantId);
|
||||
long between = DateUtil.between(systemTenant.getExpireTime(), DateUtil.date(), DateUnit.SECOND);
|
||||
long between = DateUtil.between(DateUtil.date(systemTenant.getExpireTime()), DateUtil.date(), DateUnit.SECOND);
|
||||
if (between > 0 ) {
|
||||
return between;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.yupi.springbootinit.utils;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/*
|
||||
@@ -11,7 +12,8 @@ import java.util.Date;
|
||||
*/
|
||||
public class DateUtils {
|
||||
|
||||
public static Long dateBetween(Date date1, Date date2) {
|
||||
return DateUtil.between(date1, date2, DateUnit.SECOND);
|
||||
public static Long dateBetween(LocalDateTime date1, LocalDateTime date2) {
|
||||
|
||||
return DateUtil.between(DateUtil.date(date1), DateUtil.date(date2), DateUnit.SECOND);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user