Skip to content

Commit 6bb15d7

Browse files
committed
Merge branch '1.0.x' into dev
# Conflicts: # README.md
2 parents e964c4c + 18c54a7 commit 6bb15d7

File tree

22 files changed

+88
-62
lines changed

22 files changed

+88
-62
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<img src="https://gitee.com/Charles7c/continew-admin/badge/fork.svg?theme=white" alt="Gitee forks" />
2020
</a>
2121

22-
📚 <a href="https://doc.charles7c.top" target="_blank">在线文档</a> | ✨ <a href="https://doc.charles7c.top/require" target="_blank">提交需求</a> | 🚀 <a href="https://cnadmin.charles7c.top" target="_blank">演示地址</a>(账号/密码:admin/admin123)
22+
📚 [在线文档](https://doc.charles7c.top) | ✨ [提交需求](https://doc.charles7c.top/require) | 🚀 [演示地址](https://cnadmin.charles7c.top)(账号/密码:admin/admin123)
2323

2424
## 简介
2525

@@ -54,8 +54,9 @@ ContiNew Admin 中后台管理框架/脚手架,Continue New Admin,持续以
5454
5555
**v2.0.0:** :fire: 升级并适配 Spring Boot 3.x。
5656

57-
- [ ] 依赖升级:升级并适配 Spring Boot 3.x
58-
- [ ] 依赖升级:其他依赖升级
57+
- [x] 依赖升级:升级并适配 Spring Boot 3.x
58+
- [x] 依赖升级:其他依赖升级
59+
- [x] 适配 Java 8 => Java 17 新 API 及特性
5960
- [ ] 计划对接 <a href="https://gitee.com/aizuda/flowlong" target="_blank">FlowLong</a> 纯国产工作流引擎
6061
- [ ] 其他需求汇集中...
6162

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/properties/RsaProperties.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616

1717
package top.charles7c.cnadmin.common.config.properties;
1818

19-
import lombok.Data;
20-
21-
import org.springframework.stereotype.Component;
19+
import lombok.AccessLevel;
20+
import lombok.NoArgsConstructor;
2221

2322
import cn.hutool.extra.spring.SpringUtil;
2423

@@ -29,8 +28,7 @@
2928
* @author Charles7c
3029
* @since 2022/12/21 20:21
3130
*/
32-
@Data
33-
@Component
31+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
3432
public class RsaProperties {
3533

3634
/** 私钥 */

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolConfiguration.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
import java.util.concurrent.ScheduledThreadPoolExecutor;
2121
import java.util.concurrent.ThreadPoolExecutor;
2222

23-
import lombok.RequiredArgsConstructor;
2423
import lombok.extern.slf4j.Slf4j;
2524

2625
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
2726
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
27+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2828
import org.springframework.context.annotation.Bean;
2929
import org.springframework.context.annotation.Configuration;
3030
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -40,10 +40,9 @@
4040
*/
4141
@Slf4j
4242
@Configuration
43-
@RequiredArgsConstructor
43+
@EnableConfigurationProperties(ThreadPoolProperties.class)
4444
public class ThreadPoolConfiguration {
4545

46-
private final ThreadPoolProperties threadPoolProperties;
4746
/** 核心(最小)线程数 = CPU 核心数 + 1 */
4847
private final int corePoolSize = Runtime.getRuntime().availableProcessors() + 1;
4948

@@ -52,7 +51,7 @@ public class ThreadPoolConfiguration {
5251
*/
5352
@Bean
5453
@ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true")
55-
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
54+
public ThreadPoolTaskExecutor threadPoolTaskExecutor(ThreadPoolProperties threadPoolProperties) {
5655
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
5756
// 核心(最小)线程数
5857
executor.setCorePoolSize(corePoolSize);

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/threadpool/ThreadPoolProperties.java

-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import lombok.Data;
2020

2121
import org.springframework.boot.context.properties.ConfigurationProperties;
22-
import org.springframework.stereotype.Component;
2322

2423
/**
2524
* 线程池配置属性
@@ -29,7 +28,6 @@
2928
* @since 2022/12/23 23:06
3029
*/
3130
@Data
32-
@Component
3331
@ConfigurationProperties(prefix = "thread-pool")
3432
public class ThreadPoolProperties {
3533

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/constant/StringConsts.java

+5
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ public class StringConsts implements StrPool {
4545
*/
4646
public static final String ASTERISK = "*";
4747

48+
/**
49+
* 问号
50+
*/
51+
public static final String QUESTION_MARK = "?";
52+
4853
/**
4954
* 中文逗号
5055
*/

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ExceptionUtils.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import lombok.NoArgsConstructor;
2626
import lombok.extern.slf4j.Slf4j;
2727

28+
import top.charles7c.cnadmin.common.constant.StringConsts;
29+
2830
/**
2931
* 异常工具类
3032
*
@@ -99,7 +101,7 @@ public static <T> T exToNull(ExSupplier<T> supplier, Consumer<Exception> exConsu
99101
* @return /
100102
*/
101103
public static String exToBlank(ExSupplier<String> exSupplier) {
102-
return exToDefault(exSupplier, "");
104+
return exToDefault(exSupplier, StringConsts.EMPTY);
103105
}
104106

105107
/**

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import cn.hutool.core.util.StrUtil;
2626

27+
import top.charles7c.cnadmin.common.constant.StringConsts;
2728
import top.charles7c.cnadmin.common.exception.ServiceException;
2829

2930
/**
@@ -52,8 +53,8 @@ public class CheckUtils extends Validator {
5253
* 字段值
5354
*/
5455
public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) {
55-
String message =
56-
String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue, StrUtil.replace(entityName, "DO", ""));
56+
String message = String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue,
57+
StrUtil.replace(entityName, "DO", StringConsts.EMPTY));
5758
throwIfNull(obj, message, EXCEPTION_TYPE);
5859
}
5960

continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import cn.hutool.json.JSONUtil;
4848

4949
import top.charles7c.cnadmin.auth.model.request.LoginRequest;
50+
import top.charles7c.cnadmin.common.constant.StringConsts;
5051
import top.charles7c.cnadmin.common.constant.SysConsts;
5152
import top.charles7c.cnadmin.common.model.dto.LogContext;
5253
import top.charles7c.cnadmin.common.util.ExceptionUtils;
@@ -170,7 +171,8 @@ private void logModule(LogDO logDO, HandlerMethod handlerMethod) {
170171
// (本框架代码规范)例如:@Tag(name = "部门管理 API") -> 部门管理
171172
if (classTag != null) {
172173
String name = classTag.name();
173-
logDO.setModule(StrUtil.isNotBlank(name) ? name.replace("API", "").trim() : "请在该接口类上指定所属模块");
174+
logDO
175+
.setModule(StrUtil.isNotBlank(name) ? name.replace("API", StringConsts.EMPTY).trim() : "请在该接口类上指定所属模块");
174176
}
175177
// 例如:@Log(module = "部门管理") -> 部门管理
176178
if (classLog != null && StrUtil.isNotBlank(classLog.module())) {
@@ -213,7 +215,7 @@ private void logDescription(LogDO logDO, HandlerMethod handlerMethod) {
213215
*/
214216
private void logRequest(LogDO logDO, HttpServletRequest request) {
215217
logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString()
216-
: request.getRequestURL().append("?").append(request.getQueryString()).toString());
218+
: request.getRequestURL().append(StringConsts.QUESTION_MARK).append(request.getQueryString()).toString());
217219
logDO.setRequestMethod(request.getMethod());
218220
logDO.setRequestHeaders(this.desensitize(ServletUtil.getHeaderMap(request)));
219221
String requestBody = this.getRequestBody(request);

continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.format.annotation.DateTimeFormat;
2929

3030
import top.charles7c.cnadmin.common.annotation.Query;
31+
import top.charles7c.cnadmin.common.constant.StringConsts;
3132

3233
/**
3334
* 登录日志查询条件
@@ -54,6 +55,6 @@ public class LoginLogQuery implements Serializable {
5455
*/
5556
@Schema(description = "登录时间")
5657
@Query(type = Query.Type.BETWEEN)
57-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
58+
@DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
5859
private List<Date> createTime;
5960
}

continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.format.annotation.DateTimeFormat;
2929

3030
import top.charles7c.cnadmin.common.annotation.Query;
31+
import top.charles7c.cnadmin.common.constant.StringConsts;
3132

3233
/**
3334
* 操作日志查询条件
@@ -61,7 +62,7 @@ public class OperationLogQuery implements Serializable {
6162
*/
6263
@Schema(description = "操作时间")
6364
@Query(type = Query.Type.BETWEEN)
64-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
65+
@DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
6566
private List<Date> createTime;
6667

6768
/**

continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.format.annotation.DateTimeFormat;
2929

3030
import top.charles7c.cnadmin.common.annotation.Query;
31+
import top.charles7c.cnadmin.common.constant.StringConsts;
3132

3233
/**
3334
* 系统日志查询条件
@@ -47,6 +48,6 @@ public class SystemLogQuery implements Serializable {
4748
*/
4849
@Schema(description = "创建时间")
4950
@Query(type = Query.Type.BETWEEN)
50-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
51+
@DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
5152
private List<Date> createTime;
5253
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/config/satoken/SaTokenRedisDaoImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void updateObjectTimeout(String key, long timeout) {
147147

148148
@Override
149149
public List<String> searchData(String prefix, String keyword, int start, int size, boolean sortType) {
150-
Collection<String> keys = RedisUtils.keys(prefix + "*" + keyword + "*");
150+
Collection<String> keys = RedisUtils.keys(String.format("%s*%s*", prefix, keyword));
151151
List<String> list = new ArrayList<>(keys);
152152
return SaFoxUtil.searchList(list, start, size, sortType);
153153
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/model/query/OnlineUserQuery.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import org.springdoc.api.annotations.ParameterObject;
2828
import org.springframework.format.annotation.DateTimeFormat;
2929

30+
import top.charles7c.cnadmin.common.constant.StringConsts;
31+
3032
/**
3133
* 在线用户查询条件
3234
*
@@ -50,6 +52,6 @@ public class OnlineUserQuery implements Serializable {
5052
* 登录时间
5153
*/
5254
@Schema(description = "登录时间")
53-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
55+
@DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
5456
private List<Date> loginTime;
5557
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.format.annotation.DateTimeFormat;
2929

3030
import top.charles7c.cnadmin.common.annotation.Query;
31+
import top.charles7c.cnadmin.common.constant.StringConsts;
3132

3233
/**
3334
* 用户查询条件
@@ -61,7 +62,7 @@ public class UserQuery implements Serializable {
6162
*/
6263
@Schema(description = "创建时间")
6364
@Query(type = Query.Type.BETWEEN)
64-
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
65+
@DateTimeFormat(pattern = StringConsts.NORM_DATE_TIME_PATTERN)
6566
private List<Date> createTime;
6667

6768
/**

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleDeptService.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,12 @@ public interface RoleDeptService {
3838
boolean save(List<Long> deptIds, Long roleId);
3939

4040
/**
41-
* 根据角色 ID 查询
41+
* 根据角色 ID 删除
4242
*
43-
* @param roleId
44-
* 角色 ID
45-
* @return 部门 ID 列表
43+
* @param roleIds
44+
* 角色 ID 列表
4645
*/
47-
List<Long> listDeptIdByRoleId(Long roleId);
46+
void deleteByRoleIds(List<Long> roleIds);
4847

4948
/**
5049
* 根据部门 ID 删除
@@ -55,10 +54,11 @@ public interface RoleDeptService {
5554
void deleteByDeptIds(List<Long> deptIds);
5655

5756
/**
58-
* 根据角色 ID 删除
57+
* 根据角色 ID 查询
5958
*
60-
* @param roleIds
61-
* 角色 ID 列表
59+
* @param roleId
60+
* 角色 ID
61+
* @return 部门 ID 列表
6262
*/
63-
void deleteByRoleIds(List<Long> roleIds);
63+
List<Long> listDeptIdByRoleId(Long roleId);
6464
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleMenuService.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ public interface RoleMenuService {
3838
boolean save(List<Long> menuIds, Long roleId);
3939

4040
/**
41-
* 根据角色 ID 查询
41+
* 根据角色 ID 删除
4242
*
4343
* @param roleIds
4444
* 角色 ID 列表
45-
* @return 菜单 ID 列表
4645
*/
47-
List<Long> listMenuIdByRoleIds(List<Long> roleIds);
46+
void deleteByRoleIds(List<Long> roleIds);
4847

4948
/**
50-
* 根据角色 ID 删除
49+
* 根据角色 ID 查询
5150
*
5251
* @param roleIds
5352
* 角色 ID 列表
53+
* @return 菜单 ID 列表
5454
*/
55-
void deleteByRoleIds(List<Long> roleIds);
55+
List<Long> listMenuIdByRoleIds(List<Long> roleIds);
5656
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserRoleService.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,12 @@ public interface UserRoleService {
3838
boolean save(List<Long> roleIds, Long userId);
3939

4040
/**
41-
* 根据角色 ID 列表查询
41+
* 根据用户 ID 删除
4242
*
43-
* @param roleIds
44-
* 角色 ID 列表
45-
* @return 总记录数
43+
* @param userIds
44+
* 用户 ID 列表
4645
*/
47-
Long countByRoleIds(List<Long> roleIds);
46+
void deleteByUserIds(List<Long> userIds);
4847

4948
/**
5049
* 根据用户 ID 查询
@@ -56,10 +55,11 @@ public interface UserRoleService {
5655
List<Long> listRoleIdByUserId(Long userId);
5756

5857
/**
59-
* 根据用户 ID 删除
58+
* 根据角色 ID 列表查询
6059
*
61-
* @param userIds
62-
* 用户 ID 列表
60+
* @param roleIds
61+
* 角色 ID 列表
62+
* @return 总记录数
6363
*/
64-
void deleteByUserIds(List<Long> userIds);
64+
Long countByRoleIds(List<Long> roleIds);
6565
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleDeptServiceImpl.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import lombok.RequiredArgsConstructor;
2323

2424
import org.springframework.stereotype.Service;
25+
import org.springframework.transaction.annotation.Transactional;
2526

2627
import cn.hutool.core.collection.CollUtil;
2728

@@ -42,6 +43,7 @@ public class RoleDeptServiceImpl implements RoleDeptService {
4243
private final RoleDeptMapper roleDeptMapper;
4344

4445
@Override
46+
@Transactional(rollbackFor = Exception.class)
4547
public boolean save(List<Long> deptIds, Long roleId) {
4648
// 检查是否有变更
4749
List<Long> oldDeptIdList = roleDeptMapper.lambdaQuery().select(RoleDeptDO::getDeptId)
@@ -58,17 +60,19 @@ public boolean save(List<Long> deptIds, Long roleId) {
5860
}
5961

6062
@Override
61-
public List<Long> listDeptIdByRoleId(Long roleId) {
62-
return roleDeptMapper.selectDeptIdByRoleId(roleId);
63+
@Transactional(rollbackFor = Exception.class)
64+
public void deleteByRoleIds(List<Long> roleIds) {
65+
roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getRoleId, roleIds).remove();
6366
}
6467

6568
@Override
69+
@Transactional(rollbackFor = Exception.class)
6670
public void deleteByDeptIds(List<Long> deptIds) {
6771
roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getDeptId, deptIds).remove();
6872
}
6973

7074
@Override
71-
public void deleteByRoleIds(List<Long> roleIds) {
72-
roleDeptMapper.lambdaUpdate().in(RoleDeptDO::getRoleId, roleIds).remove();
75+
public List<Long> listDeptIdByRoleId(Long roleId) {
76+
return roleDeptMapper.selectDeptIdByRoleId(roleId);
7377
}
7478
}

0 commit comments

Comments
 (0)