From c4f1df9774145cf7f655bec688bd0e46880065c9 Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Fri, 18 Apr 2025 23:11:29 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E9=80=9A=E7=94=A8=20API=20=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/cool/core/enums/Apis.java | 13 +++++++++++++ .../core/request/prefix/AutoPrefixUrlMapping.java | 3 ++- src/main/resources/cool/code/controller.th | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/cool/core/enums/Apis.java diff --git a/src/main/java/com/cool/core/enums/Apis.java b/src/main/java/com/cool/core/enums/Apis.java new file mode 100644 index 0000000..b8a4509 --- /dev/null +++ b/src/main/java/com/cool/core/enums/Apis.java @@ -0,0 +1,13 @@ +package com.cool.core.enums; + +public class Apis { + public static final String ADD = "add"; + public static final String DELETE = "delete"; + public static final String UPDATE = "update"; + public static final String PAGE = "page"; + public static final String LIST = "list"; + public static final String INFO = "info"; + + + public static final String[] ALL_API = new String[]{ ADD, DELETE, UPDATE, PAGE, LIST, INFO }; +} diff --git a/src/main/java/com/cool/core/request/prefix/AutoPrefixUrlMapping.java b/src/main/java/com/cool/core/request/prefix/AutoPrefixUrlMapping.java index 5faffc2..01f04ea 100644 --- a/src/main/java/com/cool/core/request/prefix/AutoPrefixUrlMapping.java +++ b/src/main/java/com/cool/core/request/prefix/AutoPrefixUrlMapping.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjUtil; import com.cool.core.annotation.CoolRestController; +import com.cool.core.enums.Apis; import com.cool.core.util.ConvertUtil; import java.lang.reflect.Method; import java.util.List; @@ -43,7 +44,7 @@ public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping { * @return 是否需要构建路由 */ private boolean checkApis(CoolRestController[] annotations, RequestMappingInfo info) { - String[] apis = new String[] { "add", "delete", "update", "page", "list", "info" }; + String[] apis = Apis.ALL_API; if (info.getPathPatternsCondition() == null) { return true; } diff --git a/src/main/resources/cool/code/controller.th b/src/main/resources/cool/code/controller.th index 279301d..27cf579 100644 --- a/src/main/resources/cool/code/controller.th +++ b/src/main/resources/cool/code/controller.th @@ -3,6 +3,7 @@ package com.cool.modules.[(${module})].controller.[(${type})][(${subModule}?'.'+ import cn.hutool.json.JSONObject; import com.cool.core.annotation.CoolRestController; import com.cool.core.base.BaseController; +import com.cool.core.enums.Apis; import com.cool.modules.[(${module})].entity[(${subModule}?'.'+${subModule}:'')].[(${entity})]Entity; import com.cool.modules.[(${module})].service[(${subModule}?'.'+${subModule}:'')].[(${entity})]Service; import io.swagger.v3.oas.annotations.tags.Tag; @@ -12,7 +13,7 @@ import jakarta.servlet.http.HttpServletRequest; * [(${name})] */ @Tag(name = "[(${name})]", description = "[(${name})]") -@CoolRestController(api = {"add", "delete", "update", "page", "list", "info"}) +@CoolRestController(api = {Apis.ADD, Apis.DELETE, Apis.UPDATE, Apis.PAGE, Apis.LIST, Apis.INFO}) public class [(${upperType})][(${entity})]Controller extends BaseController<[(${entity})]Service, [(${entity})]Entity> { @Override protected void init(HttpServletRequest request, JSONObject requestParams) { From 7be1be932b74afc5f628ee4d6a7bd99b9279d5bd Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Sat, 19 Apr 2025 10:54:20 +0800 Subject: [PATCH 2/6] =?UTF-8?q?admin=20=E7=AB=AF=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=AE=9A=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/core/annotation/EpsField.java | 12 ++ .../cool/core/enums/AdminComponentsEnum.java | 105 ++++++++++++++++++ src/main/java/com/cool/core/eps/CoolEps.java | 10 +- 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/cool/core/annotation/EpsField.java create mode 100644 src/main/java/com/cool/core/enums/AdminComponentsEnum.java diff --git a/src/main/java/com/cool/core/annotation/EpsField.java b/src/main/java/com/cool/core/annotation/EpsField.java new file mode 100644 index 0000000..4d3143b --- /dev/null +++ b/src/main/java/com/cool/core/annotation/EpsField.java @@ -0,0 +1,12 @@ +package com.cool.core.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface EpsField { + String component() default "input"; +} diff --git a/src/main/java/com/cool/core/enums/AdminComponentsEnum.java b/src/main/java/com/cool/core/enums/AdminComponentsEnum.java new file mode 100644 index 0000000..e4c95f1 --- /dev/null +++ b/src/main/java/com/cool/core/enums/AdminComponentsEnum.java @@ -0,0 +1,105 @@ +package com.cool.core.enums; + +public class AdminComponentsEnum { + + + /** + * 省市区选择器 - 用户选择省市区 + */ + public static final String PCA = "pca"; + + /** + * 文本输入 - 文本编辑框 + */ + public static final String INPUT = "input"; + + /** + * 文本域 - 多行文本编辑框 + */ + public static final String TEXTAREA = "textarea"; + + /** + * 富文本编辑器 - 用于文章,商品详情的编辑 + */ + public static final String EDITOR_RICH = "editor-rich"; + + /** + * 代码编辑器 - 用于开发人员编写代码,支持多种语言,支持代码高亮,支持代码格式化 + */ + public static final String CODING = "coding"; + + /** + * 数字输入 - 数字输入编辑框 + */ + public static final String INPUT_NUMBER = "input-number"; + + /** + * 日期选择器 - 用户选择 年-月-日 + */ + public static final String DATE = "date"; + + /** + * 日期范围选择器 - 用户选择起始 年-月-日 + */ + public static final String DATERANGE = "daterange"; + + /** + * 时间选择器 - 用户选择 时:分:秒 + */ + public static final String DATETIME = "datetime"; + + /** + * 时间范围选择器 - 用户选择起始 年-月-日 时:分:秒 + */ + public static final String DATETIMERANGE = "datetimerange"; + + /** + * 单图上传 - 用户上传单张图片,如:头像、logo、封面 + */ + public static final String UPLOAD_IMG = "upload-img"; + + /** + * 多图上传 - 用户上传多张图片, 如:照片、图片 + */ + public static final String UPLOAD_IMG_MULTIPLE = "upload-img-multiple"; + + /** + * 单个文件上传 - 用户上传单个文件 + */ + public static final String UPLOAD_FILE = "upload-file"; + + /** + * 多个文件上传 - 用户上传多个文件 + */ + public static final String UPLOAD_FILE_MULTIPLE = "upload-file-multiple"; + + /** + * 状态选择器 - 用户开启或者关闭操作,如:是否启用、是否推荐、是否默认、置顶、启用禁用等 + */ + public static final String SWITCH = "switch"; + + /** + * 评分选择器 - 用户评分 + */ + public static final String RATE = "rate"; + + /** + * 滑块选择器 - 在一个固定区间内进行选择, 如:进度 + */ + public static final String PROGRESS = "progress"; + + /** + * 单选框 - 在一组备选项中进行单选,如:审批状态 + */ + public static final String RADIO = "radio"; + + /** + * 多选框 - 适用于选项比较少的情况,在一组备选项中进行多选, 如:学历、爱好等 + */ + public static final String CHECKBOX = "checkbox"; + + /** + * 下拉框 - 适用于当选项过多时,使用下拉菜单展示并选择内容,如:分类、标签等 + */ + public static final String SELECT = "select"; +} diff --git a/src/main/java/com/cool/core/eps/CoolEps.java b/src/main/java/com/cool/core/eps/CoolEps.java index 5ff28c7..118b78a 100644 --- a/src/main/java/com/cool/core/eps/CoolEps.java +++ b/src/main/java/com/cool/core/eps/CoolEps.java @@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.cool.core.annotation.EpsField; import com.cool.core.config.CustomOpenApiResource; import com.mybatisflex.annotation.Table; import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine; @@ -324,8 +325,13 @@ public class CoolEps { List dictList = new ArrayList<>(); for (Field field : fields) { Dict dict = Dict.create(); - ColumnDefine columnInfo = AnnotatedElementUtils.findMergedAnnotation(field, - ColumnDefine.class); + + EpsField epsField = AnnotatedElementUtils.findMergedAnnotation(field, EpsField.class); + if (epsField != null) { + dict.set("component", epsField.component()); + } + + ColumnDefine columnInfo = AnnotatedElementUtils.findMergedAnnotation(field, ColumnDefine.class); if (columnInfo == null) { continue; } From 7e751ef07faf35122a641247b8b3d921b3e47b71 Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Sat, 19 Apr 2025 15:21:11 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=89=8D=E5=90=8E=E5=8F=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-local.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 7a4a8df..6b45549 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -30,6 +30,11 @@ springdoc: api-docs: #是否开启文档功能 本地为了配合eps功能不可关闭 enabled: true + group-configs: + - group: app + paths-to-match: /app/** + - group: admin + paths-to-match: /admin/** # 设置日志级别 logging: From c86c52225a5decae852273ddf49f363bec86a9d7 Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Sat, 19 Apr 2025 18:46:27 +0800 Subject: [PATCH 4/6] =?UTF-8?q?EPS=20=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=90=8D=E7=A7=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/cool/core/eps/CoolEps.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/cool/core/eps/CoolEps.java b/src/main/java/com/cool/core/eps/CoolEps.java index 118b78a..19bfb52 100644 --- a/src/main/java/com/cool/core/eps/CoolEps.java +++ b/src/main/java/com/cool/core/eps/CoolEps.java @@ -44,6 +44,8 @@ public class CoolEps { private int serverPort; private Dict entityInfo; + + private Dict menuInfo; private JSONObject swaggerInfo; @@ -63,6 +65,7 @@ public class CoolEps { return; } entityInfo = Dict.create(); + menuInfo = Dict.create(); swaggerInfo = swaggerInfo(); Runnable task = () -> { entity(); @@ -132,6 +135,7 @@ public class CoolEps { item.set("api", new ArrayList()); item.set("prefix", prefix); item.set("columns", entityInfo.get(entityName)); + item.set("menu", menuInfo.get( entityName ) ); item.set("api", apis(prefix, methodPath, item.getBean("api"))); urls.add(item); } @@ -286,6 +290,13 @@ public class CoolEps { Field[] fields = getAllDeclaredFields(e); List columns = columns(fields); entityInfo.set(e.getSimpleName(), columns); + + + Table mergedAnnotation = AnnotatedElementUtils.findMergedAnnotation(e, Table.class); + + menuInfo.set(e.getSimpleName(), mergedAnnotation.comment()); + + }); } From e21e5675f21ade9ffb3d79cf02fd125071b853c2 Mon Sep 17 00:00:00 2001 From: ximu-tao Date: Wed, 23 Apr 2025 16:17:51 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix=20=E7=AE=A1=E7=90=86=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=93=8D=E5=BA=94=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base/entity/sys/BaseSysUserEntity.java | 11 +++++++++++ .../service/sys/impl/BaseSysUserServiceImpl.java | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/cool/modules/base/entity/sys/BaseSysUserEntity.java b/src/main/java/com/cool/modules/base/entity/sys/BaseSysUserEntity.java index b6a87fc..fa5b5c0 100644 --- a/src/main/java/com/cool/modules/base/entity/sys/BaseSysUserEntity.java +++ b/src/main/java/com/cool/modules/base/entity/sys/BaseSysUserEntity.java @@ -4,11 +4,15 @@ import com.cool.core.base.TenantEntity; import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Table; import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; +import org.dromara.autotable.annotation.Ignore; import org.dromara.autotable.annotation.Index; import org.dromara.autotable.annotation.enums.IndexTypeEnum; +import java.util.List; + @Getter @Setter @Table(value = "base_sys_user", comment = "系统用户表") @@ -58,4 +62,11 @@ public class BaseSysUserEntity extends TenantEntity { @ColumnDefine(comment = "socketId") private String socketId; + + + @Ignore + @Schema( description = "角色列表" ) + private List roleIdList; + + } diff --git a/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysUserServiceImpl.java b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysUserServiceImpl.java index dc213f0..e333529 100644 --- a/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysUserServiceImpl.java +++ b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysUserServiceImpl.java @@ -30,6 +30,8 @@ import lombok.RequiredArgsConstructor; import org.dromara.autotable.core.constants.DatabaseDialect; import org.springframework.stereotype.Service; +import java.util.List; + /** * 系统用户 */ @@ -171,13 +173,17 @@ public class BaseSysUserServiceImpl extends BaseServiceImpl Date: Thu, 24 Apr 2025 15:01:58 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix=20=E7=AE=A1=E7=90=86=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=93=8D=E5=BA=94=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/sys/impl/BaseSysRoleServiceImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysRoleServiceImpl.java b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysRoleServiceImpl.java index d437348..159ae97 100644 --- a/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysRoleServiceImpl.java +++ b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysRoleServiceImpl.java @@ -15,6 +15,8 @@ import com.cool.modules.base.mapper.sys.BaseSysRoleMenuMapper; import com.cool.modules.base.service.sys.BaseSysPermsService; import com.cool.modules.base.service.sys.BaseSysRoleService; import com.mybatisflex.core.query.QueryWrapper; + +import java.util.Arrays; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -46,7 +48,7 @@ public class BaseSysRoleServiceImpl extends BaseServiceImpl