From 92fd9086192bc2a6bec2e474efed41a2b38c291a Mon Sep 17 00:00:00 2001 From: CoderKK Date: Tue, 11 Mar 2025 16:37:15 +0800 Subject: [PATCH 01/10] =?UTF-8?q?refactor(smart-admin-api-java17-springboo?= =?UTF-8?q?t3):=20=E7=A7=BB=E9=99=A4=20Dao=20=E6=8E=A5=E5=8F=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=86=97=E4=BD=99=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了 Dao.java.vm 文件中的 @Component 注解- 优化了代码结构,减少了不必要的导入 --- .../main/resources/code-generator-template/java/dao/Dao.java.vm | 2 -- 1 file changed, 2 deletions(-) diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm index a4bd167f..eb61f042 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Component; /** * ${basic.description} Dao @@ -18,7 +17,6 @@ import org.springframework.stereotype.Component; */ @Mapper -@Component public interface ${name.upperCamel}Dao extends BaseMapper<${name.upperCamel}Entity> { /** From ff868d1b2ebe7376cac49e5857e65532b2ce463b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?1024=E5=88=9B=E6=96=B0=E5=AE=9E=E9=AA=8C=E5=AE=A4?= <1024lab@sina.com> Date: Wed, 12 Mar 2025 13:05:46 +0000 Subject: [PATCH 02/10] =?UTF-8?q?v3.14.0=20=E6=9B=B4=E6=96=B0=EF=BC=9B?= =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91EasyExcel=E9=87=8D=E7=A3=85?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=B8=BAFastExcel;=E3=80=90=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E3=80=91=E4=BD=BF=E7=94=A8=E6=9C=80=E5=BC=BAArgon2?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E4=BD=9C=E4=B8=BA=E5=AF=86=E7=A0=81=E5=AD=98?= =?UTF-8?q?=E5=82=A8;=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=A4=A7?= =?UTF-8?q?=E5=AE=B6=E5=90=90=E6=A7=BD=E7=9A=84=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=94=B9=E4=B8=BA=E5=8F=AF=E9=87=8D=E5=A4=8D;?= =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=89=8D=E7=AB=AF=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E5=86=8D=E5=A2=9E=E5=8A=A0=E5=A4=9A=E7=A7=8D=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 1024创新实验室 <1024lab@sina.com> --- smart-admin-web-javascript/vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smart-admin-web-javascript/vite.config.js b/smart-admin-web-javascript/vite.config.js index 018d29c3..301c54e9 100644 --- a/smart-admin-web-javascript/vite.config.js +++ b/smart-admin-web-javascript/vite.config.js @@ -67,7 +67,7 @@ export default { }, }, }, - target: 'modules', + target: 'esnext', outDir: 'dist', // 指定输出路径 assetsDir: 'assets', // 指定生成静态文件目录 assetsInlineLimit: '4096', // 小于此阈值的导入或引用资源将内联为 base64 编码 From e5edc82beb8d6bc8248c75e59be531404a4a3571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?1024=E5=88=9B=E6=96=B0=E5=AE=9E=E9=AA=8C=E5=AE=A4?= <1024lab@sina.com> Date: Wed, 12 Mar 2025 13:06:22 +0000 Subject: [PATCH 03/10] =?UTF-8?q?v3.14.0=20=E6=9B=B4=E6=96=B0=EF=BC=9B?= =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91EasyExcel=E9=87=8D=E7=A3=85?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=B8=BAFastExcel;=E3=80=90=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E3=80=91=E4=BD=BF=E7=94=A8=E6=9C=80=E5=BC=BAArgon2?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E4=BD=9C=E4=B8=BA=E5=AF=86=E7=A0=81=E5=AD=98?= =?UTF-8?q?=E5=82=A8;=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=A4=A7?= =?UTF-8?q?=E5=AE=B6=E5=90=90=E6=A7=BD=E7=9A=84=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=94=B9=E4=B8=BA=E5=8F=AF=E9=87=8D=E5=A4=8D;?= =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=89=8D=E7=AB=AF=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E5=86=8D=E5=A2=9E=E5=8A=A0=E5=A4=9A=E7=A7=8D=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 1024创新实验室 <1024lab@sina.com> --- smart-admin-web-typescript/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smart-admin-web-typescript/vite.config.ts b/smart-admin-web-typescript/vite.config.ts index 70713457..2150c7f8 100644 --- a/smart-admin-web-typescript/vite.config.ts +++ b/smart-admin-web-typescript/vite.config.ts @@ -67,7 +67,7 @@ export default { }, }, }, - target: 'modules', + target: 'esnext', outDir: 'dist', // 指定输出路径 assetsDir: 'assets', // 指定生成静态文件目录 assetsInlineLimit: '4096', // 小于此阈值的导入或引用资源将内联为 base64 编码 From 109689be691cb52ad2e7b666adf44cb74f540206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?1024=E5=88=9B=E6=96=B0=E5=AE=9E=E9=AA=8C=E5=AE=A4?= <1024lab@sina.com> Date: Wed, 19 Mar 2025 06:18:36 +0000 Subject: [PATCH 04/10] update README.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 1024创新实验室 <1024lab@sina.com> --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index e850848d..bab82eca 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,7 @@ - 前端:JavaScript/TypeScript + Vue3 + Vite5 + Pinia + Ant Design Vue 4.X - 移动端:uniapp (vue3版本) + uni-ui + (同时支持APP、小程序、H5) - 后端:Java8/17 + SpringBoot2/3 + Sa Token + Mybatis-plus + 多种数据库 -- 电脑在线预览:[https://preview.smartadmin.vip](https://preview.smartadmin.vip) -- 官方文档:[https://smartadmin.vip](https://smartadmin.vip) -- 移动端在线预览:[https://app.smartadmin.vip](https://app.smartadmin.vip/#/pages/login/login) +- 官方文档:[http://115.190.111.229/](http://115.190.111.229/) ### **理念与思想** - 我们分享的不是徒劳无功的各种功能,而是必须有的功能,如:数据变动记录、系统说明文档、版本更新记录、意见反馈、日志、心跳、单号生成器等等。 From 684cb3f71cfb851fc608aa9f9aa50d2b998bd9bc Mon Sep 17 00:00:00 2001 From: CoderKK Date: Thu, 20 Mar 2025 11:42:23 +0800 Subject: [PATCH 05/10] =?UTF-8?q?refactor(smart-admin):=20=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E4=BD=BF=E7=94=A8=E2=80=9C=E7=99=BB=E5=BD=95=E2=80=9D?= =?UTF-8?q?=E6=9B=BF=E4=BB=A3=E2=80=9C=E7=99=BB=E9=99=86=E2=80=9D=EF=BC=8C?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E6=9C=AF=E8=AF=AD=E5=87=86=E7=A1=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/module/system/login/controller/LoginController.java | 2 +- .../sa/admin/module/system/login/service/LoginService.java | 4 ++-- .../admin/module/system/login/controller/LoginController.java | 2 +- .../sa/admin/module/system/login/service/LoginService.java | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java index cac01bf4..b3e0335a 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java @@ -57,7 +57,7 @@ public class LoginController { return ResponseDTO.ok(loginResult); } - @Operation(summary = "退出登陆 @author 卓大") + @Operation(summary = "退出登录 @author 卓大") @GetMapping("/login/logout") public ResponseDTO logout() { return loginService.logout(SmartRequestUtil.getRequestUser()); diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java index b118b967..3052b1b5 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java @@ -142,7 +142,7 @@ public class LoginService implements StpInterface { } /** - * 员工登陆 + * 员工登录 * * @return 返回用户登录信息 */ @@ -316,7 +316,7 @@ public class LoginService implements StpInterface { /** - * 根据登陆token 获取员请求工信息 + * 根据登录token 获取员请求工信息 */ public RequestEmployee getLoginEmployee(String loginId, HttpServletRequest request) { if (loginId == null) { diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java index d51f2c4a..889e1ad4 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java @@ -58,7 +58,7 @@ public class LoginController { return ResponseDTO.ok(loginResult); } - @Operation(summary = "退出登陆 @author 卓大") + @Operation(summary = "退出登录 @author 卓大") @GetMapping("/login/logout") public ResponseDTO logout() { return loginService.logout(SmartRequestUtil.getRequestUser()); diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java index ca6c40a9..ae8f61ea 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java @@ -144,7 +144,7 @@ public class LoginService implements StpInterface { } /** - * 员工登陆 + * 员工登录 * * @return 返回用户登录信息 */ @@ -318,7 +318,7 @@ public class LoginService implements StpInterface { /** - * 根据登陆token 获取员请求工信息 + * 根据登录token 获取员请求工信息 */ public RequestEmployee getLoginEmployee(String loginId, HttpServletRequest request) { if (loginId == null) { From a66d97a40887aca74c258c66c54e9a78368c3c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?1024=E5=88=9B=E6=96=B0=E5=AE=9E=E9=AA=8C=E5=AE=A4?= <1024lab@sina.com> Date: Mon, 24 Mar 2025 11:54:02 +0000 Subject: [PATCH 06/10] update README.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 1024创新实验室 <1024lab@sina.com> --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bab82eca..958f1a1a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ - 前端:JavaScript/TypeScript + Vue3 + Vite5 + Pinia + Ant Design Vue 4.X - 移动端:uniapp (vue3版本) + uni-ui + (同时支持APP、小程序、H5) - 后端:Java8/17 + SpringBoot2/3 + Sa Token + Mybatis-plus + 多种数据库 -- 官方文档:[http://115.190.111.229/](http://115.190.111.229/) +- 官方文档:[http://115.190.111.229/smart-admin/](http://115.190.111.229/smart-admin/) +- 在线预览:[http://115.190.111.229/smart-admin-preview/](http://115.190.111.229/smart-admin-preview/) ### **理念与思想** - 我们分享的不是徒劳无功的各种功能,而是必须有的功能,如:数据变动记录、系统说明文档、版本更新记录、意见反馈、日志、心跳、单号生成器等等。 From a6607c063b74e2a6c80332530dc5df9b3bdbe1dc Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Fri, 28 Mar 2025 20:57:48 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=85=8D=E7=BD=AE=E4=B8=BA=20redis=20?= =?UTF-8?q?=E6=97=B6=E6=8A=9B=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/entity/CategoryEntity.java | 7 +- .../category/domain/vo/CategoryTreeVO.java | 7 +- .../department/domain/vo/DepartmentVO.java | 7 +- .../system/support/AdminCacheController.java | 2 +- .../support/cache/config/CacheConfig.java | 35 ++++++++ .../support/cache/service/CacheService.java | 34 ++++++++ .../CaffeineCacheServiceImpl.java} | 21 ++--- .../cache/service/RedisCacheServiceImpl.java | 86 +++++++++++++++++++ .../domain/entity/CategoryEntity.java | 5 +- .../category/domain/vo/CategoryTreeVO.java | 5 +- .../department/domain/vo/DepartmentVO.java | 5 +- .../system/support/AdminCacheController.java | 2 +- .../cache/cache/config/CacheConfig.java | 35 ++++++++ .../cache/cache/service/CacheService.java | 34 ++++++++ .../service/CaffeineCacheServiceImpl.java} | 21 ++--- .../cache/service/RedisCacheServiceImpl.java | 86 +++++++++++++++++++ 16 files changed, 360 insertions(+), 32 deletions(-) create mode 100644 smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/config/CacheConfig.java create mode 100644 smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CacheService.java rename smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/{CacheService.java => service/CaffeineCacheServiceImpl.java} (85%) create mode 100644 smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/RedisCacheServiceImpl.java create mode 100644 smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/config/CacheConfig.java create mode 100644 smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CacheService.java rename smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/{CacheService.java => cache/service/CaffeineCacheServiceImpl.java} (84%) create mode 100644 smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/RedisCacheServiceImpl.java diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java index 83933a1d..d6934a8a 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import net.lab1024.sa.admin.module.business.category.constant.CategoryTypeEnum; +import java.io.Serial; +import java.io.Serializable; import java.time.LocalDateTime; /** @@ -19,7 +21,10 @@ import java.time.LocalDateTime; */ @Data @TableName("t_category") -public class CategoryEntity { +public class CategoryEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private Long categoryId; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java index 3c55b658..6fbd0e0a 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java @@ -3,6 +3,8 @@ package net.lab1024.sa.admin.module.business.category.domain.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.io.Serial; +import java.io.Serializable; import java.util.List; /** @@ -15,7 +17,10 @@ import java.util.List; * @Copyright 1024创新实验室 */ @Data -public class CategoryTreeVO { +public class CategoryTreeVO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; @Schema(description = "类目id") private Long categoryId; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java index 3566f877..def0c314 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java @@ -3,6 +3,8 @@ package net.lab1024.sa.admin.module.system.department.domain.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.io.Serial; +import java.io.Serializable; import java.time.LocalDateTime; /** @@ -15,7 +17,10 @@ import java.time.LocalDateTime; * @Copyright 1024创新实验室 */ @Data -public class DepartmentVO { +public class DepartmentVO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; @Schema(description = "部门id") private Long departmentId; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java index adaacdb3..de25e80a 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java @@ -7,7 +7,7 @@ import jakarta.annotation.Resource; import net.lab1024.sa.base.common.controller.SupportBaseController; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.constant.SwaggerTagConst; -import net.lab1024.sa.base.module.support.cache.CacheService; +import net.lab1024.sa.base.module.support.cache.service.CacheService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/config/CacheConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/config/CacheConfig.java new file mode 100644 index 00000000..fe7c85cb --- /dev/null +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/config/CacheConfig.java @@ -0,0 +1,35 @@ +package net.lab1024.sa.base.module.support.cache.config; + +import net.lab1024.sa.base.module.support.cache.service.CacheService; +import net.lab1024.sa.base.module.support.cache.service.CaffeineCacheServiceImpl; +import net.lab1024.sa.base.module.support.cache.service.RedisCacheServiceImpl; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 缓存配置 + * + * @author zhoumingfa + * @date 2025/03/28 + */ +@Configuration +public class CacheConfig { + + private static final String REDIS_CACHE = "redis"; + private static final String CAFFEINE_CACHE = "caffeine"; + + + @Bean + @ConditionalOnProperty(prefix = "spring.cache", name = {"type"}, havingValue = REDIS_CACHE) + public CacheService redisCacheService() { + return new RedisCacheServiceImpl(); + } + + @Bean + @ConditionalOnProperty(prefix = "spring.cache", name = {"type"}, havingValue = CAFFEINE_CACHE) + public CacheService caffeineCacheService() { + return new CaffeineCacheServiceImpl(); + } + +} diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CacheService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CacheService.java new file mode 100644 index 00000000..e0742b66 --- /dev/null +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CacheService.java @@ -0,0 +1,34 @@ +package net.lab1024.sa.base.module.support.cache.service; + +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 缓存服务 + * + * @Author 1024创新实验室: 罗伊 + * @Date 2021/10/11 20:07 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Service +public interface CacheService { + + /** + * 获取所有缓存名称 + */ + List cacheNames(); + + /** + * 某个缓存下的所有 key + */ + List cacheKey(String cacheName); + + /** + * 移除某个 key + */ + void removeCache(String cacheName); + +} diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CaffeineCacheServiceImpl.java similarity index 85% rename from smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java rename to smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CaffeineCacheServiceImpl.java index 0229b3f4..b07ab1fa 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/CaffeineCacheServiceImpl.java @@ -1,4 +1,4 @@ -package net.lab1024.sa.base.module.support.cache; +package net.lab1024.sa.base.module.support.cache.service; import com.google.common.collect.Lists; import jakarta.annotation.Resource; @@ -6,7 +6,6 @@ import net.lab1024.sa.base.constant.ReloadConst; import net.lab1024.sa.base.module.support.reload.core.annoation.SmartReload; import org.springframework.cache.caffeine.CaffeineCache; import org.springframework.cache.caffeine.CaffeineCacheManager; -import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; @@ -14,32 +13,31 @@ import java.util.Set; import java.util.stream.Collectors; /** - * 缓存操作 + * caffeine 缓存实现 * * @Author 1024创新实验室: 罗伊 * @Date 2021/10/11 20:07 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ -@Service -public class CacheService { +public class CaffeineCacheServiceImpl implements CacheService { @Resource private CaffeineCacheManager caffeineCacheManager; /** * 获取所有缓存名称 - * */ + @Override public List cacheNames() { return Lists.newArrayList(caffeineCacheManager.getCacheNames()); } /** - * 某个缓存下的所有key - * + * 某个缓存下的所有 key */ + @Override public List cacheKey(String cacheName) { CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName); if (cache == null) { @@ -50,10 +48,9 @@ public class CacheService { } /** - * 移除某个key - * + * 移除某个 key */ - + @Override public void removeCache(String cacheName) { CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName); if (cache != null) { diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/RedisCacheServiceImpl.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/RedisCacheServiceImpl.java new file mode 100644 index 00000000..5efeb3ca --- /dev/null +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/service/RedisCacheServiceImpl.java @@ -0,0 +1,86 @@ +package net.lab1024.sa.base.module.support.cache.service; + +import cn.hutool.core.util.StrUtil; +import com.google.common.collect.Lists; +import jakarta.annotation.Resource; +import net.lab1024.sa.base.constant.ReloadConst; +import net.lab1024.sa.base.module.support.reload.core.annoation.SmartReload; +import org.springframework.data.redis.cache.RedisCache; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.connection.RedisConnectionFactory; + +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * redis 缓存实现 + * + * @author zhoumingfa + * @date 2025/3/28 + */ +public class RedisCacheServiceImpl implements CacheService { + + @Resource + private RedisCacheManager redisCacheManager; + + @Resource + private RedisConnectionFactory redisConnectionFactory; + + /** + * 获取所有缓存名称 + */ + @Override + public List cacheNames() { + return Lists.newArrayList(redisCacheManager.getCacheNames()); + } + + /** + * 某个缓存下的所有 key + */ + @Override + public List cacheKey(String cacheName) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(cacheName); + if (cache == null) { + return Lists.newArrayList(); + } + // 获取 Redis 连接 + RedisConnection connection = redisConnectionFactory.getConnection(); + // 根据指定的 key 模式获取所有匹配的键 + Set keys = connection.keyCommands().keys((cacheName + ":*").getBytes()); + + if (keys != null) { + return keys.stream().map(key -> { + String redisKey = StrUtil.str(key, "utf-8"); + // 从 Redis 键中提取出最后一个冒号后面的字符串作为真正的键 + return redisKey.substring(redisKey.lastIndexOf(":") + 1); + }).collect(Collectors.toList()); + } + connection.close(); + return Lists.newArrayList(cacheName); + } + + /** + * 移除某个 key + */ + @Override + public void removeCache(String cacheName) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(cacheName); + if (cache != null) { + cache.clear(); + } + } + + @SmartReload(ReloadConst.CACHE_SERVICE) + public void clearAllCache() { + Collection cacheNames = redisCacheManager.getCacheNames(); + for (String name : cacheNames) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(name); + if (cache != null) { + cache.clear(); + } + } + } +} diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java index 83933a1d..4b0b348c 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import net.lab1024.sa.admin.module.business.category.constant.CategoryTypeEnum; +import java.io.Serializable; import java.time.LocalDateTime; /** @@ -19,7 +20,9 @@ import java.time.LocalDateTime; */ @Data @TableName("t_category") -public class CategoryEntity { +public class CategoryEntity implements Serializable { + + private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private Long categoryId; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java index 3c55b658..bbd7fb4a 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java @@ -3,6 +3,7 @@ package net.lab1024.sa.admin.module.business.category.domain.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.io.Serializable; import java.util.List; /** @@ -15,7 +16,9 @@ import java.util.List; * @Copyright 1024创新实验室 */ @Data -public class CategoryTreeVO { +public class CategoryTreeVO implements Serializable { + + private static final long serialVersionUID = 1L; @Schema(description = "类目id") private Long categoryId; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java index 3566f877..fc591634 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java @@ -3,6 +3,7 @@ package net.lab1024.sa.admin.module.system.department.domain.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.io.Serializable; import java.time.LocalDateTime; /** @@ -15,7 +16,9 @@ import java.time.LocalDateTime; * @Copyright 1024创新实验室 */ @Data -public class DepartmentVO { +public class DepartmentVO implements Serializable { + + private static final long serialVersionUID = 1L; @Schema(description = "部门id") private Long departmentId; diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java index 9696e5ec..b6b5906e 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java @@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.Operation; import net.lab1024.sa.base.common.controller.SupportBaseController; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.constant.SwaggerTagConst; -import net.lab1024.sa.base.module.support.cache.CacheService; +import net.lab1024.sa.base.module.support.cache.cache.service.CacheService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/config/CacheConfig.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/config/CacheConfig.java new file mode 100644 index 00000000..20afcf34 --- /dev/null +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/config/CacheConfig.java @@ -0,0 +1,35 @@ +package net.lab1024.sa.base.module.support.cache.cache.config; + +import net.lab1024.sa.base.module.support.cache.cache.service.CacheService; +import net.lab1024.sa.base.module.support.cache.cache.service.CaffeineCacheServiceImpl; +import net.lab1024.sa.base.module.support.cache.cache.service.RedisCacheServiceImpl; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 缓存配置 + * + * @author zhoumingfa + * @date 2025/03/28 + */ +@Configuration +public class CacheConfig { + + private static final String REDIS_CACHE = "redis"; + private static final String CAFFEINE_CACHE = "caffeine"; + + + @Bean + @ConditionalOnProperty(prefix = "spring.cache", name = {"type"}, havingValue = REDIS_CACHE) + public CacheService redisCacheService() { + return new RedisCacheServiceImpl(); + } + + @Bean + @ConditionalOnProperty(prefix = "spring.cache", name = {"type"}, havingValue = CAFFEINE_CACHE) + public CacheService caffeineCacheService() { + return new CaffeineCacheServiceImpl(); + } + +} diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CacheService.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CacheService.java new file mode 100644 index 00000000..c883386e --- /dev/null +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CacheService.java @@ -0,0 +1,34 @@ +package net.lab1024.sa.base.module.support.cache.cache.service; + +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 缓存服务 + * + * @Author 1024创新实验室: 罗伊 + * @Date 2021/10/11 20:07 + * @Wechat zhuoda1024 + * @Email lab1024@163.com + * @Copyright 1024创新实验室 + */ +@Service +public interface CacheService { + + /** + * 获取所有缓存名称 + */ + List cacheNames(); + + /** + * 某个缓存下的所有 key + */ + List cacheKey(String cacheName); + + /** + * 移除某个 key + */ + void removeCache(String cacheName); + +} diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CaffeineCacheServiceImpl.java similarity index 84% rename from smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java rename to smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CaffeineCacheServiceImpl.java index 16326aa0..2f18a782 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/CacheService.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/CaffeineCacheServiceImpl.java @@ -1,11 +1,10 @@ -package net.lab1024.sa.base.module.support.cache; +package net.lab1024.sa.base.module.support.cache.cache.service; import com.google.common.collect.Lists; import net.lab1024.sa.base.constant.ReloadConst; import net.lab1024.sa.base.module.support.reload.core.annoation.SmartReload; import org.springframework.cache.caffeine.CaffeineCache; import org.springframework.cache.caffeine.CaffeineCacheManager; -import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collection; @@ -14,32 +13,31 @@ import java.util.Set; import java.util.stream.Collectors; /** - * 缓存操作 + * caffeine 缓存实现 * * @Author 1024创新实验室: 罗伊 * @Date 2021/10/11 20:07 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ -@Service -public class CacheService { +public class CaffeineCacheServiceImpl implements CacheService { @Resource private CaffeineCacheManager caffeineCacheManager; /** * 获取所有缓存名称 - * */ + @Override public List cacheNames() { return Lists.newArrayList(caffeineCacheManager.getCacheNames()); } /** - * 某个缓存下的所有key - * + * 某个缓存下的所有 key */ + @Override public List cacheKey(String cacheName) { CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName); if (cache == null) { @@ -50,10 +48,9 @@ public class CacheService { } /** - * 移除某个key - * + * 移除某个 key */ - + @Override public void removeCache(String cacheName) { CaffeineCache cache = (CaffeineCache) caffeineCacheManager.getCache(cacheName); if (cache != null) { diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/RedisCacheServiceImpl.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/RedisCacheServiceImpl.java new file mode 100644 index 00000000..5a1a7e36 --- /dev/null +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/cache/cache/service/RedisCacheServiceImpl.java @@ -0,0 +1,86 @@ +package net.lab1024.sa.base.module.support.cache.cache.service; + +import cn.hutool.core.util.StrUtil; +import com.google.common.collect.Lists; +import net.lab1024.sa.base.constant.ReloadConst; +import net.lab1024.sa.base.module.support.reload.core.annoation.SmartReload; +import org.springframework.data.redis.cache.RedisCache; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.connection.RedisConnectionFactory; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * redis 缓存实现 + * + * @author zhoumingfa + * @date 2025/3/28 + */ +public class RedisCacheServiceImpl implements CacheService { + + @Resource + private RedisCacheManager redisCacheManager; + + @Resource + private RedisConnectionFactory redisConnectionFactory; + + /** + * 获取所有缓存名称 + */ + @Override + public List cacheNames() { + return Lists.newArrayList(redisCacheManager.getCacheNames()); + } + + /** + * 某个缓存下的所有 key + */ + @Override + public List cacheKey(String cacheName) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(cacheName); + if (cache == null) { + return Lists.newArrayList(); + } + // 获取 Redis 连接 + RedisConnection connection = redisConnectionFactory.getConnection(); + // 根据指定的 key 模式获取所有匹配的键 + Set keys = connection.keyCommands().keys((cacheName + ":*").getBytes()); + + if (keys != null) { + return keys.stream().map(key -> { + String redisKey = StrUtil.str(key, "utf-8"); + // 从 Redis 键中提取出最后一个冒号后面的字符串作为真正的键 + return redisKey.substring(redisKey.lastIndexOf(":") + 1); + }).collect(Collectors.toList()); + } + connection.close(); + return Lists.newArrayList(cacheName); + } + + /** + * 移除某个 key + */ + @Override + public void removeCache(String cacheName) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(cacheName); + if (cache != null) { + cache.clear(); + } + } + + @SmartReload(ReloadConst.CACHE_SERVICE) + public void clearAllCache() { + Collection cacheNames = redisCacheManager.getCacheNames(); + for (String name : cacheNames) { + RedisCache cache = (RedisCache) redisCacheManager.getCache(name); + if (cache != null) { + cache.clear(); + } + } + } +} From 5fb1456080a26cfb3847ff0f39df0a6714942662 Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Fri, 28 Mar 2025 21:12:59 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=A7=A3=E5=AF=86?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=20fastjson=20=E8=A7=A3=E6=9E=90=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=BB=9F=E4=B8=80=E6=94=B9=E4=B8=BA=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=20jackson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiencrypt/advice/DecryptRequestAdvice.java | 11 +++++++---- .../apiencrypt/advice/EncryptResponseAdvice.java | 16 +++++++--------- .../apiencrypt/advice/DecryptRequestAdvice.java | 9 ++++++--- .../apiencrypt/advice/EncryptResponseAdvice.java | 14 ++++++-------- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java index 9adf42ad..72a86e29 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java @@ -1,6 +1,6 @@ package net.lab1024.sa.base.module.support.apiencrypt.advice; -import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import net.lab1024.sa.base.common.util.SmartStringUtil; @@ -25,7 +25,7 @@ import java.lang.reflect.Type; * @Date 2023/10/21 11:41:46 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室,Since 2012 + * @Copyright 1024创新实验室,Since 2012 */ @Slf4j @@ -37,16 +37,19 @@ public class DecryptRequestAdvice extends RequestBodyAdviceAdapter { @Resource private ApiEncryptService apiEncryptService; + @Resource + private ObjectMapper objectMapper; + @Override public boolean supports(MethodParameter methodParameter, Type targetType, Class> converterType) { return methodParameter.hasMethodAnnotation(ApiDecrypt.class) || methodParameter.hasParameterAnnotation(ApiDecrypt.class) || methodParameter.getContainingClass().isAnnotationPresent(ApiDecrypt.class); } @Override - public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class> converterType) { + public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class> converterType) { try { String bodyStr = IOUtils.toString(inputMessage.getBody(), ENCODING); - ApiEncryptForm apiEncryptForm = JSONObject.parseObject(bodyStr, ApiEncryptForm.class); + ApiEncryptForm apiEncryptForm = objectMapper.readValue(bodyStr, ApiEncryptForm.class); if (SmartStringUtil.isEmpty(apiEncryptForm.getEncryptData())) { return inputMessage; } diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java index 0d6afa15..ee90c092 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java @@ -1,6 +1,5 @@ package net.lab1024.sa.base.module.support.apiencrypt.advice; -import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.annotation.Resource; @@ -24,13 +23,13 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; * @Date 2023/10/24 09:52:58 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室,Since 2012 + * @Copyright 1024创新实验室,Since 2012 */ @Slf4j @ControllerAdvice -public class EncryptResponseAdvice implements ResponseBodyAdvice { +public class EncryptResponseAdvice implements ResponseBodyAdvice> { @Resource private ApiEncryptService apiEncryptService; @@ -44,19 +43,18 @@ public class EncryptResponseAdvice implements ResponseBodyAdvice { } @Override - public ResponseDTO beforeBodyWrite(ResponseDTO body, MethodParameter returnType, MediaType selectedContentType, Class> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { - if (body.getData() == null) { + public ResponseDTO beforeBodyWrite(ResponseDTO body, MethodParameter returnType, MediaType selectedContentType, Class> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { + if (body == null || body.getData() == null) { return body; } - String encrypt = null; try { - encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData())); + String encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData())); + body.setData(encrypt); + body.setDataType(DataTypeEnum.ENCRYPT.getValue()); } catch (JsonProcessingException e) { throw new RuntimeException(e); } - body.setData(encrypt); - body.setDataType(DataTypeEnum.ENCRYPT.getValue()); return body; } } diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java index ea087e4d..03c0397d 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/DecryptRequestAdvice.java @@ -1,6 +1,6 @@ package net.lab1024.sa.base.module.support.apiencrypt.advice; -import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import net.lab1024.sa.base.common.util.SmartStringUtil; import net.lab1024.sa.base.module.support.apiencrypt.annotation.ApiDecrypt; @@ -37,16 +37,19 @@ public class DecryptRequestAdvice extends RequestBodyAdviceAdapter { @Resource private ApiEncryptService apiEncryptService; + @Resource + private ObjectMapper objectMapper; + @Override public boolean supports(MethodParameter methodParameter, Type targetType, Class> converterType) { return methodParameter.hasMethodAnnotation(ApiDecrypt.class) || methodParameter.hasParameterAnnotation(ApiDecrypt.class) || methodParameter.getContainingClass().isAnnotationPresent(ApiDecrypt.class); } @Override - public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class> converterType) { + public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class> converterType) { try { String bodyStr = IOUtils.toString(inputMessage.getBody(), ENCODING); - ApiEncryptForm apiEncryptForm = JSONObject.parseObject(bodyStr, ApiEncryptForm.class); + ApiEncryptForm apiEncryptForm = objectMapper.readValue(bodyStr, ApiEncryptForm.class); if (SmartStringUtil.isEmpty(apiEncryptForm.getEncryptData())) { return inputMessage; } diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java index d38544fc..2e9df5fa 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/apiencrypt/advice/EncryptResponseAdvice.java @@ -1,6 +1,5 @@ package net.lab1024.sa.base.module.support.apiencrypt.advice; -import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -31,7 +30,7 @@ import javax.annotation.Resource; @Slf4j @ControllerAdvice -public class EncryptResponseAdvice implements ResponseBodyAdvice { +public class EncryptResponseAdvice implements ResponseBodyAdvice> { @Resource private ApiEncryptService apiEncryptService; @@ -45,19 +44,18 @@ public class EncryptResponseAdvice implements ResponseBodyAdvice { } @Override - public ResponseDTO beforeBodyWrite(ResponseDTO body, MethodParameter returnType, MediaType selectedContentType, Class> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { - if (body.getData() == null) { + public ResponseDTO beforeBodyWrite(ResponseDTO body, MethodParameter returnType, MediaType selectedContentType, Class> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { + if (body == null || body.getData() == null) { return body; } - String encrypt = null; try { - encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData())); + String encrypt = apiEncryptService.encrypt(objectMapper.writeValueAsString(body.getData())); + body.setData(encrypt); + body.setDataType(DataTypeEnum.ENCRYPT.getValue()); } catch (JsonProcessingException e) { throw new RuntimeException(e); } - body.setData(encrypt); - body.setDataType(DataTypeEnum.ENCRYPT.getValue()); return body; } } From b72f58a0bb7e18299f326ddea285f9b0a420c17d Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Fri, 28 Mar 2025 21:19:27 +0800 Subject: [PATCH 09/10] =?UTF-8?q?1=E3=80=81=E8=8B=A5=E5=B9=B2=E4=B8=AA?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0SQL=E8=84=9A=E6=9C=AC=EF=BC=8Ct=5Fdict=5Fkey?= =?UTF-8?q?=20=E7=9A=84=20key=5Fcode=20=E5=80=BC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sa/admin/module/business/goods/domain/vo/GoodsVO.java | 1 - .../common/json/deserializer/DictValueVoDeserializer.java | 5 +---- .../main/java/net/lab1024/sa/base/config/FileConfig.java | 2 +- .../main/java/net/lab1024/sa/base/config/RedisConfig.java | 7 ++++--- .../module/support/dict/service/DictCacheService.java | 8 +++----- .../src/main/resources/mapper/support/FeedbackMapper.xml | 2 +- .../sa/admin/module/business/goods/domain/vo/GoodsVO.java | 1 - .../common/json/deserializer/DictValueVoDeserializer.java | 5 +---- .../main/java/net/lab1024/sa/base/config/FileConfig.java | 2 +- .../module/support/dict/service/DictCacheService.java | 8 +++----- .../src/main/resources/mapper/support/FeedbackMapper.xml | 2 +- smart_admin_v3.sql | 2 +- 12 files changed, 17 insertions(+), 28 deletions(-) diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java index 24f07738..191965f9 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java @@ -1,6 +1,5 @@ package net.lab1024.sa.admin.module.business.goods.domain.vo; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum; diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java index 7631db6a..9f8377a0 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java @@ -1,18 +1,15 @@ package net.lab1024.sa.base.common.json.deserializer; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; -import net.lab1024.sa.base.module.support.dict.domain.vo.DictValueVO; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** * 字典反序列化 @@ -27,7 +24,7 @@ import java.util.stream.Collectors; public class DictValueVoDeserializer extends JsonDeserializer { @Override - public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { + public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { List list = new ArrayList<>(); ObjectCodec objectCodec = jsonParser.getCodec(); JsonNode listOrObjectNode = objectCodec.readTree(jsonParser); diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java index ca770124..189be2f7 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java @@ -68,7 +68,7 @@ public class FileConfig implements WebMvcConfigurer { * @return */ @Bean - @ConditionalOnProperty(prefix = "file.storage", name = {"mode"}, havingValue = "cloud") + @ConditionalOnProperty(prefix = "file.storage", name = {"mode"}, havingValue = MODE_CLOUD) public AmazonS3 initAmazonS3() { ClientConfiguration clientConfig = new ClientConfiguration(); clientConfig.setProtocol(Protocol.HTTPS); diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java index 5d1357c3..7c1c24d5 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java @@ -33,7 +33,6 @@ public class RedisConfig { @Bean public RedisTemplate redisTemplate() { - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.registerModule(new JavaTimeModule()) .configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false) @@ -43,9 +42,11 @@ public class RedisConfig { .setSerializationInclusion(JsonInclude.Include.NON_NULL); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - // enableDefaultTyping 官方已弃用 所以改为 activateDefaultTyping om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); - jackson2JsonRedisSerializer.setObjectMapper(om); + + // 由于在 SpringBoot3 中 jackson2JsonRedisSerializer.setObjectMapper 弃用,所以改为 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(om, Object.class); + RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); template.setKeySerializer(new StringRedisSerializer()); diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java index ad9edf5d..f724dcec 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java @@ -107,16 +107,14 @@ public class DictCacheService { return null; } - List dictValueVOList = DICT_CACHE.get(valueCode); + List dictValueVOList = DICT_CACHE.get(keyCode); if (CollectionUtils.isEmpty(dictValueVOList)) { return null; } Optional option = dictValueVOList.stream().filter(e->e.getValueCode().equals(valueCode)).findFirst(); - if(option.isPresent()){ - return option.get(); - } - return null; + return option.orElse(null); } + public String selectValueNameByValueCodeSplit(String keyCode, String valueCodes) { if (StrUtil.isEmpty(valueCodes)) { return ""; diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml index db34a5ed..1cc90cb0 100644 --- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml +++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml @@ -9,7 +9,7 @@ AND ( INSTR(feedback_content,#{query.searchWord}) - OR INSTR(create_name,#{query.searchWord}) + OR INSTR(user_name,#{query.searchWord}) ) diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java index 24f07738..191965f9 100644 --- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java +++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java @@ -1,6 +1,5 @@ package net.lab1024.sa.admin.module.business.goods.domain.vo; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum; diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java index 7631db6a..9f8377a0 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java @@ -1,18 +1,15 @@ package net.lab1024.sa.base.common.json.deserializer; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; -import net.lab1024.sa.base.module.support.dict.domain.vo.DictValueVO; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** * 字典反序列化 @@ -27,7 +24,7 @@ import java.util.stream.Collectors; public class DictValueVoDeserializer extends JsonDeserializer { @Override - public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { + public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { List list = new ArrayList<>(); ObjectCodec objectCodec = jsonParser.getCodec(); JsonNode listOrObjectNode = objectCodec.readTree(jsonParser); diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java index ca770124..189be2f7 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java @@ -68,7 +68,7 @@ public class FileConfig implements WebMvcConfigurer { * @return */ @Bean - @ConditionalOnProperty(prefix = "file.storage", name = {"mode"}, havingValue = "cloud") + @ConditionalOnProperty(prefix = "file.storage", name = {"mode"}, havingValue = MODE_CLOUD) public AmazonS3 initAmazonS3() { ClientConfiguration clientConfig = new ClientConfiguration(); clientConfig.setProtocol(Protocol.HTTPS); diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java index 7279cbdb..4f7a12bc 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictCacheService.java @@ -107,16 +107,14 @@ public class DictCacheService { return null; } - List dictValueVOList = DICT_CACHE.get(valueCode); + List dictValueVOList = DICT_CACHE.get(keyCode); if (CollectionUtils.isEmpty(dictValueVOList)) { return null; } Optional option = dictValueVOList.stream().filter(e->e.getValueCode().equals(valueCode)).findFirst(); - if(option.isPresent()){ - return option.get(); - } - return null; + return option.orElse(null); } + public String selectValueNameByValueCodeSplit(String keyCode, String valueCodes) { if (StrUtil.isEmpty(valueCodes)) { return ""; diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml index db34a5ed..1cc90cb0 100644 --- a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml +++ b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/mapper/support/FeedbackMapper.xml @@ -9,7 +9,7 @@ AND ( INSTR(feedback_content,#{query.searchWord}) - OR INSTR(create_name,#{query.searchWord}) + OR INSTR(user_name,#{query.searchWord}) ) diff --git a/smart_admin_v3.sql b/smart_admin_v3.sql index 7c2e1941..89c48044 100644 --- a/smart_admin_v3.sql +++ b/smart_admin_v3.sql @@ -204,7 +204,7 @@ CREATE TABLE `t_dict_key` ( -- ---------------------------- -- Records of t_dict_key -- ---------------------------- -INSERT INTO `t_dict_key` VALUES (1, 'GODOS_PLACE', '商品产地', '商品产地的字典', 0, '2022-10-04 21:33:50', '2022-10-04 21:33:50'); +INSERT INTO `t_dict_key` VALUES (1, 'GOODS_PLACE', '商品产地', '商品产地的字典', 0, '2022-10-04 21:33:50', '2022-10-04 21:33:50'); -- ---------------------------- -- Table structure for t_dict_value From 45b5ba6795f926aee20f2686349bfbff7500b5bd Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Fri, 28 Mar 2025 21:21:02 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E9=A2=84=E8=A7=88=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/dict-preview/index.vue | 16 +++++++--------- .../src/views/business/erp/goods/goods-list.vue | 4 +--- .../employee/components/employee-list/index.vue | 2 +- .../src/components/dict-preview/index.vue | 16 +++++++--------- .../src/views/business/erp/goods/goods-list.vue | 3 +-- .../employee/components/employee-list/index.vue | 2 +- 6 files changed, 18 insertions(+), 25 deletions(-) diff --git a/smart-admin-web-javascript/src/components/dict-preview/index.vue b/smart-admin-web-javascript/src/components/dict-preview/index.vue index 30762b22..64204910 100644 --- a/smart-admin-web-javascript/src/components/dict-preview/index.vue +++ b/smart-admin-web-javascript/src/components/dict-preview/index.vue @@ -1,11 +1,6 @@ @@ -21,8 +16,11 @@ // 当前的值 value: [Number, String, Array], }); - const values = computed(() => { - if (props.value === null || typeof props.value === 'undefined' || props.value === '') return []; - return Array.isArray(props.value) ? props.value.map((item) => item.valueCode) : props.value.split(','); + const dictValueName = computed(() => { + if (props.value === null || typeof props.value === 'undefined' || props.value === '') return ''; + const valueCodeList = Array.isArray(props.value) ? props.value.map((item) => item.valueCode) : props.value.split(','); + const valueNameList = props.options.filter((item) => valueCodeList.includes(item.valueCode)).map((item) => item.valueName); + + return valueNameList.join(','); }); diff --git a/smart-admin-web-javascript/src/views/business/erp/goods/goods-list.vue b/smart-admin-web-javascript/src/views/business/erp/goods/goods-list.vue index 39f793b1..15b01a1f 100644 --- a/smart-admin-web-javascript/src/views/business/erp/goods/goods-list.vue +++ b/smart-admin-web-javascript/src/views/business/erp/goods/goods-list.vue @@ -120,7 +120,7 @@ {{ text }}