From f0f278c2e9098dd76dd697426d663b0f36fe937b Mon Sep 17 00:00:00 2001 From: ruying408 <1877972603@qq.com> Date: Mon, 15 Sep 2025 22:53:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=A5=E5=8F=82=E8=BD=AC=E6=8D=A2=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/core/base/BaseController.java | 28 ++++++++++----- .../com/cool/core/request/CrudOption.java | 35 +++++++++++++++---- .../admin/sys/AdminBaseSysMenuController.java | 2 +- .../admin/AdminDictInfoController.java | 4 +-- .../admin/AdminDictTypeController.java | 4 +-- 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/cool/core/base/BaseController.java b/src/main/java/com/cool/core/base/BaseController.java index 32fc3f2..f76ba45 100644 --- a/src/main/java/com/cool/core/base/BaseController.java +++ b/src/main/java/com/cool/core/base/BaseController.java @@ -165,8 +165,9 @@ public abstract class BaseController, T extends BaseEnt protected R info(@RequestAttribute() JSONObject requestParams, @RequestParam() Long id, @RequestAttribute(COOL_INFO_OP) CrudOption option) { + invokerTransformParam(option, requestParams); T info = (T) service.info(requestParams, id); - invokerTransform(option, info); + invokerTransformValue(option, info); return R.ok(info); } @@ -179,13 +180,14 @@ public abstract class BaseController, T extends BaseEnt @PostMapping("/list") protected R> list(@RequestAttribute() JSONObject requestParams, @RequestAttribute(COOL_LIST_OP) CrudOption option) { + invokerTransformParam(option, requestParams); QueryModeEnum queryModeEnum = option.getQueryModeEnum(); List list = (List) switch (queryModeEnum) { case ENTITY_WITH_RELATIONS -> service.listWithRelations(requestParams, option.getQueryWrapper(currentEntityClass())); case CUSTOM -> transformList(service.list(requestParams, option.getQueryWrapper(currentEntityClass()), option.getAsType()), option.getAsType()); default -> service.list(requestParams, option.getQueryWrapper(currentEntityClass())); }; - invokerTransform(option, list); + invokerTransformValue(option, list); return R.ok(list); } @@ -198,6 +200,7 @@ public abstract class BaseController, T extends BaseEnt @PostMapping("/page") protected R> page(@RequestAttribute() JSONObject requestParams, @RequestAttribute(COOL_PAGE_OP) CrudOption option) { + invokerTransformParam(option, requestParams); Integer page = requestParams.getInt("page", 1); Integer size = requestParams.getInt("size", 20); QueryModeEnum queryModeEnum = option.getQueryModeEnum(); @@ -207,25 +210,34 @@ public abstract class BaseController, T extends BaseEnt default -> service.page(requestParams, new Page<>(page, size), option.getQueryWrapper(currentEntityClass())); }; Page pageResult = (Page) obj; - invokerTransform(option, pageResult.getRecords()); + invokerTransformValue(option, pageResult.getRecords()); return R.ok(pageResult(pageResult)); } /** - * 转换参数,组装数据 + * 转换值,组装数据 */ - private void invokerTransform(CrudOption option, Object obj) { - if (ObjUtil.isNotEmpty(option.getTransform())) { + private void invokerTransformValue(CrudOption option, Object obj) { + if (ObjUtil.isNotNull(option.getTransformValue())) { if (obj instanceof List) { ((List)obj).forEach(o -> { - option.getTransform().apply(o); + option.getTransformValue().apply(o); }); } else { - option.getTransform().apply(obj); + option.getTransformValue().apply(obj); } } } + /** + * 转换入参 + */ + private void invokerTransformParam(CrudOption option, JSONObject obj) { + if (ObjUtil.isNotNull(option.getTransformParam())) { + option.getTransformParam().apply(obj); + } + } + /** * 分页结果 * diff --git a/src/main/java/com/cool/core/request/CrudOption.java b/src/main/java/com/cool/core/request/CrudOption.java index c16954b..e6fe33d 100644 --- a/src/main/java/com/cool/core/request/CrudOption.java +++ b/src/main/java/com/cool/core/request/CrudOption.java @@ -38,12 +38,18 @@ public class CrudOption { private QueryModeEnum queryModeEnum; - private Transform transform; + private TransformValue transformValue; - public interface Transform { + private TransformParam transformParam; + + public interface TransformValue { void apply(B obj); } + public interface TransformParam { + void apply(JSONObject obj); + } + /** * queryModeEnum 为 CUSTOM,可设置 默认为Map */ @@ -113,10 +119,27 @@ public class CrudOption { } /** - * 转换参数,组装数据 + * 转换值,组装数据 */ - public CrudOption transform(Transform transform) { - this.transform = transform; + public CrudOption transformValue(TransformValue transformValue) { + this.transformValue = transformValue; + return this; + } + + /** + * 请使用 transformValue + */ + @Deprecated + public CrudOption transform(TransformValue transformValue) { + this.transformValue = transformValue; + return this; + } + + /** + * 转换入参 + */ + public CrudOption transformParam(TransformParam transformParam) { + this.transformParam = transformParam; return this; } @@ -199,4 +222,4 @@ public class CrudOption { sort.equals("asc")); } } -} +} \ No newline at end of file diff --git a/src/main/java/com/cool/modules/base/controller/admin/sys/AdminBaseSysMenuController.java b/src/main/java/com/cool/modules/base/controller/admin/sys/AdminBaseSysMenuController.java index fbe96e2..5890cd4 100644 --- a/src/main/java/com/cool/modules/base/controller/admin/sys/AdminBaseSysMenuController.java +++ b/src/main/java/com/cool/modules/base/controller/admin/sys/AdminBaseSysMenuController.java @@ -28,7 +28,7 @@ public class AdminBaseSysMenuController extends @Override protected void init(HttpServletRequest request, JSONObject requestParams) { CrudOption transform = createOp() - .transform(o -> { + .transformValue(o -> { BaseSysMenuEntity entity = (BaseSysMenuEntity) o; entity.setName(I18nUtil.getI18nMenu(entity.getName())); }); diff --git a/src/main/java/com/cool/modules/dict/controller/admin/AdminDictInfoController.java b/src/main/java/com/cool/modules/dict/controller/admin/AdminDictInfoController.java index a9288d0..5fd766e 100644 --- a/src/main/java/com/cool/modules/dict/controller/admin/AdminDictInfoController.java +++ b/src/main/java/com/cool/modules/dict/controller/admin/AdminDictInfoController.java @@ -30,11 +30,11 @@ public class AdminDictInfoController extends BaseController { + .transformValue(o -> { DictInfoEntity entity = (DictInfoEntity) o; entity.setName(I18nUtil.getI18nDictInfo(entity.getName())); })); - CrudOption transform = createOp().transform(o -> { + CrudOption transform = createOp().transformValue(o -> { DictInfoEntity entity = (DictInfoEntity) o; entity.setName(I18nUtil.getI18nDictInfo(entity.getName())); }); diff --git a/src/main/java/com/cool/modules/dict/controller/admin/AdminDictTypeController.java b/src/main/java/com/cool/modules/dict/controller/admin/AdminDictTypeController.java index fb0ff5f..09072f9 100644 --- a/src/main/java/com/cool/modules/dict/controller/admin/AdminDictTypeController.java +++ b/src/main/java/com/cool/modules/dict/controller/admin/AdminDictTypeController.java @@ -22,11 +22,11 @@ public class AdminDictTypeController extends BaseController { + createOp().select(DICT_TYPE_ENTITY.ID, DICT_TYPE_ENTITY.KEY, DICT_TYPE_ENTITY.NAME).transformValue(o -> { DictTypeEntity entity = (DictTypeEntity) o; entity.setName(I18nUtil.getI18nDictType(entity.getName())); })); - CrudOption transform = createOp().transform(o -> { + CrudOption transform = createOp().transformValue(o -> { DictTypeEntity entity = (DictTypeEntity) o; entity.setName(I18nUtil.getI18nDictType(entity.getName())); });