优化:🔥 深度优化后端 CRUD 公共组件,并抽取前端下载功能到 CRUD 公共组件

1. 后端抽取导出功能到 CRUD 公共组件
2. 查询列表及导出接口支持排序参数
3. 深度优化 BaseServiceImpl 中的 CRUD 公共实现
4. 前端抽取公共下载组件
5. 优化部分细节并修复部分错误
This commit is contained in:
2023-02-13 21:15:06 +08:00
parent 142d315a8d
commit 03b57fb021
25 changed files with 457 additions and 307 deletions

View File

@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
import cn.hutool.core.lang.tree.Tree;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.vo.R;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
@@ -53,8 +54,8 @@ public class CommonController {
@Log(ignore = true)
@Operation(summary = "查询部门树", description = "查询树结构的部门列表")
@GetMapping("/tree/dept")
public R<List<Tree<Long>>> listDeptTree(@Validated DeptQuery query) {
List<DeptVO> list = deptService.list(query);
public R<List<Tree<Long>>> listDeptTree(@Validated DeptQuery query, @Validated SortQuery sortQuery) {
List<DeptVO> list = deptService.list(query, sortQuery);
List<Tree<Long>> deptTreeList = deptService.buildTree(list);
return R.ok(deptTreeList);
}

View File

@@ -20,8 +20,6 @@ import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -30,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.vo.R;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
import top.charles7c.cnadmin.system.model.request.DeptRequest;
@@ -45,19 +44,13 @@ import top.charles7c.cnadmin.system.service.DeptService;
*/
@Tag(name = "部门管理 API")
@RestController
@CrudRequestMapping(value = "/system/dept", api = {Api.LIST, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE})
@CrudRequestMapping(value = "/system/dept", api = {Api.LIST, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE, Api.EXPORT})
public class DeptController extends BaseController<DeptService, DeptVO, DeptDetailVO, DeptQuery, DeptRequest> {
@Override
@Operation(summary = "查询列表树")
public R<List<DeptVO>> list(@Validated DeptQuery query) {
List<DeptVO> list = baseService.list(query);
public R<List<DeptVO>> list(@Validated DeptQuery query, @Validated SortQuery sortQuery) {
List<DeptVO> list = baseService.list(query, sortQuery);
return R.ok(baseService.buildListTree(list));
}
@Operation(summary = "导出部门数据")
@GetMapping("/export")
public void export(@Validated DeptQuery query, HttpServletResponse response) {
baseService.export(query, response);
}
}

View File

@@ -16,8 +16,6 @@
package top.charles7c.cnadmin.webapi.controller.system;
import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RestController;
@@ -38,5 +36,5 @@ import top.charles7c.cnadmin.system.service.RoleService;
*/
@Tag(name = "角色管理 API")
@RestController
@CrudRequestMapping(value = "/system/role", api = {Api.PAGE, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE})
@CrudRequestMapping("/system/role")
public class RoleController extends BaseController<RoleService, RoleVO, RoleDetailVO, RoleQuery, RoleRequest> {}