diff --git a/README.md b/README.md
index d5d6aeca..43a73a00 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
-📚 在线文档 | ✨ 提交需求 | 🚀 演示地址(账号/密码:admin/admin123)
+📚 [在线文档](https://doc.charles7c.top) | ✨ [提交需求](https://doc.charles7c.top/require) | 🚀 [演示地址](https://cnadmin.charles7c.top)(账号/密码:admin/admin123)
## 简介
@@ -54,8 +54,9 @@ ContiNew Admin 中后台管理框架/脚手架,Continue New Admin,持续以
**v2.0.0:** :fire: 升级并适配 Spring Boot 3.x。
-- [ ] 依赖升级:升级并适配 Spring Boot 3.x
-- [ ] 依赖升级:其他依赖升级
+- [x] 依赖升级:升级并适配 Spring Boot 3.x
+- [x] 依赖升级:其他依赖升级
+- [x] 适配 Java 8 => Java 17 新 API 及特性
- [ ] 计划对接 FlowLong 纯国产工作流引擎
- [ ] 其他需求汇集中...
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/RsaProperties.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/RsaProperties.java
index c2c6880e..71c3b9aa 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/RsaProperties.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/RsaProperties.java
@@ -16,9 +16,8 @@
package top.charles7c.cnadmin.common.config.properties;
-import lombok.Data;
-
-import org.springframework.stereotype.Component;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
import cn.hutool.extra.spring.SpringUtil;
@@ -29,8 +28,7 @@ import cn.hutool.extra.spring.SpringUtil;
* @author Charles7c
* @since 2022/12/21 20:21
*/
-@Data
-@Component
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class RsaProperties {
/** 私钥 */
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolConfiguration.java
index a73d4bd7..c0255560 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolConfiguration.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolConfiguration.java
@@ -20,11 +20,11 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -40,10 +40,9 @@ import top.charles7c.cnadmin.common.util.ExceptionUtils;
*/
@Slf4j
@Configuration
-@RequiredArgsConstructor
+@EnableConfigurationProperties(ThreadPoolProperties.class)
public class ThreadPoolConfiguration {
- private final ThreadPoolProperties threadPoolProperties;
/** 核心(最小)线程数 = CPU 核心数 + 1 */
private final int corePoolSize = Runtime.getRuntime().availableProcessors() + 1;
@@ -52,7 +51,7 @@ public class ThreadPoolConfiguration {
*/
@Bean
@ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true")
- public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
+ public ThreadPoolTaskExecutor threadPoolTaskExecutor(ThreadPoolProperties threadPoolProperties) {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 核心(最小)线程数
executor.setCorePoolSize(corePoolSize);
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolProperties.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolProperties.java
index f9d522be..63d0a398 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolProperties.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolProperties.java
@@ -19,7 +19,6 @@ package top.charles7c.cnadmin.common.config.threadpool;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
/**
* 线程池配置属性
@@ -29,7 +28,6 @@ import org.springframework.stereotype.Component;
* @since 2022/12/23 23:06
*/
@Data
-@Component
@ConfigurationProperties(prefix = "thread-pool")
public class ThreadPoolProperties {
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/constant/StringConsts.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/constant/StringConsts.java
index 13a1010c..506e8fb0 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/constant/StringConsts.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/constant/StringConsts.java
@@ -45,6 +45,11 @@ public class StringConsts implements StrPool {
*/
public static final String ASTERISK = "*";
+ /**
+ * 问号
+ */
+ public static final String QUESTION_MARK = "?";
+
/**
* 中文逗号
*/
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java
index 310c30ee..b272b7d6 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java
@@ -25,6 +25,8 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import top.charles7c.cnadmin.common.constant.StringConsts;
+
/**
* 异常工具类
*
@@ -99,7 +101,7 @@ public class ExceptionUtils {
* @return /
*/
public static String exToBlank(ExSupplier exSupplier) {
- return exToDefault(exSupplier, "");
+ return exToDefault(exSupplier, StringConsts.EMPTY);
}
/**
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java
index c4e40c64..2d015191 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java
@@ -24,6 +24,7 @@ import lombok.extern.slf4j.Slf4j;
import cn.hutool.core.util.StrUtil;
+import top.charles7c.cnadmin.common.constant.StringConsts;
import top.charles7c.cnadmin.common.exception.ServiceException;
/**
@@ -52,8 +53,8 @@ public class CheckUtils extends Validator {
* 字段值
*/
public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) {
- String message =
- String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue, StrUtil.replace(entityName, "DO", ""));
+ String message = String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue,
+ StrUtil.replace(entityName, "DO", StringConsts.EMPTY));
throwIfNull(obj, message, EXCEPTION_TYPE);
}
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
index 25bacc0e..828a0fb5 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
@@ -47,6 +47,7 @@ import cn.hutool.http.HttpStatus;
import cn.hutool.json.JSONUtil;
import top.charles7c.cnadmin.auth.model.request.LoginRequest;
+import top.charles7c.cnadmin.common.constant.StringConsts;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.model.dto.LogContext;
import top.charles7c.cnadmin.common.util.ExceptionUtils;
@@ -170,7 +171,8 @@ public class LogInterceptor implements HandlerInterceptor {
// (本框架代码规范)例如:@Tag(name = "部门管理 API") -> 部门管理
if (classTag != null) {
String name = classTag.name();
- logDO.setModule(StrUtil.isNotBlank(name) ? name.replace("API", "").trim() : "请在该接口类上指定所属模块");
+ logDO
+ .setModule(StrUtil.isNotBlank(name) ? name.replace("API", StringConsts.EMPTY).trim() : "请在该接口类上指定所属模块");
}
// 例如:@Log(module = "部门管理") -> 部门管理
if (classLog != null && StrUtil.isNotBlank(classLog.module())) {
@@ -213,7 +215,7 @@ public class LogInterceptor implements HandlerInterceptor {
*/
private void logRequest(LogDO logDO, HttpServletRequest request) {
logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString()
- : request.getRequestURL().append("?").append(request.getQueryString()).toString());
+ : request.getRequestURL().append(StringConsts.QUESTION_MARK).append(request.getQueryString()).toString());
logDO.setRequestMethod(request.getMethod());
logDO.setRequestHeaders(this.desensitize(ServletUtil.getHeaderMap(request)));
String requestBody = this.getRequestBody(request);
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
index 76963b05..c3b001a6 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
@@ -28,6 +28,7 @@ import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.cnadmin.common.constant.StringConsts;
/**
* 登录日志查询条件
@@ -54,6 +55,6 @@ public class LoginLogQuery implements Serializable {
*/
@Schema(description = "登录时间")
@Query(type = Query.Type.BETWEEN)
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
private List createTime;
}
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
index 76b61ffd..ea7261d0 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
@@ -28,6 +28,7 @@ import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.cnadmin.common.constant.StringConsts;
/**
* 操作日志查询条件
@@ -61,7 +62,7 @@ public class OperationLogQuery implements Serializable {
*/
@Schema(description = "操作时间")
@Query(type = Query.Type.BETWEEN)
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
private List createTime;
/**
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
index a14da704..afb52733 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
@@ -28,6 +28,7 @@ import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.cnadmin.common.constant.StringConsts;
/**
* 系统日志查询条件
@@ -47,6 +48,6 @@ public class SystemLogQuery implements Serializable {
*/
@Schema(description = "创建时间")
@Query(type = Query.Type.BETWEEN)
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
private List createTime;
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/config/satoken/SaTokenRedisDaoImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/config/satoken/SaTokenRedisDaoImpl.java
index 06755990..fff94441 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/config/satoken/SaTokenRedisDaoImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/config/satoken/SaTokenRedisDaoImpl.java
@@ -147,7 +147,7 @@ public class SaTokenRedisDaoImpl implements SaTokenDao {
@Override
public List searchData(String prefix, String keyword, int start, int size, boolean sortType) {
- Collection keys = RedisUtils.keys(prefix + "*" + keyword + "*");
+ Collection keys = RedisUtils.keys(String.format("%s*%s*", prefix, keyword));
List list = new ArrayList<>(keys);
return SaFoxUtil.searchList(list, start, size, sortType);
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java
index 4169c995..bd2a9a37 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java
@@ -27,6 +27,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
+import top.charles7c.cnadmin.common.constant.StringConsts;
+
/**
* 在线用户查询条件
*
@@ -50,6 +52,6 @@ public class OnlineUserQuery implements Serializable {
* 登录时间
*/
@Schema(description = "登录时间")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
private List loginTime;
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
index af428bdb..77a21701 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
@@ -28,6 +28,7 @@ import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.cnadmin.common.constant.StringConsts;
/**
* 用户查询条件
@@ -61,7 +62,7 @@ public class UserQuery implements Serializable {
*/
@Schema(description = "创建时间")
@Query(type = Query.Type.BETWEEN)
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
private List createTime;
/**
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleDeptService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleDeptService.java
index 97350a55..057ac41c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleDeptService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleDeptService.java
@@ -38,13 +38,12 @@ public interface RoleDeptService {
boolean save(List deptIds, Long roleId);
/**
- * 根据角色 ID 查询
+ * 根据角色 ID 删除
*
- * @param roleId
- * 角色 ID
- * @return 部门 ID 列表
+ * @param roleIds
+ * 角色 ID 列表
*/
- List listDeptIdByRoleId(Long roleId);
+ void deleteByRoleIds(List roleIds);
/**
* 根据部门 ID 删除
@@ -55,10 +54,11 @@ public interface RoleDeptService {
void deleteByDeptIds(List deptIds);
/**
- * 根据角色 ID 删除
+ * 根据角色 ID 查询
*
- * @param roleIds
- * 角色 ID 列表
+ * @param roleId
+ * 角色 ID
+ * @return 部门 ID 列表
*/
- void deleteByRoleIds(List roleIds);
+ List listDeptIdByRoleId(Long roleId);
}
\ No newline at end of file
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleMenuService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleMenuService.java
index 58d8a3a3..ca77b374 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleMenuService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleMenuService.java
@@ -37,6 +37,14 @@ public interface RoleMenuService {
*/
boolean save(List menuIds, Long roleId);
+ /**
+ * 根据角色 ID 删除
+ *
+ * @param roleIds
+ * 角色 ID 列表
+ */
+ void deleteByRoleIds(List roleIds);
+
/**
* 根据角色 ID 查询
*
@@ -45,12 +53,4 @@ public interface RoleMenuService {
* @return 菜单 ID 列表
*/
List listMenuIdByRoleIds(List roleIds);
-
- /**
- * 根据角色 ID 删除
- *
- * @param roleIds
- * 角色 ID 列表
- */
- void deleteByRoleIds(List roleIds);
}
\ No newline at end of file
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserRoleService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserRoleService.java
index 4b9319b9..38931239 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserRoleService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserRoleService.java
@@ -38,13 +38,12 @@ public interface UserRoleService {
boolean save(List roleIds, Long userId);
/**
- * 根据角色 ID 列表查询
+ * 根据用户 ID 删除
*
- * @param roleIds
- * 角色 ID 列表
- * @return 总记录数
+ * @param userIds
+ * 用户 ID 列表
*/
- Long countByRoleIds(List roleIds);
+ void deleteByUserIds(List userIds);
/**
* 根据用户 ID 查询
@@ -56,10 +55,11 @@ public interface UserRoleService {
List listRoleIdByUserId(Long userId);
/**
- * 根据用户 ID 删除
+ * 根据角色 ID 列表查询
*
- * @param userIds
- * 用户 ID 列表
+ * @param roleIds
+ * 角色 ID 列表
+ * @return 总记录数
*/
- void deleteByUserIds(List userIds);
+ Long countByRoleIds(List roleIds);
}
\ No newline at end of file
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleDeptServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleDeptServiceImpl.java
index 0e14592e..ca4ad4c9 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleDeptServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleDeptServiceImpl.java
@@ -22,6 +22,7 @@ import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
@@ -42,6 +43,7 @@ public class RoleDeptServiceImpl implements RoleDeptService {
private final RoleDeptMapper roleDeptMapper;
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean save(List deptIds, Long roleId) {
// 检查是否有变更
List oldDeptIdList = roleDeptMapper.lambdaQuery().select(RoleDeptDO::getDeptId)
@@ -58,17 +60,19 @@ public class RoleDeptServiceImpl implements RoleDeptService {
}
@Override
- public List listDeptIdByRoleId(Long roleId) {
- return roleDeptMapper.selectDeptIdByRoleId(roleId);
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteByRoleIds(List roleIds) {
+ roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getRoleId, roleIds).remove();
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void deleteByDeptIds(List deptIds) {
roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getDeptId, deptIds).remove();
}
@Override
- public void deleteByRoleIds(List roleIds) {
- roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getRoleId, roleIds).remove();
+ public List listDeptIdByRoleId(Long roleId) {
+ return roleDeptMapper.selectDeptIdByRoleId(roleId);
}
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleMenuServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleMenuServiceImpl.java
index 4d6b5e63..6fabaf6c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleMenuServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleMenuServiceImpl.java
@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
@@ -43,6 +44,7 @@ public class RoleMenuServiceImpl implements RoleMenuService {
private final RoleMenuMapper roleMenuMapper;
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean save(List menuIds, Long roleId) {
// 检查是否有变更
List oldMenuIdList = roleMenuMapper.lambdaQuery().select(RoleMenuDO::getMenuId)
@@ -58,6 +60,12 @@ public class RoleMenuServiceImpl implements RoleMenuService {
return roleMenuMapper.insertBatch(roleMenuList);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteByRoleIds(List roleIds) {
+ roleMenuMapper.lambdaUpdate().in(RoleMenuDO::getRoleId, roleIds).remove();
+ }
+
@Override
public List listMenuIdByRoleIds(List roleIds) {
if (CollUtil.isEmpty(roleIds)) {
@@ -65,9 +73,4 @@ public class RoleMenuServiceImpl implements RoleMenuService {
}
return roleMenuMapper.selectMenuIdByRoleIds(roleIds);
}
-
- @Override
- public void deleteByRoleIds(List roleIds) {
- roleMenuMapper.lambdaUpdate().in(RoleMenuDO::getRoleId, roleIds).remove();
- }
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserRoleServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserRoleServiceImpl.java
index e20e4dff..7e5c6576 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserRoleServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserRoleServiceImpl.java
@@ -22,6 +22,7 @@ import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
@@ -42,6 +43,7 @@ public class UserRoleServiceImpl implements UserRoleService {
private final UserRoleMapper userRoleMapper;
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean save(List roleIds, Long userId) {
// 检查是否有变更
List oldRoleIdList = userRoleMapper.lambdaQuery().select(UserRoleDO::getRoleId)
@@ -58,8 +60,9 @@ public class UserRoleServiceImpl implements UserRoleService {
}
@Override
- public Long countByRoleIds(List roleIds) {
- return userRoleMapper.lambdaQuery().in(UserRoleDO::getRoleId, roleIds).count();
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteByUserIds(List userIds) {
+ userRoleMapper.lambdaUpdate().in(UserRoleDO::getUserId, userIds).remove();
}
@Override
@@ -68,7 +71,7 @@ public class UserRoleServiceImpl implements UserRoleService {
}
@Override
- public void deleteByUserIds(List userIds) {
- userRoleMapper.lambdaUpdate().in(UserRoleDO::getUserId, userIds).remove();
+ public Long countByRoleIds(List roleIds) {
+ return userRoleMapper.lambdaQuery().in(UserRoleDO::getRoleId, roleIds).count();
}
}
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
index 1db77e4c..5dff7b6a 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
@@ -186,6 +186,7 @@ public class UserServiceImpl extends BaseServiceImpl SecureUtils.decryptByRsaPrivateKey(updatePasswordRequest.getNewPassword()));
ValidationUtils.throwIfBlank(rawNewPassword, "新密码解密失败");
- ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword), "密码长度 6 到 32 位,同时包含字母和数字");
+ ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword),
+ "密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字");
// 修改密码
userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId());