新增:

1.用户登录时判断租户是否过期,在登录时赋予 token有效期为当前租户到期时间和当前日期的差值;
2.实现租户名查 租户 Id 接口
This commit is contained in:
2025-06-20 15:58:42 +08:00
parent 7ca3394fd9
commit 440776cfac
10 changed files with 295 additions and 3 deletions

View File

@@ -1,9 +1,14 @@
package com.yupi.springbootinit.service.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yupi.springbootinit.mapper.SystemTenantMapper;
import com.yupi.springbootinit.model.entity.SystemTenant;
import com.yupi.springbootinit.model.entity.SystemUsers;
import com.yupi.springbootinit.service.SystemTenantService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -24,10 +29,14 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
@Value("${md5.salt}")
private String MD5_SALT;
@Resource
private SystemTenantMapper systemTenantMapper;
@Override
public SystemUsers getUserByUserName(String username) {
public SystemUsers getUserByUserName(String username,Long tenantId) {
QueryWrapper <SystemUsers> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username",username);
queryWrapper.eq("tenant_id",tenantId);
return baseMapper.selectOne(queryWrapper);
}
@@ -36,4 +45,22 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
String s = SecureUtil.md5(MD5_SALT + rawPassword);
return s.equals(encodedPassword);
}
@Override
public boolean isExpired(Long tendId) {
SystemTenant systemTenant = systemTenantMapper.selectById(tendId);
long between = DateUtil.between(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);
if (between > 0 ) {
return between;
}
return 0L;
}
}