Skip to content

Commit e964c4c

Browse files
committed
Merge branch '1.0.x' into dev
2 parents 9217f50 + 5968f40 commit e964c4c

File tree

9 files changed

+174
-172
lines changed

9 files changed

+174
-172
lines changed

continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public abstract class BaseController<S extends BaseService<V, D, Q, C>, V, D, Q,
7575
@Operation(summary = "分页查询列表")
7676
@ResponseBody
7777
@GetMapping
78-
protected R<PageDataVO<V>> page(@Validated Q query, @Validated PageQuery pageQuery) {
78+
public R<PageDataVO<V>> page(@Validated Q query, @Validated PageQuery pageQuery) {
7979
this.checkPermission("list");
8080
PageDataVO<V> pageDataVO = baseService.page(query, pageQuery);
8181
return R.ok(pageDataVO);
@@ -93,7 +93,7 @@ protected R<PageDataVO<V>> page(@Validated Q query, @Validated PageQuery pageQue
9393
@Operation(summary = "查询树列表")
9494
@ResponseBody
9595
@GetMapping("/tree")
96-
protected R<List<Tree<Long>>> tree(@Validated Q query, @Validated SortQuery sortQuery) {
96+
public R<List<Tree<Long>>> tree(@Validated Q query, @Validated SortQuery sortQuery) {
9797
this.checkPermission("list");
9898
List<Tree<Long>> list = baseService.tree(query, sortQuery, false);
9999
return R.ok(list);
@@ -111,7 +111,7 @@ protected R<List<Tree<Long>>> tree(@Validated Q query, @Validated SortQuery sort
111111
@Operation(summary = "查询列表")
112112
@ResponseBody
113113
@GetMapping("/list")
114-
protected R<List<V>> list(@Validated Q query, @Validated SortQuery sortQuery) {
114+
public R<List<V>> list(@Validated Q query, @Validated SortQuery sortQuery) {
115115
this.checkPermission("list");
116116
List<V> list = baseService.list(query, sortQuery);
117117
return R.ok(list);
@@ -128,7 +128,7 @@ protected R<List<V>> list(@Validated Q query, @Validated SortQuery sortQuery) {
128128
@Parameter(name = "id", description = "ID", in = ParameterIn.PATH)
129129
@ResponseBody
130130
@GetMapping("/{id}")
131-
protected R<D> get(@PathVariable Long id) {
131+
public R<D> get(@PathVariable Long id) {
132132
this.checkPermission("list");
133133
D detail = baseService.get(id);
134134
return R.ok(detail);
@@ -144,7 +144,7 @@ protected R<D> get(@PathVariable Long id) {
144144
@Operation(summary = "新增数据")
145145
@ResponseBody
146146
@PostMapping
147-
protected R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody C request) {
147+
public R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody C request) {
148148
this.checkPermission("add");
149149
Long id = baseService.add(request);
150150
return R.ok("新增成功", id);
@@ -162,7 +162,7 @@ protected R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody C request)
162162
@Operation(summary = "修改数据")
163163
@ResponseBody
164164
@PutMapping("/{id}")
165-
protected R update(@Validated(BaseRequest.Update.class) @RequestBody C request, @PathVariable Long id) {
165+
public R update(@Validated(BaseRequest.Update.class) @RequestBody C request, @PathVariable Long id) {
166166
this.checkPermission("update");
167167
baseService.update(request, id);
168168
return R.ok("修改成功");
@@ -179,7 +179,7 @@ protected R update(@Validated(BaseRequest.Update.class) @RequestBody C request,
179179
@Parameter(name = "ids", description = "ID 列表", in = ParameterIn.PATH)
180180
@ResponseBody
181181
@DeleteMapping("/{ids}")
182-
protected R delete(@PathVariable List<Long> ids) {
182+
public R delete(@PathVariable List<Long> ids) {
183183
this.checkPermission("delete");
184184
baseService.delete(ids);
185185
return R.ok("删除成功");
@@ -197,7 +197,7 @@ protected R delete(@PathVariable List<Long> ids) {
197197
*/
198198
@Operation(summary = "导出数据")
199199
@GetMapping("/export")
200-
protected void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) {
200+
public void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) {
201201
this.checkPermission("export");
202202
baseService.export(query, sortQuery, response);
203203
}

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

+6-3
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ private static <R> void parse(Query queryAnnotation, String fieldName, Object fi
142142
String property = queryAnnotation.property();
143143
fieldName = StrUtil.blankToDefault(property, fieldName);
144144
String columnName = StrUtil.toUnderlineCase(fieldName);
145-
switch (queryAnnotation.type()) {
145+
Query.Type queryType = queryAnnotation.type();
146+
switch (queryType) {
146147
case EQUAL:
147148
queryWrapper.eq(columnName, fieldValue);
148149
break;
@@ -163,7 +164,9 @@ private static <R> void parse(Query queryAnnotation, String fieldName, Object fi
163164
break;
164165
case BETWEEN:
165166
List<Object> between = new ArrayList<>((List<Object>)fieldValue);
166-
queryWrapper.between(columnName, between.get(0), between.get(1));
167+
if (between.size() >= 2) {
168+
queryWrapper.between(columnName, between.get(0), between.get(1));
169+
}
167170
break;
168171
case LEFT_LIKE:
169172
queryWrapper.likeLeft(columnName, fieldValue);
@@ -191,7 +194,7 @@ private static <R> void parse(Query queryAnnotation, String fieldName, Object fi
191194
queryWrapper.isNotNull(columnName);
192195
break;
193196
default:
194-
break;
197+
throw new IllegalArgumentException(String.format("暂不支持 [%s] 查询类型", queryType));
195198
}
196199
}
197200
}

continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/request/UserRequest.java

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.List;
2020

2121
import javax.validation.constraints.NotBlank;
22+
import javax.validation.constraints.NotEmpty;
2223
import javax.validation.constraints.NotNull;
2324
import javax.validation.constraints.Pattern;
2425

@@ -86,12 +87,14 @@ public class UserRequest extends BaseRequest {
8687
* 所属部门
8788
*/
8889
@Schema(description = "所属部门")
90+
@NotNull(message = "所属部门不能为空")
8991
private Long deptId;
9092

9193
/**
9294
* 所属角色
9395
*/
9496
@Schema(description = "所属角色")
97+
@NotEmpty(message = "所属角色不能为空")
9598
private List<Long> roleIds;
9699

97100
/**

continew-admin-ui/src/views/system/user/index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -554,8 +554,8 @@
554554
rules: {
555555
username: [{ required: true, message: '请输入用户名' }],
556556
nickname: [{ required: true, message: '请输入昵称' }],
557-
roleIds: [{ required: true, message: '请选择所属角色' }],
558557
deptId: [{ required: true, message: '请选择所属部门' }],
558+
roleIds: [{ required: true, message: '请选择所属角色' }],
559559
},
560560
});
561561
const { queryParams, form, rules } = toRefs(data);

continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MenuController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ public class MenuController extends BaseController<MenuService, MenuVO, MenuVO,
5252

5353
@Override
5454
@SaCheckPermission("system:menu:add")
55-
protected R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody MenuRequest request) {
55+
public R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody MenuRequest request) {
5656
this.checkPath(request);
5757
return super.add(request);
5858
}
5959

6060
@Override
6161
@SaCheckPermission("system:menu:update")
62-
protected R update(@Validated(BaseRequest.Update.class) @RequestBody MenuRequest request, @PathVariable Long id) {
62+
public R update(@Validated(BaseRequest.Update.class) @RequestBody MenuRequest request, @PathVariable Long id) {
6363
this.checkPath(request);
6464
return super.update(request, id);
6565
}

continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public class UserController extends BaseController<UserService, UserVO, UserDeta
5353

5454
@Override
5555
@SaCheckPermission("system:user:add")
56-
protected R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody UserRequest request) {
56+
public R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody UserRequest request) {
5757
Long id = baseService.add(request);
5858
return R.ok(String.format("新增成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD), id);
5959
}

continew-admin-webapi/src/main/resources/application-dev.yml

+77-82
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,44 @@ server:
44
port: 8000
55

66
--- ### 数据源配置
7-
spring:
8-
datasource:
9-
type: com.zaxxer.hikari.HikariDataSource
10-
## 动态数据源配置(可配多主多从:m1、s1...、纯粹多库:mysql、oracle...、混合配置:m1、s1、oracle...)
11-
dynamic:
12-
# 是否启用 P6Spy(SQL 性能分析组件,默认 false,该插件有性能损耗,不建议生产环境使用)
13-
p6spy: true
14-
# 设置默认的数据源或者数据源组(默认 master)
15-
primary: master
16-
# 严格匹配数据源(true 未匹配到指定数据源时抛异常;false 使用默认数据源;默认 false)
17-
strict: false
18-
datasource:
19-
# 主库配置(可配多个,构成多主)
20-
master:
21-
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
22-
username: ${DB_USER:root}
23-
password: ${DB_PWD:123456}
24-
driver-class-name: com.mysql.cj.jdbc.Driver
25-
# 从库配置(可配多个,构成多从)
26-
slave_1:
27-
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
28-
username:
29-
password:
30-
lazy: true
31-
driver-class-name: com.mysql.cj.jdbc.Driver
32-
type: ${spring.datasource.type}
33-
# Hikari 连接池配置(完整配置请参阅:https://github.com/brettwooldridge/HikariCP)
34-
hikari:
35-
# 最大连接数量(默认 10,根据实际环境调整)
36-
# 注意:当连接达到上限,并且没有空闲连接可用时,获取连接将在超时前阻塞最多 connectionTimeout 毫秒
37-
max-pool-size: 20
38-
# 获取连接超时时间(默认 30000 毫秒,30 秒)
39-
connection-timeout: 30000
40-
# 空闲连接最大存活时间(默认 600000 毫秒,10 分钟)
41-
idle-timeout: 600000
42-
# 保持连接活动的频率,以防止它被数据库或网络基础设施超时。该值必须小于 maxLifetime(默认 0,禁用)
43-
keepaliveTime: 30000
44-
# 连接最大生存时间(默认 1800000 毫秒,30 分钟)
45-
max-lifetime: 1800000
7+
spring.datasource:
8+
type: com.zaxxer.hikari.HikariDataSource
9+
## 动态数据源配置(可配多主多从:m1、s1...、纯粹多库:mysql、oracle...、混合配置:m1、s1、oracle...)
10+
dynamic:
11+
# 是否启用 P6Spy(SQL 性能分析组件,默认 false,该插件有性能损耗,不建议生产环境使用)
12+
p6spy: true
13+
# 设置默认的数据源或者数据源组(默认 master)
14+
primary: master
15+
# 严格匹配数据源(true 未匹配到指定数据源时抛异常;false 使用默认数据源;默认 false)
16+
strict: false
17+
datasource:
18+
# 主库配置(可配多个,构成多主)
19+
master:
20+
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
21+
username: ${DB_USER:root}
22+
password: ${DB_PWD:123456}
23+
driver-class-name: com.mysql.cj.jdbc.Driver
24+
# 从库配置(可配多个,构成多从)
25+
slave_1:
26+
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:continew_admin}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true&autoReconnect=true&maxReconnects=10&failOverReadOnly=false
27+
username:
28+
password:
29+
lazy: true
30+
driver-class-name: com.mysql.cj.jdbc.Driver
31+
type: ${spring.datasource.type}
32+
# Hikari 连接池配置(完整配置请参阅:https://github.com/brettwooldridge/HikariCP)
33+
hikari:
34+
# 最大连接数量(默认 10,根据实际环境调整)
35+
# 注意:当连接达到上限,并且没有空闲连接可用时,获取连接将在超时前阻塞最多 connectionTimeout 毫秒
36+
max-pool-size: 20
37+
# 获取连接超时时间(默认 30000 毫秒,30 秒)
38+
connection-timeout: 30000
39+
# 空闲连接最大存活时间(默认 600000 毫秒,10 分钟)
40+
idle-timeout: 600000
41+
# 保持连接活动的频率,以防止它被数据库或网络基础设施超时。该值必须小于 maxLifetime(默认 0,禁用)
42+
keepaliveTime: 30000
43+
# 连接最大生存时间(默认 1800000 毫秒,30 分钟)
44+
max-lifetime: 1800000
4645

4746
--- ### Liquibase 配置
4847
spring.liquibase:
@@ -68,21 +67,20 @@ spring:
6867
ssl: false
6968

7069
--- ### 邮件配置
71-
spring:
72-
mail:
73-
# 根据需要更换
74-
host: smtp.126.com
75-
port: 465
76-
username: 你的邮箱
77-
password: 你的邮箱授权码
78-
default-encoding: utf-8
79-
properties:
80-
mail:
81-
smtp:
82-
auth: true
83-
socketFactory:
84-
class: javax.net.ssl.SSLSocketFactory
85-
port: 465
70+
spring.mail:
71+
# 根据需要更换
72+
host: smtp.126.com
73+
port: 465
74+
username: 你的邮箱
75+
password: 你的邮箱授权码
76+
default-encoding: utf-8
77+
properties:
78+
mail:
79+
smtp:
80+
auth: true
81+
socketFactory:
82+
class: javax.net.ssl.SSLSocketFactory
83+
port: 465
8684

8785
--- ### 验证码配置
8886
captcha:
@@ -109,26 +107,24 @@ captcha:
109107
# 模板路径
110108
templatePath: mail/captcha.ftl
111109

112-
--- ### 安全配置
113-
security:
114-
# 排除路径配置
115-
excludes:
116-
# 静态资源
117-
- /*.html
118-
- /**/*.html
119-
- /**/*.css
120-
- /**/*.js
121-
- /webSocket/**
122-
# 接口文档相关资源
123-
- /favicon.ico
124-
- /doc.html
125-
- /webjars/**
126-
- /swagger-ui/**
127-
- /swagger-resources/**
128-
- /*/api-docs/**
129-
# 本地存储资源
130-
- /avatar/**
131-
- /file/**
110+
--- ### 安全配置-排除路径配置
111+
security.excludes:
112+
# 静态资源
113+
- /*.html
114+
- /**/*.html
115+
- /**/*.css
116+
- /**/*.js
117+
- /webSocket/**
118+
# 接口文档相关资源
119+
- /favicon.ico
120+
- /doc.html
121+
- /webjars/**
122+
- /swagger-ui/**
123+
- /swagger-resources/**
124+
- /*/api-docs/**
125+
# 本地存储资源
126+
- /avatar/**
127+
- /file/**
132128

133129
--- ### 非对称加密配置(例如:密码加密传输,前端公钥加密,后端私钥解密;在线生成 RSA 密钥对:http://web.chacuo.net/netrsakeypair)
134130
rsa:
@@ -141,14 +137,13 @@ springdoc:
141137
enabled: true
142138

143139
--- ### 文件上传配置
144-
spring:
145-
servlet:
146-
multipart:
147-
enabled: true
148-
# 单文件上传大小限制
149-
max-file-size: 10MB
150-
# 单次总上传文件大小限制
151-
max-request-size: 20MB
140+
spring.servlet:
141+
multipart:
142+
enabled: true
143+
# 单文件上传大小限制
144+
max-file-size: 10MB
145+
# 单次总上传文件大小限制
146+
max-request-size: 20MB
152147

153148
--- ### 本地存储配置
154149
local-storage:

0 commit comments

Comments
 (0)