From cbb1a0743e64eef5d35ebffd39212f748c4af3e3 Mon Sep 17 00:00:00 2001 From: haoxr <1490493387@qq.com> Date: Thu, 7 Dec 2023 16:20:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20=E5=88=A0=E9=99=A4=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/plugin/dupsubmit/aspect/DuplicateSubmitAspect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/youlai/system/plugin/dupsubmit/aspect/DuplicateSubmitAspect.java b/src/main/java/com/youlai/system/plugin/dupsubmit/aspect/DuplicateSubmitAspect.java index 23777e92..321ddeac 100644 --- a/src/main/java/com/youlai/system/plugin/dupsubmit/aspect/DuplicateSubmitAspect.java +++ b/src/main/java/com/youlai/system/plugin/dupsubmit/aspect/DuplicateSubmitAspect.java @@ -45,10 +45,10 @@ public class DuplicateSubmitAspect { */ @Pointcut("@annotation(preventDuplicateSubmit)") public void preventDuplicateSubmitPointCut(PreventDuplicateSubmit preventDuplicateSubmit) { - log.info("定义防重复提交切点"); + } - @Around("preventDuplicateSubmitPointCut(preventDuplicateSubmit)") + @Around(value = "preventDuplicateSubmitPointCut(preventDuplicateSubmit)", argNames = "pjp,preventDuplicateSubmit") public Object doAround(ProceedingJoinPoint pjp, PreventDuplicateSubmit preventDuplicateSubmit) throws Throwable { String resubmitLockKey = generateResubmitLockKey(); From 227fe38315b0ab40a527ed5800dcdbadfdca849d Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Fri, 21 Jun 2024 23:51:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=B6=88=E6=81=AF=E6=94=AF=E6=8C=81=E5=8D=A0?= =?UTF-8?q?=E4=BD=8D=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/exception/BusinessException.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/youlai/system/common/exception/BusinessException.java b/src/main/java/com/youlai/system/common/exception/BusinessException.java index a9f96205..df423497 100644 --- a/src/main/java/com/youlai/system/common/exception/BusinessException.java +++ b/src/main/java/com/youlai/system/common/exception/BusinessException.java @@ -2,11 +2,12 @@ package com.youlai.system.common.exception; import com.youlai.system.common.result.IResultCode; import lombok.Getter; +import org.slf4j.helpers.MessageFormatter; /** * 自定义业务异常 * - * @author haoxr + * @author Ray Hao * @since 2022/7/31 */ @Getter @@ -19,17 +20,19 @@ public class BusinessException extends RuntimeException { this.resultCode = errorCode; } - public BusinessException(String message){ - super(message); - } - - public BusinessException(String message, Throwable cause){ + public BusinessException(String message, Throwable cause) { super(message, cause); } - public BusinessException(Throwable cause){ + public BusinessException(Throwable cause) { super(cause); } + public BusinessException(String message, Object... args) { + super(formatMessage(message, args)); + } + private static String formatMessage(String message, Object... args) { + return MessageFormatter.arrayFormat(message, args).getMessage(); + } } From c760f1a2f86111abd82eb65721218c63aa222717 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Sat, 22 Jun 2024 09:42:14 +0800 Subject: [PATCH 3/3] =?UTF-8?q?wip:=20=E5=AD=97=E5=85=B8=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 +- sql/mysql5/youlai_boot.sql | 20 +- sql/mysql8/youlai_boot.sql | 20 +- .../system/controller/SysDeptController.java | 7 +- .../system/controller/SysDictController.java | 100 ++------- .../system/controller/SysMenuController.java | 9 +- .../system/controller/SysRoleController.java | 7 +- .../system/controller/SysUserController.java | 7 +- .../system/converter/DeptConverter.java | 4 +- .../system/converter/DictConverter.java | 12 +- .../system/converter/DictItemConverter.java | 31 +++ .../system/converter/DictTypeConverter.java | 23 -- .../system/converter/RoleConverter.java | 6 +- .../system/converter/UserConverter.java | 6 +- .../system/mapper/SysDictItemMapper.java | 20 ++ .../youlai/system/mapper/SysDictMapper.java | 17 ++ .../system/mapper/SysDictTypeMapper.java | 14 -- .../youlai/system/model/bo/UserFormBO.java | 66 ------ .../youlai/system/model/entity/SysDict.java | 38 +--- .../{SysDictType.java => SysDictItem.java} | 28 ++- .../youlai/system/model/form/DictForm.java | 53 +++-- .../system/model/form/DictTypeForm.java | 26 --- .../system/model/query/DictPageQuery.java | 2 +- .../system/model/query/DictTypePageQuery.java | 2 +- .../youlai/system/model/vo/DictPageVO.java | 52 ++++- .../system/model/vo/DictTypePageVO.java | 23 -- .../annotation/PreventRepeatSubmit.java} | 9 +- .../aspect/DuplicateSubmitAspect.java | 14 +- .../system/service/SysDictItemService.java | 69 ++++++ .../youlai/system/service/SysDictService.java | 52 +++-- .../system/service/SysDictTypeService.java | 73 ------- .../service/impl/SysDeptServiceImpl.java | 6 +- .../service/impl/SysDictItemServiceImpl.java | 165 ++++++++++++++ .../service/impl/SysDictServiceImpl.java | 205 ++++++++++------- .../service/impl/SysDictTypeServiceImpl.java | 206 ------------------ .../service/impl/SysRoleMenuServiceImpl.java | 3 + .../service/impl/SysRoleServiceImpl.java | 6 +- .../service/impl/SysUserServiceImpl.java | 4 +- .../resources/mapper/SysDictItemMapper.xml | 25 +++ src/main/resources/mapper/SysDictMapper.xml | 28 +++ .../resources/mapper/SysDictTypeMapper.xml | 22 -- .../resources/templates/converter.java.vm | 6 +- .../resources/templates/serviceImpl.java.vm | 6 +- 43 files changed, 730 insertions(+), 771 deletions(-) create mode 100644 src/main/java/com/youlai/system/converter/DictItemConverter.java delete mode 100644 src/main/java/com/youlai/system/converter/DictTypeConverter.java create mode 100644 src/main/java/com/youlai/system/mapper/SysDictItemMapper.java delete mode 100644 src/main/java/com/youlai/system/mapper/SysDictTypeMapper.java delete mode 100644 src/main/java/com/youlai/system/model/bo/UserFormBO.java rename src/main/java/com/youlai/system/model/entity/{SysDictType.java => SysDictItem.java} (57%) delete mode 100644 src/main/java/com/youlai/system/model/form/DictTypeForm.java delete mode 100644 src/main/java/com/youlai/system/model/vo/DictTypePageVO.java rename src/main/java/com/youlai/system/plugin/{dupsubmit/annotation/PreventDuplicateSubmit.java => norepeat/annotation/PreventRepeatSubmit.java} (55%) rename src/main/java/com/youlai/system/plugin/{dupsubmit => norepeat}/aspect/DuplicateSubmitAspect.java (82%) create mode 100644 src/main/java/com/youlai/system/service/SysDictItemService.java delete mode 100644 src/main/java/com/youlai/system/service/SysDictTypeService.java create mode 100644 src/main/java/com/youlai/system/service/impl/SysDictItemServiceImpl.java delete mode 100644 src/main/java/com/youlai/system/service/impl/SysDictTypeServiceImpl.java create mode 100644 src/main/resources/mapper/SysDictItemMapper.xml delete mode 100644 src/main/resources/mapper/SysDictTypeMapper.xml diff --git a/pom.xml b/pom.xml index 3d99d22b..5ac9dffa 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.youlai youlai-boot - 2.8.1 + 2.9.0 基于 Java 17 + SpringBoot 3 + Spring Security 构建的权限管理系统。 @@ -197,6 +197,13 @@ velocity-engine-core ${velocity.version} + + + com.baomidou + dynamic-datasource-spring-boot3-starter + 4.2.0 + + diff --git a/sql/mysql5/youlai_boot.sql b/sql/mysql5/youlai_boot.sql index 3e824022..7e971f74 100644 --- a/sql/mysql5/youlai_boot.sql +++ b/sql/mysql5/youlai_boot.sql @@ -49,7 +49,7 @@ INSERT INTO `sys_dept` VALUES (3, '测试部门', 1, '0,1', 1, 1, 0, NULL, '2022 DROP TABLE IF EXISTS `sys_dict`; CREATE TABLE `sys_dict` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `type_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典类型编码', + `type_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典编码', `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典项名称', `value` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典项值', `sort` int NULL DEFAULT 0 COMMENT '排序', @@ -69,10 +69,10 @@ INSERT INTO `sys_dict` VALUES (2, 'gender', '女', '2', 2, 1, 0, NULL, '2019-04- INSERT INTO `sys_dict` VALUES (3, 'gender', '未知', '0', 1, 1, 0, NULL, '2020-10-17 08:09:31', '2020-10-17 08:09:31'); -- ---------------------------- --- Table structure for sys_dict_type +-- Table structure for sys_dict -- ---------------------------- -DROP TABLE IF EXISTS `sys_dict_type`; -CREATE TABLE `sys_dict_type` ( +DROP TABLE IF EXISTS `sys_dict`; +CREATE TABLE `sys_dict` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键 ', `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '类型名称', `code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '类型编码', @@ -82,12 +82,12 @@ CREATE TABLE `sys_dict_type` ( `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `type_code`(`code` ASC) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '字典类型表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '字典表' ROW_FORMAT = DYNAMIC; -- ---------------------------- --- Records of sys_dict_type +-- Records of sys_dict -- ---------------------------- -INSERT INTO `sys_dict_type` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2022-06-12 16:21:28'); +INSERT INTO `sys_dict` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2022-06-12 16:21:28'); -- ---------------------------- -- Table structure for sys_menu @@ -148,9 +148,9 @@ INSERT INTO `sys_menu` VALUES (75, 4, '0,1,4', '菜单删除', 4, '', NULL, 'sys INSERT INTO `sys_menu` VALUES (76, 5, '0,1,5', '部门新增', 4, '', NULL, 'sys:dept:add', NULL, NULL, 1, 1, '', NULL, '2023-05-20 23:45:00', '2023-05-20 23:45:00', NULL); INSERT INTO `sys_menu` VALUES (77, 5, '0,1,5', '部门编辑', 4, '', NULL, 'sys:dept:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-20 23:46:16', '2023-05-20 23:46:16', NULL); INSERT INTO `sys_menu` VALUES (78, 5, '0,1,5', '部门删除', 4, '', NULL, 'sys:dept:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-20 23:46:36', '2023-05-20 23:46:36', NULL); -INSERT INTO `sys_menu` VALUES (79, 6, '0,1,6', '字典类型新增', 4, '', NULL, 'sys:dict_type:add', NULL, NULL, 1, 1, '', NULL, '2023-05-21 00:16:06', '2023-05-21 00:16:06', NULL); -INSERT INTO `sys_menu` VALUES (81, 6, '0,1,6', '字典类型编辑', 4, '', NULL, 'sys:dict_type:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-21 00:27:37', '2023-05-21 00:27:37', NULL); -INSERT INTO `sys_menu` VALUES (84, 6, '0,1,6', '字典类型删除', 4, '', NULL, 'sys:dict_type:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-21 00:29:39', '2023-05-21 00:29:39', NULL); +INSERT INTO `sys_menu` VALUES (79, 6, '0,1,6', '字典新增', 4, '', NULL, 'sys:dict_type:add', NULL, NULL, 1, 1, '', NULL, '2023-05-21 00:16:06', '2023-05-21 00:16:06', NULL); +INSERT INTO `sys_menu` VALUES (81, 6, '0,1,6', '字典编辑', 4, '', NULL, 'sys:dict_type:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-21 00:27:37', '2023-05-21 00:27:37', NULL); +INSERT INTO `sys_menu` VALUES (84, 6, '0,1,6', '字典删除', 4, '', NULL, 'sys:dict_type:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-21 00:29:39', '2023-05-21 00:29:39', NULL); INSERT INTO `sys_menu` VALUES (85, 6, '0,1,6', '字典数据新增', 4, '', NULL, 'sys:dict:add', NULL, NULL, 1, 4, '', NULL, '2023-05-21 00:46:56', '2023-05-21 00:47:06', NULL); INSERT INTO `sys_menu` VALUES (86, 6, '0,1,6', '字典数据编辑', 4, '', NULL, 'sys:dict:edit', NULL, NULL, 1, 5, '', NULL, '2023-05-21 00:47:36', '2023-05-21 00:47:36', NULL); INSERT INTO `sys_menu` VALUES (87, 6, '0,1,6', '字典数据删除', 4, '', NULL, 'sys:dict:delete', NULL, NULL, 1, 6, '', NULL, '2023-05-21 00:48:10', '2023-05-21 00:48:20', NULL); diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index 41060087..6b52d74a 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -51,7 +51,7 @@ INSERT INTO `sys_dept` VALUES (3, '测试部门', 1, '0,1', 1, 1, 0, NULL, '2022 DROP TABLE IF EXISTS `sys_dict`; CREATE TABLE `sys_dict` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `type_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典类型编码', + `type_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典编码', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典项名称', `value` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典项值', `sort` int NULL DEFAULT 0 COMMENT '排序', @@ -71,10 +71,10 @@ INSERT INTO `sys_dict` VALUES (2, 'gender', '女', '2', 2, 1, 0, NULL, '2019-04- INSERT INTO `sys_dict` VALUES (3, 'gender', '未知', '0', 1, 1, 0, NULL, '2020-10-17 08:09:31', '2020-10-17 08:09:31'); -- ---------------------------- --- Table structure for sys_dict_type +-- Table structure for sys_dict -- ---------------------------- -DROP TABLE IF EXISTS `sys_dict_type`; -CREATE TABLE `sys_dict_type` ( +DROP TABLE IF EXISTS `sys_dict`; +CREATE TABLE `sys_dict` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键 ', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '类型名称', `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '类型编码', @@ -84,12 +84,12 @@ CREATE TABLE `sys_dict_type` ( `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `type_code`(`code` ASC) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表' ROW_FORMAT = DYNAMIC; -- ---------------------------- --- Records of sys_dict_type +-- Records of sys_dict -- ---------------------------- -INSERT INTO `sys_dict_type` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2022-06-12 16:21:28'); +INSERT INTO `sys_dict` VALUES (1, '性别', 'gender', 1, NULL, '2019-12-06 19:03:32', '2022-06-12 16:21:28'); -- ---------------------------- -- Table structure for sys_menu @@ -150,9 +150,9 @@ INSERT INTO `sys_menu` VALUES (75, 4, '0,1,4', '菜单删除', 4, '', NULL, 'sys INSERT INTO `sys_menu` VALUES (76, 5, '0,1,5', '部门新增', 4, '', NULL, 'sys:dept:add', NULL, NULL, 1, 1, '', NULL, '2023-05-20 23:45:00', '2023-05-20 23:45:00', NULL); INSERT INTO `sys_menu` VALUES (77, 5, '0,1,5', '部门编辑', 4, '', NULL, 'sys:dept:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-20 23:46:16', '2023-05-20 23:46:16', NULL); INSERT INTO `sys_menu` VALUES (78, 5, '0,1,5', '部门删除', 4, '', NULL, 'sys:dept:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-20 23:46:36', '2023-05-20 23:46:36', NULL); -INSERT INTO `sys_menu` VALUES (79, 6, '0,1,6', '字典类型新增', 4, '', NULL, 'sys:dict_type:add', NULL, NULL, 1, 1, '', NULL, '2023-05-21 00:16:06', '2023-05-21 00:16:06', NULL); -INSERT INTO `sys_menu` VALUES (81, 6, '0,1,6', '字典类型编辑', 4, '', NULL, 'sys:dict_type:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-21 00:27:37', '2023-05-21 00:27:37', NULL); -INSERT INTO `sys_menu` VALUES (84, 6, '0,1,6', '字典类型删除', 4, '', NULL, 'sys:dict_type:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-21 00:29:39', '2023-05-21 00:29:39', NULL); +INSERT INTO `sys_menu` VALUES (79, 6, '0,1,6', '字典新增', 4, '', NULL, 'sys:dict_type:add', NULL, NULL, 1, 1, '', NULL, '2023-05-21 00:16:06', '2023-05-21 00:16:06', NULL); +INSERT INTO `sys_menu` VALUES (81, 6, '0,1,6', '字典编辑', 4, '', NULL, 'sys:dict_type:edit', NULL, NULL, 1, 2, '', NULL, '2023-05-21 00:27:37', '2023-05-21 00:27:37', NULL); +INSERT INTO `sys_menu` VALUES (84, 6, '0,1,6', '字典删除', 4, '', NULL, 'sys:dict_type:delete', NULL, NULL, 1, 3, '', NULL, '2023-05-21 00:29:39', '2023-05-21 00:29:39', NULL); INSERT INTO `sys_menu` VALUES (85, 6, '0,1,6', '字典数据新增', 4, '', NULL, 'sys:dict:add', NULL, NULL, 1, 4, '', NULL, '2023-05-21 00:46:56', '2023-05-21 00:47:06', NULL); INSERT INTO `sys_menu` VALUES (86, 6, '0,1,6', '字典数据编辑', 4, '', NULL, 'sys:dict:edit', NULL, NULL, 1, 5, '', NULL, '2023-05-21 00:47:36', '2023-05-21 00:47:36', NULL); INSERT INTO `sys_menu` VALUES (87, 6, '0,1,6', '字典数据删除', 4, '', NULL, 'sys:dict:delete', NULL, NULL, 1, 6, '', NULL, '2023-05-21 00:48:10', '2023-05-21 00:48:20', NULL); diff --git a/src/main/java/com/youlai/system/controller/SysDeptController.java b/src/main/java/com/youlai/system/controller/SysDeptController.java index 346180b2..df14f8ae 100644 --- a/src/main/java/com/youlai/system/controller/SysDeptController.java +++ b/src/main/java/com/youlai/system/controller/SysDeptController.java @@ -1,6 +1,6 @@ package com.youlai.system.controller; -import com.youlai.system.plugin.dupsubmit.annotation.PreventDuplicateSubmit; +import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit; import com.youlai.system.common.model.Option; import com.youlai.system.common.result.Result; import com.youlai.system.model.form.DeptForm; @@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -33,7 +32,7 @@ public class SysDeptController { @Operation(summary = "获取部门列表") @GetMapping public Result> listDepartments( - @ParameterObject DeptQuery queryParams + DeptQuery queryParams ) { List list = deptService.listDepartments(queryParams); return Result.success(list); @@ -58,7 +57,7 @@ public class SysDeptController { @Operation(summary = "新增部门") @PostMapping @PreAuthorize("@ss.hasPerm('sys:dept:add')") - @PreventDuplicateSubmit + @PreventRepeatSubmit public Result saveDept( @Valid @RequestBody DeptForm formData ) { diff --git a/src/main/java/com/youlai/system/controller/SysDictController.java b/src/main/java/com/youlai/system/controller/SysDictController.java index 9e1fecca..616e72df 100644 --- a/src/main/java/com/youlai/system/controller/SysDictController.java +++ b/src/main/java/com/youlai/system/controller/SysDictController.java @@ -3,26 +3,24 @@ package com.youlai.system.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.youlai.system.common.result.PageResult; import com.youlai.system.common.result.Result; -import com.youlai.system.plugin.dupsubmit.annotation.PreventDuplicateSubmit; -import com.youlai.system.model.form.DictForm; -import com.youlai.system.model.form.DictTypeForm; -import com.youlai.system.model.query.DictPageQuery; -import com.youlai.system.model.query.DictTypePageQuery; import com.youlai.system.model.vo.DictPageVO; -import com.youlai.system.model.vo.DictTypePageVO; -import com.youlai.system.common.model.Option; +import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit; +import com.youlai.system.model.form.DictForm; +import com.youlai.system.model.query.DictTypePageQuery; import com.youlai.system.service.SysDictService; -import com.youlai.system.service.SysDictTypeService; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import java.util.List; - +/** + * 字典控制层 + * + * @author Ray Hao + * @since 2.9.0 + */ @Tag(name = "06.字典接口") @RestController @RequestMapping("/api/v1/dict") @@ -31,21 +29,19 @@ public class SysDictController { private final SysDictService dictService; - private final SysDictTypeService dictTypeService; - @Operation(summary = "字典分页列表") @GetMapping("/page") public PageResult getDictPage( - @ParameterObject DictPageQuery queryParams + DictTypePageQuery queryParams ) { Page result = dictService.getDictPage(queryParams); return PageResult.success(result); } - @Operation(summary = "字典数据表单数据") + @Operation(summary = "字典表单") @GetMapping("/{id}/form") public Result getDictForm( - @Parameter(description ="字典ID") @PathVariable Long id + @Parameter(description = "字典ID") @PathVariable Long id ) { DictForm formData = dictService.getDictForm(id); return Result.success(formData); @@ -54,11 +50,9 @@ public class SysDictController { @Operation(summary = "新增字典") @PostMapping @PreAuthorize("@ss.hasPerm('sys:dict:add')") - @PreventDuplicateSubmit - public Result saveDict( - @RequestBody DictForm DictForm - ) { - boolean result = dictService.saveDict(DictForm); + @PreventRepeatSubmit + public Result saveDict(@RequestBody DictForm formData) { + boolean result = dictService.saveDict(formData); return Result.judge(result); } @@ -76,70 +70,12 @@ public class SysDictController { @Operation(summary = "删除字典") @DeleteMapping("/{ids}") @PreAuthorize("@ss.hasPerm('sys:dict:delete')") - public Result deleteDict( - @Parameter(description ="字典ID,多个以英文逗号(,)拼接") @PathVariable String ids + public Result deleteDictionaries( + @Parameter(description = "字典ID,多个以英文逗号(,)拼接") @PathVariable String ids ) { - boolean result = dictService.deleteDict(ids); + boolean result = dictService.deleteDictByIds(ids); return Result.judge(result); } - @Operation(summary = "字典下拉列表") - @GetMapping("/{typeCode}/options") - public Result> listDictOptions( - @Parameter(description ="字典类型编码") @PathVariable String typeCode - ) { - List