Skip to content

Commit cce1b55

Browse files
committed
feat(extension/crud): CrudService 增加 Valid 校验注解,Controller 层使用 Valid 替换部分 Validated 注解
在 Service 层实现类添加 Validated 注解即可开启 Service 层校验
1 parent 223236a commit cce1b55

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/controller/AbstractCrudController.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.swagger.v3.oas.annotations.Parameter;
2323
import io.swagger.v3.oas.annotations.enums.ParameterIn;
2424
import jakarta.servlet.http.HttpServletResponse;
25+
import jakarta.validation.Valid;
2526
import org.springframework.beans.factory.annotation.Autowired;
2627
import org.springframework.validation.annotation.Validated;
2728
import org.springframework.web.bind.annotation.*;
@@ -65,7 +66,7 @@ public abstract class AbstractCrudController<S extends CrudService<L, D, Q, C>,
6566
@Operation(summary = "分页查询列表", description = "分页查询列表")
6667
@ResponseBody
6768
@GetMapping
68-
public BasePageResp<L> page(@Validated Q query, @Validated PageQuery pageQuery) {
69+
public BasePageResp<L> page(@Valid Q query, @Valid PageQuery pageQuery) {
6970
return baseService.page(query, pageQuery);
7071
}
7172

@@ -80,7 +81,7 @@ public BasePageResp<L> page(@Validated Q query, @Validated PageQuery pageQuery)
8081
@Operation(summary = "查询列表", description = "查询列表")
8182
@ResponseBody
8283
@GetMapping("/list")
83-
public List<L> list(@Validated Q query, @Validated SortQuery sortQuery) {
84+
public List<L> list(@Valid Q query, @Valid SortQuery sortQuery) {
8485
return baseService.list(query, sortQuery);
8586
}
8687

@@ -95,7 +96,7 @@ public List<L> list(@Validated Q query, @Validated SortQuery sortQuery) {
9596
@Operation(summary = "查询树列表", description = "查询树列表")
9697
@ResponseBody
9798
@GetMapping("/tree")
98-
public List<Tree<Long>> tree(@Validated Q query, @Validated SortQuery sortQuery) {
99+
public List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery) {
99100
return baseService.tree(query, sortQuery, false);
100101
}
101102

@@ -124,7 +125,8 @@ public D get(@PathVariable("id") Long id) {
124125
@Operation(summary = "创建数据", description = "创建数据")
125126
@ResponseBody
126127
@PostMapping
127-
public IdResp<Long> create(@Validated(CrudValidationGroup.Create.class) @RequestBody C req) {
128+
@Validated(CrudValidationGroup.Create.class)
129+
public IdResp<Long> create(@RequestBody @Valid C req) {
128130
return new IdResp<>(baseService.create(req));
129131
}
130132

@@ -139,7 +141,8 @@ public IdResp<Long> create(@Validated(CrudValidationGroup.Create.class) @Request
139141
@Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH)
140142
@ResponseBody
141143
@PutMapping("/{id}")
142-
public void update(@Validated(CrudValidationGroup.Update.class) @RequestBody C req, @PathVariable("id") Long id) {
144+
@Validated(CrudValidationGroup.Update.class)
145+
public void update(@RequestBody @Valid C req, @PathVariable("id") Long id) {
143146
baseService.update(req, id);
144147
}
145148

@@ -166,7 +169,7 @@ public void delete(@PathVariable("id") Long id) {
166169
@Operation(summary = "批量删除数据", description = "批量删除数据")
167170
@ResponseBody
168171
@DeleteMapping
169-
public void batchDelete(@Validated @RequestBody IdsReq req) {
172+
public void batchDelete(@RequestBody @Valid IdsReq req) {
170173
baseService.delete(req.getIds());
171174
}
172175

@@ -181,7 +184,7 @@ public void batchDelete(@Validated @RequestBody IdsReq req) {
181184
@ExcludeFromGracefulResponse
182185
@Operation(summary = "导出数据", description = "导出数据")
183186
@GetMapping("/export")
184-
public void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) {
187+
public void export(@Valid Q query, @Valid SortQuery sortQuery, HttpServletResponse response) {
185188
baseService.export(query, sortQuery, response);
186189
}
187190
}

continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/CrudService.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,14 @@
1818

1919
import cn.hutool.core.lang.tree.Tree;
2020
import jakarta.servlet.http.HttpServletResponse;
21+
import jakarta.validation.Valid;
22+
import jakarta.validation.constraints.NotEmpty;
23+
import org.springframework.validation.annotation.Validated;
2124
import top.continew.starter.extension.crud.model.query.PageQuery;
2225
import top.continew.starter.extension.crud.model.query.SortQuery;
2326
import top.continew.starter.extension.crud.model.resp.BasePageResp;
2427
import top.continew.starter.extension.crud.model.resp.LabelValueResp;
28+
import top.continew.starter.extension.crud.validation.CrudValidationGroup;
2529

2630
import java.util.List;
2731

@@ -44,7 +48,7 @@ public interface CrudService<L, D, Q, C> {
4448
* @param pageQuery 分页查询条件
4549
* @return 分页列表信息
4650
*/
47-
BasePageResp<L> page(Q query, PageQuery pageQuery);
51+
BasePageResp<L> page(@Valid Q query, @Valid PageQuery pageQuery);
4852

4953
/**
5054
* 查询列表
@@ -53,7 +57,7 @@ public interface CrudService<L, D, Q, C> {
5357
* @param sortQuery 排序查询条件
5458
* @return 列表信息
5559
*/
56-
List<L> list(Q query, SortQuery sortQuery);
60+
List<L> list(@Valid Q query, @Valid SortQuery sortQuery);
5761

5862
/**
5963
* 查询树列表
@@ -67,7 +71,7 @@ public interface CrudService<L, D, Q, C> {
6771
* @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @DictField 局部配置)
6872
* @return 树列表信息
6973
*/
70-
List<Tree<Long>> tree(Q query, SortQuery sortQuery, boolean isSimple);
74+
List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple);
7175

7276
/**
7377
* 查询详情
@@ -85,30 +89,32 @@ public interface CrudService<L, D, Q, C> {
8589
* @return 字典列表信息
8690
* @since 2.1.0
8791
*/
88-
List<LabelValueResp> listDict(Q query, SortQuery sortQuery);
92+
List<LabelValueResp> listDict(@Valid Q query, @Valid SortQuery sortQuery);
8993

9094
/**
9195
* 创建
9296
*
9397
* @param req 创建请求参数
9498
* @return 自增 ID
9599
*/
96-
Long create(C req);
100+
@Validated(CrudValidationGroup.Create.class)
101+
Long create(@Valid C req);
97102

98103
/**
99104
* 修改
100105
*
101106
* @param req 修改请求参数
102107
* @param id ID
103108
*/
104-
void update(C req, Long id);
109+
@Validated(CrudValidationGroup.Update.class)
110+
void update(@Valid C req, Long id);
105111

106112
/**
107113
* 删除
108114
*
109115
* @param ids ID 列表
110116
*/
111-
void delete(List<Long> ids);
117+
void delete(@NotEmpty(message = "ID 不能为空") List<Long> ids);
112118

113119
/**
114120
* 导出
@@ -117,5 +123,5 @@ public interface CrudService<L, D, Q, C> {
117123
* @param sortQuery 排序查询条件
118124
* @param response 响应对象
119125
*/
120-
void export(Q query, SortQuery sortQuery, HttpServletResponse response);
126+
void export(@Valid Q query, @Valid SortQuery sortQuery, HttpServletResponse response);
121127
}

0 commit comments

Comments
 (0)