build: continew-starter 2.10.0 => 2.11.0

1.SaToken 升级适配
2.DictField 注解 => DictModel
3.BaseIdResp => IdResp
4.CRUD 删除接口由 URL 传参重构为请求体传参
5.访问日志打印问题修复等
This commit is contained in:
2025-04-13 18:00:17 +08:00
parent 240d6fcb01
commit 82d8dc3985
15 changed files with 47 additions and 54 deletions

View File

@@ -16,8 +16,8 @@
package top.continew.admin.auth;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
import cn.hutool.core.bean.BeanUtil;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
@@ -38,7 +38,7 @@ import top.continew.admin.system.service.RoleService;
import top.continew.admin.system.service.UserService;
import top.continew.starter.core.validation.CheckUtils;
import top.continew.starter.core.validation.Validator;
import top.continew.starter.web.util.SpringWebUtils;
import top.continew.starter.web.util.ServletUtils;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
@@ -101,16 +101,16 @@ public abstract class AbstractLoginHandler<T extends LoginReq> implements LoginH
.join(), passwordExpirationDaysFuture.join());
BeanUtil.copyProperties(user, userContext);
// 设置登录配置参数
SaLoginModel model = new SaLoginModel();
model.setActiveTimeout(client.getActiveTimeout());
model.setTimeout(client.getTimeout());
model.setDevice(client.getClientType());
SaLoginParameter loginParameter = new SaLoginParameter();
loginParameter.setActiveTimeout(client.getActiveTimeout());
loginParameter.setTimeout(client.getTimeout());
loginParameter.setDeviceType(client.getClientType());
userContext.setClientType(client.getClientType());
model.setExtra(CLIENT_ID, client.getClientId());
loginParameter.setExtra(CLIENT_ID, client.getClientId());
userContext.setClientId(client.getClientId());
// 登录并缓存用户信息
StpUtil.login(userContext.getId(), model.setExtraData(BeanUtil.beanToMap(new UserExtraContext(SpringWebUtils
.getRequest()))));
StpUtil.login(userContext.getId(), loginParameter.setExtraData(BeanUtil
.beanToMap(new UserExtraContext(ServletUtils.getRequest()))));
UserContextHolder.setContext(userContext);
return StpUtil.getTokenValue();
}

View File

@@ -23,7 +23,6 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.json.JSONUtil;
import com.xkcoding.justauth.AuthRequestFactory;
import com.xkcoding.justauth.autoconfigure.JustAuthProperties;
import jakarta.servlet.http.HttpServletRequest;
@@ -108,7 +107,7 @@ public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
user = new UserDO();
user.setUsername(username);
user.setNickname(nickname);
if(Objects.nonNull(authUser.getGender())) {
if (Objects.nonNull(authUser.getGender())) {
user.setGender(GenderEnum.valueOf(authUser.getGender().name()));
}
user.setAvatar(authUser.getAvatar());
@@ -157,11 +156,7 @@ public class SocialLoginHandler extends AbstractLoginHandler<SocialLoginReq> {
private AuthRequest getAuthRequest(String source) {
try {
AuthConfig authConfig = authProperties.getType().get(source.toUpperCase());
return AuthRequestBuilder
.builder()
.source(source)
.authConfig(authConfig)
.build();
return AuthRequestBuilder.builder().source(source).authConfig(authConfig).build();
} catch (Exception e) {
throw new BadRequestException("暂不支持 [%s] 平台账号登录".formatted(source));
}

View File

@@ -56,6 +56,7 @@ public class FileRecorderImpl implements FileRecorder {
/**
* 文件信息存储
*
* @param fileInfo 文件信息对象
* @return 是否保存成功
*/
@@ -67,8 +68,8 @@ public class FileRecorderImpl implements FileRecorder {
fileInfo.setId(String.valueOf(id.longValue()));
String originalFilename = EscapeUtil.unescape(fileInfo.getOriginalFilename());
file.setName(StrUtil.contains(originalFilename, StringConstants.DOT)
? StrUtil.subBefore(originalFilename, StringConstants.DOT, true)
: originalFilename);
? StrUtil.subBefore(originalFilename, StringConstants.DOT, true)
: originalFilename);
StorageDO storage = (StorageDO)fileInfo.getAttr().get(ClassUtil.getClassName(StorageDO.class, false));
String domain = StrUtil.appendIfMissing(storage.getDomain(), StringConstants.SLASH);
// 处理fileInfo中存储的地址

View File

@@ -18,7 +18,7 @@ package top.continew.admin.system.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import top.continew.starter.extension.crud.annotation.DictField;
import top.continew.starter.extension.crud.annotation.DictModel;
import top.continew.admin.common.model.entity.BaseDO;
import java.io.Serial;
@@ -30,7 +30,7 @@ import java.io.Serial;
* @since 2023/9/11 21:29
*/
@Data
@DictField(valueKey = "code")
@DictModel(valueKey = "code")
@TableName("sys_dict")
public class DictDO extends BaseDO {

View File

@@ -19,8 +19,8 @@ package top.continew.admin.system.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import top.continew.admin.common.enums.DataScopeEnum;
import top.continew.starter.extension.crud.annotation.DictField;
import top.continew.admin.common.model.entity.BaseDO;
import top.continew.starter.extension.crud.annotation.DictModel;
import java.io.Serial;
@@ -31,7 +31,7 @@ import java.io.Serial;
* @since 2023/2/8 22:54
*/
@Data
@DictField
@DictModel
@TableName("sys_role")
public class RoleDO extends BaseDO {

View File

@@ -23,7 +23,7 @@ import lombok.Data;
import top.continew.admin.common.config.mybatis.BCryptEncryptor;
import top.continew.admin.common.enums.DisEnableStatusEnum;
import top.continew.admin.common.enums.GenderEnum;
import top.continew.starter.extension.crud.annotation.DictField;
import top.continew.starter.extension.crud.annotation.DictModel;
import top.continew.admin.common.model.entity.BaseDO;
import top.continew.starter.security.crypto.annotation.FieldEncrypt;
@@ -37,7 +37,7 @@ import java.time.LocalDateTime;
* @since 2022/12/21 20:42
*/
@Data
@DictField(labelKey = "nickname", extraKeys = {"username"})
@DictModel(labelKey = "nickname", extraKeys = {"username"})
@TableName("sys_user")
public class UserDO extends BaseDO {

View File

@@ -80,9 +80,6 @@ public class MessageUserServiceImpl implements MessageUserService {
@Override
public void readMessage(List<Long> ids) {
if (CollUtil.isEmpty(ids)) {
return;
}
baseMapper.lambdaUpdate()
.set(MessageUserDO::getIsRead, true)
.set(MessageUserDO::getReadTime, LocalDateTime.now())