From 3a0c3e02b03837789bfc433a335b062ec5dab511 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Wed, 20 Nov 2024 21:40:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor(extension/crud):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=20BaseController=E3=80=81BaseService=20=E5=88=B0=20crud-core?= =?UTF-8?q?=20=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crud/controller/BaseController.java | 4 +- .../extension/crud/service/BaseService.java | 4 +- .../extension/crud/service/BaseService.java | 120 ------------ .../service/{impl => }/BaseServiceImpl.java | 3 +- .../crud/controller/BaseController.java | 173 ------------------ .../service/{impl => }/BaseServiceImpl.java | 3 +- 6 files changed, 6 insertions(+), 301 deletions(-) rename continew-starter-extension/continew-starter-extension-crud/{continew-starter-extension-crud-mf => continew-starter-extension-crud-core}/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java (97%) rename continew-starter-extension/continew-starter-extension-crud/{continew-starter-extension-crud-mp => continew-starter-extension-crud-core}/src/main/java/top/continew/starter/extension/crud/service/BaseService.java (96%) delete mode 100644 continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseService.java rename continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/{impl => }/BaseServiceImpl.java (98%) delete mode 100644 continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java rename continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/{impl => }/BaseServiceImpl.java (99%) diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java similarity index 97% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java index eb966f35..308e9e74 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java @@ -31,7 +31,7 @@ import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.req.BaseReq; import top.continew.starter.extension.crud.model.resp.BaseIdResp; -import top.continew.starter.extension.crud.model.resp.PageResp; +import top.continew.starter.extension.crud.model.resp.BasePageResp; import top.continew.starter.extension.crud.service.BaseService; import top.continew.starter.extension.crud.util.ValidateGroup; @@ -64,7 +64,7 @@ public abstract class BaseController, L, D, Q, @Operation(summary = "分页查询列表", description = "分页查询列表") @ResponseBody @GetMapping - public PageResp page(Q query, @Validated PageQuery pageQuery) { + public BasePageResp page(Q query, @Validated PageQuery pageQuery) { return baseService.page(query, pageQuery); } diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseService.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/BaseService.java similarity index 96% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseService.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/BaseService.java index 23ead128..389f4316 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseService.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/BaseService.java @@ -20,8 +20,8 @@ import cn.hutool.core.lang.tree.Tree; import jakarta.servlet.http.HttpServletResponse; import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; +import top.continew.starter.extension.crud.model.resp.BasePageResp; import top.continew.starter.extension.crud.model.resp.LabelValueResp; -import top.continew.starter.extension.crud.model.resp.PageResp; import java.util.List; @@ -44,7 +44,7 @@ public interface BaseService { * @param pageQuery 分页查询条件 * @return 分页列表信息 */ - PageResp page(Q query, PageQuery pageQuery); + BasePageResp page(Q query, PageQuery pageQuery); /** * 查询列表 diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseService.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseService.java deleted file mode 100644 index 0207c2d6..00000000 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseService.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - *

- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.gnu.org/licenses/lgpl.html - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.continew.starter.extension.crud.service; - -import cn.hutool.core.lang.tree.Tree; -import jakarta.servlet.http.HttpServletResponse; -import top.continew.starter.extension.crud.model.query.PageQuery; -import top.continew.starter.extension.crud.model.query.SortQuery; -import top.continew.starter.extension.crud.model.resp.LabelValueResp; -import top.continew.starter.extension.crud.model.resp.PageResp; - -import java.util.List; - -/** - * 业务接口基类 - * - * @param 列表类型 - * @param 详情类型 - * @param 查询条件 - * @param 创建或修改类型 - * @author Charles7c - * @since 1.0.0 - */ -public interface BaseService { - - /** - * 分页查询列表 - * - * @param query 查询条件 - * @param pageQuery 分页查询条件 - * @return 分页列表信息 - */ - PageResp page(Q query, PageQuery pageQuery); - - /** - * 查询列表 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @return 列表信息 - */ - List list(Q query, SortQuery sortQuery); - - /** - * 查询树列表 - *

- * 虽然提供了查询条件,但不建议使用,容易因缺失根节点导致树节点丢失。 - * 建议在前端进行查询过滤,如需使用建议重写方法。 - *

- * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @DictField 局部配置) - * @return 树列表信息 - */ - List> tree(Q query, SortQuery sortQuery, boolean isSimple); - - /** - * 查看详情 - * - * @param id ID - * @return 详情信息 - */ - D get(Long id); - - /** - * 查询字典列表 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @return 字典列表信息 - */ - List listDict(Q query, SortQuery sortQuery); - - /** - * 新增 - * - * @param req 创建信息 - * @return 自增 ID - */ - Long add(C req); - - /** - * 修改 - * - * @param req 修改信息 - * @param id ID - */ - void update(C req, Long id); - - /** - * 删除 - * - * @param ids ID 列表 - */ - void delete(List ids); - - /** - * 导出 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @param response 响应对象 - */ - void export(Q query, SortQuery sortQuery, HttpServletResponse response); -} diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java similarity index 98% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java index 2f99f615..5609989c 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.extension.crud.service.impl; +package top.continew.starter.extension.crud.service; import cn.crane4j.core.support.OperateTemplate; import cn.hutool.core.bean.BeanUtil; @@ -44,7 +44,6 @@ import top.continew.starter.extension.crud.model.entity.BaseIdDO; import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.resp.PageResp; -import top.continew.starter.extension.crud.service.BaseService; import top.continew.starter.file.excel.util.ExcelUtils; import java.lang.reflect.Field; diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java deleted file mode 100644 index eb966f35..00000000 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/controller/BaseController.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - *

- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.gnu.org/licenses/lgpl.html - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.continew.starter.extension.crud.controller; - -import cn.hutool.core.lang.tree.Tree; -import com.feiniaojin.gracefulresponse.api.ExcludeFromGracefulResponse; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.enums.ParameterIn; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import top.continew.starter.extension.crud.annotation.CrudApi; -import top.continew.starter.extension.crud.enums.Api; -import top.continew.starter.extension.crud.model.query.PageQuery; -import top.continew.starter.extension.crud.model.query.SortQuery; -import top.continew.starter.extension.crud.model.req.BaseReq; -import top.continew.starter.extension.crud.model.resp.BaseIdResp; -import top.continew.starter.extension.crud.model.resp.PageResp; -import top.continew.starter.extension.crud.service.BaseService; -import top.continew.starter.extension.crud.util.ValidateGroup; - -import java.util.List; - -/** - * 控制器基类 - * - * @param 业务接口 - * @param 列表类型 - * @param 详情类型 - * @param 查询条件 - * @param 创建或修改类型 - * @author Charles7c - * @since 1.0.0 - */ -public abstract class BaseController, L, D, Q, C extends BaseReq> { - - @Autowired - protected S baseService; - - /** - * 分页查询列表 - * - * @param query 查询条件 - * @param pageQuery 分页查询条件 - * @return 分页信息 - */ - @CrudApi(Api.PAGE) - @Operation(summary = "分页查询列表", description = "分页查询列表") - @ResponseBody - @GetMapping - public PageResp page(Q query, @Validated PageQuery pageQuery) { - return baseService.page(query, pageQuery); - } - - /** - * 查询列表 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @return 列表信息 - */ - @CrudApi(Api.LIST) - @Operation(summary = "查询列表", description = "查询列表") - @ResponseBody - @GetMapping("/list") - public List list(Q query, SortQuery sortQuery) { - return baseService.list(query, sortQuery); - } - - /** - * 查询树列表 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @return 树列表信息 - */ - @CrudApi(Api.TREE) - @Operation(summary = "查询树列表", description = "查询树列表") - @ResponseBody - @GetMapping("/tree") - public List> tree(Q query, SortQuery sortQuery) { - return baseService.tree(query, sortQuery, false); - } - - /** - * 查询详情 - * - * @param id ID - * @return 详情信息 - */ - @CrudApi(Api.DETAIL) - @Operation(summary = "查询详情", description = "查询详情") - @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) - @ResponseBody - @GetMapping("/{id}") - public D detail(@PathVariable("id") Long id) { - return baseService.get(id); - } - - /** - * 新增 - * - * @param req 创建参数 - * @return ID - */ - @CrudApi(Api.ADD) - @Operation(summary = "新增数据", description = "新增数据") - @ResponseBody - @PostMapping - public BaseIdResp add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody C req) { - return new BaseIdResp<>(baseService.add(req)); - } - - /** - * 修改 - * - * @param req 修改参数 - * @param id ID - */ - @CrudApi(Api.UPDATE) - @Operation(summary = "修改数据", description = "修改数据") - @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) - @ResponseBody - @PutMapping("/{id}") - public void update(@Validated(ValidateGroup.Crud.Update.class) @RequestBody C req, @PathVariable("id") Long id) { - baseService.update(req, id); - } - - /** - * 删除 - * - * @param ids ID 列表 - */ - @CrudApi(Api.DELETE) - @Operation(summary = "删除数据", description = "删除数据") - @Parameter(name = "ids", description = "ID 列表", example = "1,2", in = ParameterIn.PATH) - @ResponseBody - @DeleteMapping("/{ids}") - public void delete(@PathVariable("ids") List ids) { - baseService.delete(ids); - } - - /** - * 导出 - * - * @param query 查询条件 - * @param sortQuery 排序查询条件 - * @param response 响应对象 - */ - @CrudApi(Api.EXPORT) - @ExcludeFromGracefulResponse - @Operation(summary = "导出数据", description = "导出数据") - @GetMapping("/export") - public void export(Q query, SortQuery sortQuery, HttpServletResponse response) { - baseService.export(query, sortQuery, response); - } -} diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java similarity index 99% rename from continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java rename to continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java index 08b4db5d..8b8995bd 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/impl/BaseServiceImpl.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/BaseServiceImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.continew.starter.extension.crud.service.impl; +package top.continew.starter.extension.crud.service; import cn.crane4j.core.support.OperateTemplate; import cn.hutool.core.bean.BeanUtil; @@ -51,7 +51,6 @@ import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.resp.LabelValueResp; import top.continew.starter.extension.crud.model.resp.PageResp; -import top.continew.starter.extension.crud.service.BaseService; import top.continew.starter.file.excel.util.ExcelUtils; import java.lang.reflect.Field;