From 2cc15adf5ac6675b8d9acbfb1aa1e23d1bf9b291 Mon Sep 17 00:00:00 2001 From: xixiaowei Date: Thu, 23 Dec 2021 09:07:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=A2=98=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel-s-system/pom.xml | 2 +- .../kernel/system/api/ThemeServiceApi.java | 11 + .../kernel/system/api/TitleServiceApi.java | 11 - .../enums/theme/SysThemeExceptionEnum.java | 45 ++++ .../theme/SysThemeTemplateExceptionEnum.java | 40 +++ .../SysThemeTemplateFieldExceptionEnum.java | 30 +++ .../enums/title/SysTitleExceptionEnum.java | 51 ---- .../api/pojo/theme/SysThemeRequest.java | 48 ++++ .../pojo/theme/SysThemeTemplateDataDTO.java | 63 +++++ .../theme/SysThemeTemplateFieldRequest.java | 66 +++++ .../pojo/theme/SysThemeTemplateRequest.java | 47 ++++ .../api/pojo/title/SysTitleRequest.java | 90 ------- .../pom.xml | 6 +- .../theme/controller/SysThemeController.java | 98 ++++++++ .../SysThemeTemplateController.java | 98 ++++++++ .../SysThemeTemplateFieldController.java | 86 +++++++ .../system/modular/theme/entity/SysTheme.java | 57 +++++ .../theme/entity/SysThemeTemplate.java | 57 +++++ .../theme/entity/SysThemeTemplateField.java | 71 ++++++ .../theme/entity/SysThemeTemplateRel.java | 43 ++++ .../modular/theme/mapper/SysThemeMapper.java | 15 ++ .../mapper/SysThemeTemplateFieldMapper.java | 14 ++ .../theme/mapper/SysThemeTemplateMapper.java | 25 ++ .../mapper/SysThemeTemplateRelMapper.java | 14 ++ .../theme/mapper/mapping/SysThemeMapper.xml} | 4 +- .../mapping/SysThemeTemplateFieldMapper.xml | 5 + .../mapper/mapping/SysThemeTemplateMapper.xml | 41 +++ .../mapping/SysThemeTemplateRelMapper.xml | 5 + .../theme/service/SysThemeService.java | 68 +++++ .../service/SysThemeTemplateFieldService.java | 46 ++++ .../service/SysThemeTemplateRelService.java | 14 ++ .../service/SysThemeTemplateService.java | 67 +++++ .../service/impl/SysThemeServiceImpl.java | 176 +++++++++++++ .../SysThemeTemplateFieldServiceImpl.java | 106 ++++++++ .../impl/SysThemeTemplateRelServiceImpl.java | 18 ++ .../impl/SysThemeTemplateServiceImpl.java | 167 ++++++++++++ .../system-business-title/README.md | 1 - .../title/controller/SysTitleController.java | 100 -------- .../system/modular/title/entity/SysTitle.java | 99 -------- .../modular/title/mapper/SysTitleMapper.java | 14 -- .../title/service/SysTitleService.java | 80 ------ .../service/impl/SysTitleServiceImpl.java | 238 ------------------ 42 files changed, 1648 insertions(+), 689 deletions(-) create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/ThemeServiceApi.java delete mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/TitleServiceApi.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeExceptionEnum.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateExceptionEnum.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateFieldExceptionEnum.java delete mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/title/SysTitleExceptionEnum.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateDataDTO.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java delete mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/title/SysTitleRequest.java rename kernel-s-system/{system-business-title => system-business-theme}/pom.xml (93%) create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeController.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateController.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateFieldController.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeMapper.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateFieldMapper.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateMapper.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateRelMapper.java rename kernel-s-system/{system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/mapping/SysTitleMapper.xml => system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeMapper.xml} (59%) create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateFieldMapper.xml create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateRelMapper.xml create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeService.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateFieldService.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateRelService.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateService.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeServiceImpl.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java create mode 100644 kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateServiceImpl.java delete mode 100644 kernel-s-system/system-business-title/README.md delete mode 100644 kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/controller/SysTitleController.java delete mode 100644 kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/entity/SysTitle.java delete mode 100644 kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/SysTitleMapper.java delete mode 100644 kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/SysTitleService.java delete mode 100644 kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/impl/SysTitleServiceImpl.java diff --git a/kernel-s-system/pom.xml b/kernel-s-system/pom.xml index 4bee0ce42..203919376 100644 --- a/kernel-s-system/pom.xml +++ b/kernel-s-system/pom.xml @@ -24,10 +24,10 @@ system-business-role system-business-menu system-business-notice - system-business-title system-integration-beetl system-integration-rest system-spring-boot-starter + system-business-theme diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/ThemeServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/ThemeServiceApi.java new file mode 100644 index 000000000..8611e90f2 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/ThemeServiceApi.java @@ -0,0 +1,11 @@ +package cn.stylefeng.roses.kernel.system.api; + +/** + * 系统主题Api + * + * @author xixiaowei + * @date 2021/12/17 10:25 + */ +public interface ThemeServiceApi { + +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/TitleServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/TitleServiceApi.java deleted file mode 100644 index d5617c460..000000000 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/TitleServiceApi.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.stylefeng.roses.kernel.system.api; - -/** - * 标题图片配置api - * - * @author xixiaowei - * @date 2021/12/13 17:20 - */ -public interface TitleServiceApi { - -} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeExceptionEnum.java new file mode 100644 index 000000000..90f472f4c --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeExceptionEnum.java @@ -0,0 +1,45 @@ +package cn.stylefeng.roses.kernel.system.api.exception.enums.theme; + +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; +import lombok.Getter; + +@Getter +public enum SysThemeExceptionEnum implements AbstractExceptionEnum { + + /** + * 系统主题不存在 + */ + THEME_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "121", "系统主题不存在"), + + /** + * 已启用的系统主题不允许删除 + */ + THEME_NOT_ALLOW_DELETE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "122", "已启用的系统主题不允许删除"), + + /** + * 禁用的系统主题模板不允许使用 + */ + THEME_TEMPLATE_IS_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "123", "禁用的系统主题模板不允许使用"), + + /** + * 唯一启用的系统主题不允许禁用 + */ + UNIQUE_ENABLE_NOT_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "124", "唯一启用的系统主题不允许禁用"); + + /** + * 错误编码 + */ + private final String errorCode; + + /** + * 提示用户信息 + */ + private final String userTip; + + SysThemeExceptionEnum(String errorCode, String userTip) { + this.errorCode = errorCode; + this.userTip = userTip; + } +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateExceptionEnum.java new file mode 100644 index 000000000..507ce3170 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateExceptionEnum.java @@ -0,0 +1,40 @@ +package cn.stylefeng.roses.kernel.system.api.exception.enums.theme; + +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; +import lombok.Getter; + +@Getter +public enum SysThemeTemplateExceptionEnum implements AbstractExceptionEnum { + + /** + * 系统主题模板不存在 + */ + TEMPLATE_NOT_EXIT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "111", "系统主题模板不存在"), + + /** + * 已启用的系统主题模板不允许删除 + */ + TEMPLATE_IS_ENABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "112", "已启用的系统主题模板不允许删除"), + + /** + * 系统主题模板正在被使用,不允许操作 + */ + TEMPLATE_IS_USED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "113", "系统主题模板正在被使用,不允许操作"); + + /** + * 错误编码 + */ + private final String errorCode; + + /** + * 提示用户信息 + */ + private final String userTip; + + SysThemeTemplateExceptionEnum(String errorCode, String userTip) { + this.errorCode = errorCode; + this.userTip = userTip; + } +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateFieldExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateFieldExceptionEnum.java new file mode 100644 index 000000000..995a0dac1 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/theme/SysThemeTemplateFieldExceptionEnum.java @@ -0,0 +1,30 @@ +package cn.stylefeng.roses.kernel.system.api.exception.enums.theme; + +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; +import lombok.Getter; + +@Getter +public enum SysThemeTemplateFieldExceptionEnum implements AbstractExceptionEnum { + + /** + * 系统主题模板属性不存在 + */ + FIELD_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "101", "系统主题模板属性不存在"); + + /** + * 错误编码 + */ + private final String errorCode; + + /** + * 提示用户信息 + */ + private final String userTip; + + SysThemeTemplateFieldExceptionEnum(String errorCode, String userTip) { + this.errorCode = errorCode; + this.userTip = userTip; + } +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/title/SysTitleExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/title/SysTitleExceptionEnum.java deleted file mode 100644 index aa5daad78..000000000 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/title/SysTitleExceptionEnum.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.stylefeng.roses.kernel.system.api.exception.enums.title; - -import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; -import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; -import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; -import lombok.Getter; - -/** - * 标题图片配置管理异常枚举 - * - * @author xixiaowei - * @date 2021/12/15 14:47 - */ -@Getter -public enum SysTitleExceptionEnum implements AbstractExceptionEnum { - - /** - * 标题图片配置不存在 - */ - TITLE_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "101", "标题图片配置不存在,id为:{}"), - - /** - * 启用的配置不允许被删除 - */ - ENABLE_NOT_ALLOW_DELETE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "102", "启用的配置不允许被删除,id为:{}"), - - /** - * 未启用的配置不允许被编辑 - */ - DISABLE_NOT_ALLOW_EDIT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "103", "未启用的配置不允许被编辑,id为:{}"), - - /** - * 唯一启用的配置不允许被删除 - */ - UNIQUE_ENABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "104", "唯一启用的配置不允许禁用,id为:{}"); - - /** - * 错误编码 - */ - private final String errorCode; - - /** - * 提示用户信息 - */ - private final String userTip; - - SysTitleExceptionEnum(String errorCode, String userTip) { - this.errorCode = errorCode; - this.userTip = userTip; - } -} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java new file mode 100644 index 000000000..1a0f07d6e --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeRequest.java @@ -0,0 +1,48 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.theme; + +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 系统主题参数 + * + * @author xixiaowei + * @date 2021/12/17 16:20 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class SysThemeRequest extends BaseRequest { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class}) + @ChineseDescription("主键ID") + private Long themeId; + + /** + * 主题名称 + */ + @NotBlank(message = "主题名称不能为空", groups = {add.class, edit.class}) + @ChineseDescription("主题名称") + private String themeName; + + /** + * 主题属性(JSON格式) + */ + @NotBlank(message = "主题属性不能为空", groups = {add.class, edit.class}) + @ChineseDescription("主题属性") + private String themeValue; + + /** + * 主题模板ID + */ + @NotNull(message = "主题模板ID不能为空", groups = {add.class, edit.class}) + @ChineseDescription("主题模板ID") + private Long templateId; +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateDataDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateDataDTO.java new file mode 100644 index 000000000..c51806e29 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateDataDTO.java @@ -0,0 +1,63 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.theme; + +import lombok.Data; + +/** + * 系统主题模板详细查询返回的数据封装 + * + * @author xixiaowei + * @date 2021/12/17 15:20 + */ +@Data +public class SysThemeTemplateDataDTO { + + /** + * 主键ID + */ + private Long templateId; + + /** + * 主题模板名称 + */ + private String templateName; + + /** + * 主题模板编码 + */ + private String templateCode; + + /** + * 主键ID + */ + private Long fieldId; + + /** + * 属性名称 + */ + private String fieldName; + + /** + * 属性编码 + */ + private String fieldCode; + + /** + * 属性展示类型(字典维护) + */ + private String fieldType; + + /** + * 是否必填:Y-必填,N-非必填 + */ + private Character fieldRequired; + + /** + * 属性长度 + */ + private Integer fieldLength; + + /** + * 属性描述 + */ + private String fieldDescription; +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java new file mode 100644 index 000000000..9fb87f352 --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateFieldRequest.java @@ -0,0 +1,66 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.theme; + +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 系统主题模板属性参数 + * + * @author xixiaowei + * @date 2021/12/17 10:42 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class SysThemeTemplateFieldRequest extends BaseRequest { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = {edit.class, delete.class, detail.class}) + @ChineseDescription("主键ID") + private Long fieldId; + + /** + * 模板ID + */ + @NotNull(message = "模板ID不能为空", groups = {add.class, delete.class}) + @ChineseDescription("模板ID") + private Long templateId; + + /** + * 属性名称 + */ + @NotBlank(message = "属性名称不能为空", groups = {add.class, edit.class}) + @ChineseDescription("属性名称") + private String fieldName; + + /** + * 属性展示类型(字典维护) + */ + @NotBlank(message = "属性展示类型不能为空", groups = {add.class, edit.class}) + @ChineseDescription("属性展示类型") + private String fieldType; + + /** + * 是否必填:Y-必填,N-非必填 + */ + @ChineseDescription("是否必填") + private Character fieldRequired; + + /** + * 属性长度 + */ + @ChineseDescription("属性长度") + private Integer fieldLength; + + /** + * 属性描述 + */ + @ChineseDescription("属性描述") + private String fieldDescription; +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java new file mode 100644 index 000000000..66d1c796f --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeTemplateRequest.java @@ -0,0 +1,47 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.theme; + +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 系统主题模板参数 + * + * @author xixiaowei + * @date 2021/12/17 16:19 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class SysThemeTemplateRequest extends BaseRequest { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class}) + @ChineseDescription("主键ID") + private Long templateId; + + /** + * 主题模板名称 + */ + @NotBlank(message = "主题模板名称不能为空", groups = {add.class, edit.class}) + @ChineseDescription("主题模板名称") + private String templateName; + + /** + * 主题模板类型:1-系统类型,2-业务类型 + */ + @NotNull(message = "主题模板类型不能为空", groups = {add.class, edit.class}) + @ChineseDescription("主题模板类型") + private Short templateType; + + /** + * 主题模板启用状态:Y-启用,N-禁用 + */ + @ChineseDescription("主题模板启用状态") + private Character statusFlag; +} diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/title/SysTitleRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/title/SysTitleRequest.java deleted file mode 100644 index ba3486810..000000000 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/title/SysTitleRequest.java +++ /dev/null @@ -1,90 +0,0 @@ -package cn.stylefeng.roses.kernel.system.api.pojo.title; - -import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.web.multipart.MultipartFile; - -import javax.validation.constraints.NotNull; - -/** - * 标题图片配置信息参数 - * - * @author xixiaowei - * @date 2021/12/13 17:01 - */ -@EqualsAndHashCode(callSuper = true) -@Data -public class SysTitleRequest extends BaseRequest { - - /** - * 标题id - */ - @NotNull(message = "titleId不能为空", groups = {edit.class, delete.class, detail.class}) - @ChineseDescription("标题id") - private Long titleId; - - /** - * 标题名称 - */ - @NotNull(message = "标题名称不能为空", groups = {add.class, edit.class}) - @ChineseDescription("标题名称") - private String titleName; - - /** - * 公司名称 - */ - @NotNull(message = "公司名称不能为空", groups = {add.class, edit.class}) - @ChineseDescription("公司名称") - private String companyName; - - /** - * 平台名称 - */ - @NotNull(message = "平台名称不能为空", groups = {add.class, edit.class}) - @ChineseDescription("平台名称") - private String platformName; - - /** - * 平台英文名称 - */ - @NotNull(message = "平台英文名称不能为空", groups = {add.class, edit.class}) - @ChineseDescription("平台英文名称") - private String platformEnglishName; - - /** - * 背景图片 - */ - @NotNull(message = "背景图片不能为空", groups = {add.class, edit.class}) - @ChineseDescription("背景图片") - private MultipartFile backgroundImage; - - /** - * 公司logo - */ - @NotNull(message = "公司logo不能为空", groups = {add.class, edit.class}) - @ChineseDescription("公司logo") - private MultipartFile companyLogo; - - /** - * 浏览器icon - */ - @NotNull(message = "浏览器icon不能为空", groups = {add.class, edit.class}) - @ChineseDescription("浏览器icon") - private MultipartFile browserIcon; - - /** - * 首页名称 - */ - @NotNull(message = "首页名称不能为空", groups = {add.class, edit.class}) - @ChineseDescription("首页名称") - private String pageName; - - /** - * 首页图标 - */ - @NotNull(message = "首页图标不能为空", groups = {add.class, edit.class}) - @ChineseDescription("首页图标") - private MultipartFile pageImage; -} diff --git a/kernel-s-system/system-business-title/pom.xml b/kernel-s-system/system-business-theme/pom.xml similarity index 93% rename from kernel-s-system/system-business-title/pom.xml rename to kernel-s-system/system-business-theme/pom.xml index a853990ff..df4636a8f 100644 --- a/kernel-s-system/system-business-title/pom.xml +++ b/kernel-s-system/system-business-theme/pom.xml @@ -9,7 +9,7 @@ 4.0.0 - system-business-title + system-business-theme 8 @@ -17,6 +17,7 @@ + cn.stylefeng.roses @@ -54,10 +55,11 @@ spring-boot-starter-web + cn.stylefeng.roses file-business - 7.1.6 + ${roses.version} \ No newline at end of file diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeController.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeController.java new file mode 100644 index 000000000..92d296a21 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeController.java @@ -0,0 +1,98 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.controller; + +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 系统主题控制器 + * + * @author xixiaowei + * @date 2021/12/17 16:40 + */ +@RestController +@ApiResource(name = "系统主题管理") +public class SysThemeController { + + @Resource + private SysThemeService sysThemeService; + + /** + * 增加系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:43 + */ + @PostResource(name = "增加系统主题", path = "/sysTheme/add") + public ResponseData add(@RequestBody @Validated(SysThemeRequest.add.class) SysThemeRequest sysThemeParam) { + sysThemeService.add(sysThemeParam); + return new SuccessResponseData(); + } + + /** + * 删除系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:45 + */ + @PostResource(name = "删除系统主题", path = "/sysTheme/del") + public ResponseData del(@RequestBody @Validated(SysThemeRequest.delete.class) SysThemeRequest sysThemeParam) { + sysThemeService.del(sysThemeParam); + return new SuccessResponseData(); + } + + /** + * 修改系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:50 + */ + @PostResource(name = "修改系统主题", path = "/sysTheme/edit") + public ResponseData edit(@RequestBody @Validated(SysThemeRequest.edit.class) SysThemeRequest sysThemeParam) { + sysThemeService.edit(sysThemeParam); + return new SuccessResponseData(); + } + + /** + * 查询系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:58 + */ + @GetResource(name = "查询系统主题", path = "/sysTheme/findPage") + public ResponseData findPage(SysThemeRequest sysThemeParam) { + return new SuccessResponseData(sysThemeService.findPage(sysThemeParam)); + } + + /** + * 查询系统主题详情 + * + * @author xixiaowei + * @date 2021/12/17 17:04 + */ + @GetResource(name = "查询系统主题详情", path = "/sysTheme/detail") + public ResponseData detail(@Validated(SysThemeRequest.updateStatus.class) SysThemeRequest sysThemeParam) { + return new SuccessResponseData(sysThemeService.detail(sysThemeParam)); + } + + /** + * 修改系统主题启用状态 + * + * @author xixiaowei + * @date 2021/12/17 17:32 + */ + @PostResource(name = "修改系统主题启用状态", path = "/sysTheme/updateStatus") + public ResponseData updateThemeStatus(@RequestBody @Validated(SysThemeRequest.updateStatus.class) SysThemeRequest sysThemeParam) { + sysThemeService.updateThemeStatus(sysThemeParam); + return new SuccessResponseData(); + } +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateController.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateController.java new file mode 100644 index 000000000..d3780d7d6 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateController.java @@ -0,0 +1,98 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.controller; + +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 系统主题模板控制器 + * + * @author xixiaowei + * @date 2021/12/17 13:53 + */ +@RestController +@ApiResource(name = "系统主题模板管理") +public class SysThemeTemplateController { + + @Resource + private SysThemeTemplateService sysThemeTemplateService; + + /** + * 增加系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:16 + */ + @PostResource(name = "增加系统主题模板", path = "/sysThemeTemplate/add") + public ResponseData add(@RequestBody @Validated(SysThemeTemplateRequest.add.class) SysThemeTemplateRequest sysThemeTemplateParam) { + sysThemeTemplateService.add(sysThemeTemplateParam); + return new SuccessResponseData(); + } + + /** + * 编辑系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:36 + */ + @PostResource(name = "编辑系统主题模板", path = "/sysThemeTemplate/edit") + public ResponseData edit(@RequestBody @Validated(SysThemeTemplateRequest.edit.class) SysThemeTemplateRequest sysThemeTemplateParam) { + sysThemeTemplateService.edit(sysThemeTemplateParam); + return new SuccessResponseData(); + } + + /** + * 删除系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:47 + */ + @PostResource(name = "删除系统主题模板", path = "/sysThemeTemplate/del") + public ResponseData del(@RequestBody @Validated(SysThemeTemplateRequest.delete.class) SysThemeTemplateRequest sysThemeTemplateParam) { + sysThemeTemplateService.del(sysThemeTemplateParam); + return new SuccessResponseData(); + } + + /** + * 查询系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 15:00 + */ + @GetResource(name = "查询系统模板主题", path = "/sysThemeTemplate/findPage") + public ResponseData findPage(SysThemeTemplateRequest sysThemeTemplateParam) { + return new SuccessResponseData(sysThemeTemplateService.findPage(sysThemeTemplateParam)); + } + + /** + * 修改系统主题模板状态 + * + * @author xixiaowei + * @date 2021/12/17 15:09 + */ + @PostResource(name = "修改系统主题模板状态", path = "/sysThemeTemplate/updateStatus") + public ResponseData updateTemplateStatus(@RequestBody @Validated(SysThemeTemplateRequest.updateStatus.class) SysThemeTemplateRequest sysThemeTemplateParam) { + sysThemeTemplateService.updateTemplateStatus(sysThemeTemplateParam); + return new SuccessResponseData(); + } + + /** + * 查询系统主题模板详情 + * + * @author xixiaowei + * @date 2021/12/17 16:09 + */ + @GetResource(name = "查询系统主题模板详情", path = "/sysThemeTemplate/detail") + public ResponseData detail(SysThemeTemplateRequest sysThemeTemplateParam) { + return new SuccessResponseData(sysThemeTemplateService.detail(sysThemeTemplateParam)); + } +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateFieldController.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateFieldController.java new file mode 100644 index 000000000..e882f82c7 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/controller/SysThemeTemplateFieldController.java @@ -0,0 +1,86 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.controller; + +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateFieldRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 系统主题模板属性控制器 + * + * @author xixiaowei + * @date 2021/12/17 10:28 + */ +@RestController +@ApiResource(name = "系统主题模板属性管理") +public class SysThemeTemplateFieldController { + + @Resource + private SysThemeTemplateFieldService sysThemeTemplateFieldService; + + /** + * 增加系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:22 + */ + @PostResource(name = "增加系统主题模板属性", path = "/sysThemeTemplateField/add") + public ResponseData add(@RequestBody @Validated(SysThemeTemplateFieldRequest.add.class) SysThemeTemplateFieldRequest sysThemeTemplateFieldParam) { + sysThemeTemplateFieldService.add(sysThemeTemplateFieldParam); + return new SuccessResponseData(); + } + + /** + * 删除系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:25 + */ + @PostResource(name = "删除系统主题模板属性", path = "/sysThemeTemplateField/del") + public ResponseData del(@RequestBody @Validated(SysThemeTemplateFieldRequest.delete.class) SysThemeTemplateFieldRequest sysThemeTemplateFieldParam) { + sysThemeTemplateFieldService.del(sysThemeTemplateFieldParam); + return new SuccessResponseData(); + } + + /** + * 修改系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:38 + */ + @PostResource(name = "修改系统模板属性", path = "/sysThemeTemplateField/edit") + public ResponseData edit(@RequestBody @Validated(SysThemeTemplateFieldRequest.edit.class) SysThemeTemplateFieldRequest sysThemeTemplateFieldParam) { + sysThemeTemplateFieldService.edit(sysThemeTemplateFieldParam); + return new SuccessResponseData(); + } + + /** + * 查询系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:49 + */ + @GetResource(name = "查询系统主题模板属性", path = "/sysThemeTemplateField/detail") + public ResponseData detail(SysThemeTemplateFieldRequest sysThemeTemplateFieldParam) { + return new SuccessResponseData(sysThemeTemplateFieldService.detail(sysThemeTemplateFieldParam)); + } + + /** + * 查询系统主题模板属性列表 + * + * @author xixiaowei + * @date 2021/12/22 11:34 + */ + /*@GetResource(name = "查询系统主题模板属性列表", path = "/sysThemeTemplateField/findList") + public ResponseData findList(SysThemeTemplateFieldRequest sysThemeTemplateFieldParam) { + return new SuccessResponseData(sysThemeTemplateFieldService.findList(sysThemeTemplateFieldParam)); + }*/ +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java new file mode 100644 index 000000000..99ece0158 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysTheme.java @@ -0,0 +1,57 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统主题表 + * + * @author xixiaowei + * @date 2021/12/17 9:11 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_theme") +public class SysTheme extends BaseEntity { + + /** + * 主键ID + */ + @TableId(value = "theme_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键ID") + private Long themeId; + + /** + * 主题名称 + */ + @TableField("theme_name") + @ChineseDescription("主题名称") + private String themeName; + + /** + * 主题属性(JSON格式) + */ + @TableField("theme_value") + @ChineseDescription("主题属性") + private String themeValue; + + /** + * 主题模板ID + */ + @TableField("template_id") + @ChineseDescription("主题模板ID") + private Long templateId; + + /** + * 启用状态:Y-启用,N-禁用 + */ + @TableField("status_flag") + @ChineseDescription("启用状态") + private Character statusFlag; +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java new file mode 100644 index 000000000..b19e7b78c --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplate.java @@ -0,0 +1,57 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统主题模板表 + * + * @author xixiaowei + * @date 2021/12/17 9:23 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_theme_template") +public class SysThemeTemplate extends BaseEntity { + + /** + * 主键ID + */ + @TableId(value = "template_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键ID") + private Long templateId; + + /** + * 主题模板名称 + */ + @TableField("template_name") + @ChineseDescription("主题模板名称") + private String templateName; + + /** + * 主题模板编码 + */ + @TableField("template_code") + @ChineseDescription("主题模板编码") + private String templateCode; + + /** + * 主题模板类型:1-系统类型,2-业务类型 + */ + @TableField("template_type") + @ChineseDescription("主题模板类型") + private Short templateType; + + /** + * 主题模板启用状态:Y-启用,N-禁用 + */ + @TableField("status_flag") + @ChineseDescription("主题模板启用状态") + private Character statusFlag; +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java new file mode 100644 index 000000000..732bb5143 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateField.java @@ -0,0 +1,71 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统主题模板属性表 + * + * @author xixiaowei + * @date 2021/12/17 9:39 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_theme_template_field") +public class SysThemeTemplateField extends BaseEntity { + + /** + * 主键ID + */ + @TableId(value = "field_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键ID") + private Long fieldId; + + /** + * 属性名称 + */ + @TableField("field_name") + @ChineseDescription("属性名称") + private String fieldName; + + /** + * 属性编码 + */ + @TableField("field_code") + @ChineseDescription("属性编码") + private String fieldCode; + + /** + * 属性展示类型(字典维护) + */ + @TableField("field_type") + @ChineseDescription("属性展示类型") + private String fieldType; + + /** + * 是否必填:Y-必填,N-非必填 + */ + @TableField("field_required") + @ChineseDescription("是否必填") + private Character fieldRequired; + + /** + * 属性长度 + */ + @TableField("field_length") + @ChineseDescription("属性长度") + private Integer fieldLength; + + /** + * 属性描述 + */ + @TableField("field_description") + @ChineseDescription("属性描述") + private String fieldDescription; +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java new file mode 100644 index 000000000..670224f12 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/entity/SysThemeTemplateRel.java @@ -0,0 +1,43 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统主题模板属性关联表 + * + * @author xixiaowei + * @date 2021/12/17 9:56 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_theme_template_rel") +public class SysThemeTemplateRel extends BaseEntity { + + /** + * 主键ID + */ + @TableId(value = "relation_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键ID") + private Long relationId; + + /** + * 模板ID + */ + @TableField("template_id") + @ChineseDescription("模板ID") + private Long templateId; + + /** + * 属性编码 + */ + @TableField("field_code") + @ChineseDescription("属性编码") + private String fieldCode; +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeMapper.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeMapper.java new file mode 100644 index 000000000..8eb51d716 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeMapper.java @@ -0,0 +1,15 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.mapper; + +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysTheme; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + + +/** + * 系统主题mapper接口 + * + * @author xixiaowei + * @date 2021/12/17 10:07 + */ +public interface SysThemeMapper extends BaseMapper { + +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateFieldMapper.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateFieldMapper.java new file mode 100644 index 000000000..37539ee68 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateFieldMapper.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.mapper; + +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 系统主题模板属性mapper接口 + * + * @author xixiaowei + * @date 2021/12/17 10:14 + */ +public interface SysThemeTemplateFieldMapper extends BaseMapper { + +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateMapper.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateMapper.java new file mode 100644 index 000000000..8a8c57572 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateMapper.java @@ -0,0 +1,25 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.mapper; + +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateDataDTO; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 系统主题模板mapper接口 + * + * @author xixiaowei + * @date 2021/12/17 10:11 + */ +public interface SysThemeTemplateMapper extends BaseMapper { + + /** + * 系统主题模板详细查询 + * + * @author xixiaowei + * @date 2021/12/17 15:36 + */ + List sysThemeTemplateDetail(@Param("id") Long id); +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateRelMapper.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateRelMapper.java new file mode 100644 index 000000000..95c5b4c06 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/SysThemeTemplateRelMapper.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.mapper; + +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 系统主题模板属性关联mapper接口 + * + * @author xixiaowei + * @date 2021/12/17 10:18 + */ +public interface SysThemeTemplateRelMapper extends BaseMapper { + +} diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/mapping/SysTitleMapper.xml b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeMapper.xml similarity index 59% rename from kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/mapping/SysTitleMapper.xml rename to kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeMapper.xml index 265bee9d6..e7ad354e8 100644 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/mapping/SysTitleMapper.xml +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeMapper.xml @@ -1,5 +1,5 @@ - + - + \ No newline at end of file diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateFieldMapper.xml b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateFieldMapper.xml new file mode 100644 index 000000000..188ee9ab4 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateFieldMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml new file mode 100644 index 000000000..5788338fc --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateRelMapper.xml b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateRelMapper.xml new file mode 100644 index 000000000..85ec17f37 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/mapper/mapping/SysThemeTemplateRelMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeService.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeService.java new file mode 100644 index 000000000..5ca3c64ce --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeService.java @@ -0,0 +1,68 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeDataDTO; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysTheme; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 系统主题service接口 + * + * @author xixiaowei + * @date 2021/12/17 16:15 + */ +public interface SysThemeService extends IService { + + /** + * 增加系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:26 + */ + void add(SysThemeRequest sysThemeRequest); + + /** + * 删除系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:29 + */ + void del(SysThemeRequest sysThemeRequest); + + /** + * 修改系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:47 + */ + void edit(SysThemeRequest sysThemeRequest); + + /** + * 查询系统主题 + * + * @return 分页结果 + * @author xixiaowei + * @date 2021/12/17 16:52 + */ + PageResult findPage(SysThemeRequest sysThemeRequest); + + /** + * 查询系统主题详情 + * + * @return 系统主题 + * @author xixiaowei + * @date 2021/12/17 17:01 + */ + SysTheme detail(SysThemeRequest sysThemeRequest); + + /** + * 修改系统主题启用状态 + * + * @author xixiaowei + * @date 2021/12/17 17:06 + */ + void updateThemeStatus(SysThemeRequest sysThemeRequest); +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateFieldService.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateFieldService.java new file mode 100644 index 000000000..6444e6847 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateFieldService.java @@ -0,0 +1,46 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service; + +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateFieldRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 系统主题模板属性service接口 + * + * @author xixiaowei + * @date 2021/12/17 10:30 + */ +public interface SysThemeTemplateFieldService extends IService { + + /** + * 增加系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 10:47 + */ + void add(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest); + + /** + * 删除系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:00 + */ + void del(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest); + + /** + * 修改系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:29 + */ + void edit(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest); + + /** + * 查询系统主题模板属性 + * + * @author xixiaowei + * @date 2021/12/17 11:47 + */ + SysThemeTemplateField detail(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest); +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateRelService.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateRelService.java new file mode 100644 index 000000000..63484b403 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateRelService.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service; + +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 系统主题模板属性关系service接口 + * + * @author xixiaowei + * @date 2021/12/17 16:13 + */ +public interface SysThemeTemplateRelService extends IService { + +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateService.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateService.java new file mode 100644 index 000000000..38228d81f --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/SysThemeTemplateService.java @@ -0,0 +1,67 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateDataDTO; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 系统主题模板service接口 + * + * @author xixiaowei + * @date 2021/12/17 13:55 + */ +public interface SysThemeTemplateService extends IService { + + /** + * 增加系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:04 + */ + void add(SysThemeTemplateRequest sysThemeTemplateRequest); + + /** + * 编辑系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:21 + */ + void edit(SysThemeTemplateRequest sysThemeTemplateRequest); + + /** + * 删除系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:38 + */ + void del(SysThemeTemplateRequest sysThemeTemplateRequest); + + /** + * 查找系统主题模板 + * + * @return 分页结果 + * @author xixiaowei + * @date 2021/12/17 14:52 + */ + PageResult findPage(SysThemeTemplateRequest sysThemeTemplateRequest); + + /** + * 修改系统主题模板状态 + * + * @author xixiaowei + * @date 2021/12/17 15:03 + */ + void updateTemplateStatus(SysThemeTemplateRequest sysThemeTemplateRequest); + + /** + * 查询系统主题模板详情 + * + * @author xixiaowei + * @date 2021/12/17 16:00 + */ + List detail(SysThemeTemplateRequest sysThemeTemplateRequest); +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeServiceImpl.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeServiceImpl.java new file mode 100644 index 000000000..876864921 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeServiceImpl.java @@ -0,0 +1,176 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; +import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest; +import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService; +import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; +import cn.stylefeng.roses.kernel.system.api.ThemeServiceApi; +import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; +import cn.stylefeng.roses.kernel.system.api.exception.enums.theme.SysThemeExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysTheme; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField; +import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeMapper; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateService; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 系统主题service接口实现类 + * + * @author xixiaowei + * @date 2021/12/17 16:17 + */ +@Service +public class SysThemeServiceImpl extends ServiceImpl implements SysThemeService, ThemeServiceApi { + + @Resource + private SysThemeTemplateService sysThemeTemplateService; + + @Resource + private SysThemeTemplateFieldService sysThemeTemplateFieldService; + + @Resource + private SysFileInfoService sysFileInfoService; + + @Override + public void add(SysThemeRequest sysThemeRequest) { + // 查询模板状态 + SysThemeTemplate sysThemeTemplate = sysThemeTemplateService.getById(sysThemeRequest.getTemplateId()); + + // 判断模板启用状态:如果为禁用状态不允许使用 + if (YesOrNotEnum.N.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeExceptionEnum.THEME_TEMPLATE_IS_DISABLE); + } + + SysTheme sysTheme = new SysTheme(); + + // 拷贝属性 + BeanUtil.copyProperties(sysThemeRequest, sysTheme); + + // 设置默认启用状态-禁用N + sysTheme.setStatusFlag(YesOrNotEnum.N.getCode().charAt(0)); + + this.save(sysTheme); + } + + @Override + public void del(SysThemeRequest sysThemeRequest) { + SysTheme sysTheme = this.querySysThemeById(sysThemeRequest); + + // 已启用的主题不允许删除 + if (YesOrNotEnum.Y.getCode().equals(sysTheme.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeExceptionEnum.THEME_NOT_ALLOW_DELETE); + } + + // 删除保存的图片 + String themeValue = sysTheme.getThemeValue(); + Map themeMap = JSON.parseObject(themeValue, Map.class); + + // 获取map的key + List themeKeys = new ArrayList<>(themeMap.keySet()); + + // 获取图片文件的编码 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysThemeTemplateField::getFieldName, themeKeys).eq(SysThemeTemplateField::getFieldType, "file") + .select(SysThemeTemplateField::getFieldName); + List sysThemeTemplateFields = sysThemeTemplateFieldService.list(queryWrapper); + List fileNames = sysThemeTemplateFields.stream().map(SysThemeTemplateField::getFieldName).collect(Collectors.toList()); + + // 删除图片 + if (fileNames.size() > 0) { + for (String themeKey : themeKeys) { + String themeValueStr = themeMap.get(themeKey); + for (String fileName : fileNames) { + if (StrUtil.isNotBlank(themeKey) && StrUtil.isNotBlank(fileName) && themeKey.equals(fileName)) { + SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest(); + sysFileInfoRequest.setFileCode(Long.parseLong(themeValueStr)); + sysFileInfoService.deleteReally(sysFileInfoRequest); + } + } + } + } + + this.removeById(sysTheme); + } + + @Override + public void edit(SysThemeRequest sysThemeRequest) { + SysTheme sysTheme = this.querySysThemeById(sysThemeRequest); + + // 拷贝属性 + BeanUtil.copyProperties(sysThemeRequest, sysTheme); + + this.updateById(sysTheme); + } + + @Override + public PageResult findPage(SysThemeRequest sysThemeRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 通过主题名称模糊查询 + queryWrapper.like(StrUtil.isNotBlank(sysThemeRequest.getThemeName()),SysTheme::getThemeName, sysThemeRequest.getThemeName()); + + Page page = page(PageFactory.defaultPage(), queryWrapper); + + return PageResultFactory.createPageResult(page); + } + + @Override + public SysTheme detail(SysThemeRequest sysThemeRequest) { + return this.querySysThemeById(sysThemeRequest); + } + + @Override + public void updateThemeStatus(SysThemeRequest sysThemeRequest) { + SysTheme sysTheme = this.querySysThemeById(sysThemeRequest); + + // 已经启用系统主题不允许禁用 + if (YesOrNotEnum.Y.getCode().equals(sysTheme.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeExceptionEnum.UNIQUE_ENABLE_NOT_DISABLE); + } else { + // 如果当前系统禁用,启用该系统主题,同时禁用已启用的系统主题 + sysTheme.setStatusFlag(YesOrNotEnum.Y.getCode().charAt(0)); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysTheme::getStatusFlag, YesOrNotEnum.Y.getCode().charAt(0)); + + if (this.list().size() > 1) { + SysTheme theme = getOne(queryWrapper, true); + theme.setStatusFlag(YesOrNotEnum.N.getCode().charAt(0)); + this.updateById(theme); + } + } + this.updateById(sysTheme); + } + + /** + * 查询单个系统主题 + * + * @author xixiaowei + * @date 2021/12/17 16:30 + */ + private SysTheme querySysThemeById(SysThemeRequest sysThemeRequest) { + SysTheme sysTheme = this.getById(sysThemeRequest.getThemeId()); + if (ObjectUtil.isNull(sysTheme)) { + throw new SystemModularException(SysThemeExceptionEnum.THEME_NOT_EXIST); + } + return sysTheme; + } +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java new file mode 100644 index 000000000..30af63a79 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java @@ -0,0 +1,106 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; +import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; +import cn.stylefeng.roses.kernel.system.api.exception.enums.theme.SysThemeTemplateFieldExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateFieldRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; +import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateFieldMapper; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateRelService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * 系统主题模板属性service接口实现类 + * + * @author xixiaowei + * @date 2021/12/17 10:34 + */ +@Service +public class SysThemeTemplateFieldServiceImpl extends ServiceImpl implements SysThemeTemplateFieldService { + + @Resource + private SysThemeTemplateRelService sysThemeTemplateRelService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void add(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) { + SysThemeTemplateField sysThemeTemplateField = new SysThemeTemplateField(); + + // 拷贝属性 + BeanUtil.copyProperties(sysThemeTemplateFieldRequest, sysThemeTemplateField); + + // 设置主题模板属性编码 + sysThemeTemplateField.setFieldCode(IdWorker.getIdStr()); + + // 设置是否必填:如果请求参数为空,默认设置为非必填 + sysThemeTemplateField.setFieldRequired(StringUtils.isBlank(sysThemeTemplateFieldRequest.getFieldType()) ? YesOrNotEnum.N.getCode().charAt(0) : sysThemeTemplateFieldRequest.getFieldRequired()); + + // 添加关联关系 + SysThemeTemplateRel sysThemeTemplateRel = new SysThemeTemplateRel(); + sysThemeTemplateRel.setTemplateId(sysThemeTemplateFieldRequest.getTemplateId()); + sysThemeTemplateRel.setFieldCode(sysThemeTemplateField.getFieldCode()); + + // 保存关联关系 + sysThemeTemplateRelService.save(sysThemeTemplateRel); + + this.save(sysThemeTemplateField); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void del(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) { + SysThemeTemplateField sysThemeTemplateField = this.queryThemeTemplateFieldById(sysThemeTemplateFieldRequest); + + // 删除关联关系 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysThemeTemplateRel::getFieldCode, sysThemeTemplateField.getFieldCode()); + sysThemeTemplateRelService.remove(queryWrapper); + + this.removeById(sysThemeTemplateField.getFieldId()); + } + + @Override + public void edit(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) { + SysThemeTemplateField sysThemeTemplateField = this.queryThemeTemplateFieldById(sysThemeTemplateFieldRequest); + + // 更新属性 + BeanUtil.copyProperties(sysThemeTemplateFieldRequest, sysThemeTemplateField); + + // 设置是否必填:如果请求参数为空,默认设置为非必填 + sysThemeTemplateField.setFieldRequired(StringUtils.isBlank(sysThemeTemplateFieldRequest.getFieldType()) ? YesOrNotEnum.N.getCode().charAt(0) : sysThemeTemplateFieldRequest.getFieldRequired()); + + this.updateById(sysThemeTemplateField); + } + + @Override + public SysThemeTemplateField detail(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) { + return this.queryThemeTemplateFieldById(sysThemeTemplateFieldRequest); + } + + /** + * 获取主题模板属性 + * + * @param sysThemeTemplateFieldRequest 请求参数 + * @return 主题模板属性 + * @author xixiaowei + * @date 2021/12/17 11:03 + */ + private SysThemeTemplateField queryThemeTemplateFieldById(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) { + SysThemeTemplateField sysThemeTemplateField = this.getById(sysThemeTemplateFieldRequest.getFieldId()); + if (ObjectUtil.isNull(sysThemeTemplateField)) { + throw new SystemModularException(SysThemeTemplateFieldExceptionEnum.FIELD_NOT_EXIST); + } + return sysThemeTemplateField; + } +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java new file mode 100644 index 000000000..e2257a166 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java @@ -0,0 +1,18 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; + +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; +import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateRelMapper; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateRelService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 系统主题模板属性关系service接口实现类 + * + * @author xixiaowei + * @date 2021/12/17 16:14 + */ +@Service +public class SysThemeTemplateRelServiceImpl extends ServiceImpl implements SysThemeTemplateRelService { + +} diff --git a/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateServiceImpl.java b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateServiceImpl.java new file mode 100644 index 000000000..e962d5f58 --- /dev/null +++ b/kernel-s-system/system-business-theme/src/main/java/cn/stylefeng/roses/kernel/system/modular/theme/service/impl/SysThemeTemplateServiceImpl.java @@ -0,0 +1,167 @@ +package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; +import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; +import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; +import cn.stylefeng.roses.kernel.system.api.exception.enums.theme.SysThemeTemplateExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateDataDTO; +import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysTheme; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; +import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateMapper; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateFieldService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateRelService; +import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 系统主题模板service接口实现类 + * + * @author xixiaowei + * @date 2021/12/17 13:58 + */ +@Service +public class SysThemeTemplateServiceImpl extends ServiceImpl implements SysThemeTemplateService { + + @Resource + private SysThemeTemplateMapper sysThemeTemplateMapper; + + @Resource + private SysThemeService sysThemeService; + + @Resource + private SysThemeTemplateRelService sysThemeTemplateRelService; + + @Resource + private SysThemeTemplateFieldService sysThemeTemplateFieldService; + + @Override + public void add(SysThemeTemplateRequest sysThemeTemplateRequest) { + SysThemeTemplate sysThemeTemplate = new SysThemeTemplate(); + + // 拷贝属性 + BeanUtil.copyProperties(sysThemeTemplateRequest, sysThemeTemplate); + + // 设置主题模板编码 + sysThemeTemplate.setTemplateCode(IdWorker.getIdStr()); + // 默认启用状态:禁用N + sysThemeTemplate.setStatusFlag(YesOrNotEnum.N.getCode().charAt(0)); + + this.save(sysThemeTemplate); + } + + @Override + public void edit(SysThemeTemplateRequest sysThemeTemplateRequest) { + SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest); + + if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_USED); + } + + // 拷贝属性 + BeanUtil.copyProperties(sysThemeTemplateRequest, sysThemeTemplate); + + this.updateById(sysThemeTemplate); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void del(SysThemeTemplateRequest sysThemeTemplateRequest) { + SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest); + + if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_ENABLE); + } + + // 删除关联关系 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysThemeTemplateRel::getTemplateId, sysThemeTemplate.getTemplateId()); + + // 查询所有关联属性的编码 + List SysThemeTemplateRels = sysThemeTemplateRelService.list(queryWrapper.select(SysThemeTemplateRel::getFieldCode)); + List sysThemeTemplateFieldCodes = SysThemeTemplateRels.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList()); + + LambdaQueryWrapper delFieldWrapper = new LambdaQueryWrapper<>(); + delFieldWrapper.in(SysThemeTemplateField::getFieldCode, sysThemeTemplateFieldCodes); + + // 删除关联属性 + if (sysThemeTemplateFieldCodes.size() > 0) { + sysThemeTemplateFieldService.remove(delFieldWrapper); + } + // 删除关联关系 + sysThemeTemplateRelService.remove(queryWrapper); + + // 删除模板 + this.removeById(sysThemeTemplate); + } + + @Override + public PageResult findPage(SysThemeTemplateRequest sysThemeTemplateRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // 根据系统主题模板名称模糊查询 + queryWrapper.like(StrUtil.isNotBlank(sysThemeTemplateRequest.getTemplateName()) ,SysThemeTemplate::getTemplateName, sysThemeTemplateRequest.getTemplateName()); + + Page page = page(PageFactory.defaultPage(), queryWrapper); + + return PageResultFactory.createPageResult(page); + } + + @Override + public void updateTemplateStatus(SysThemeTemplateRequest sysThemeTemplateRequest) { + SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest); + + // 系统主题模板被使用,不允许禁用 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysTheme::getTemplateId, sysThemeTemplate.getTemplateId()); + int sysThemeNum = sysThemeService.count(queryWrapper); + if (sysThemeNum > 0) { + throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_USED); + } + + // 修改状态 + if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { + sysThemeTemplate.setStatusFlag(YesOrNotEnum.N.getCode().charAt(0)); + } else { + sysThemeTemplate.setStatusFlag(YesOrNotEnum.Y.getCode().charAt(0)); + } + + this.updateById(sysThemeTemplate); + } + + /** + * 查询单个系统主题模板 + * + * @author xixiaowei + * @date 2021/12/17 14:28 + */ + private SysThemeTemplate querySysThemeTemplateById(SysThemeTemplateRequest sysThemeTemplateRequest) { + SysThemeTemplate sysThemeTemplate = this.getById(sysThemeTemplateRequest.getTemplateId()); + if (ObjectUtil.isNull(sysThemeTemplate)) { + throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_NOT_EXIT); + } + return sysThemeTemplate; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public List detail(SysThemeTemplateRequest sysThemeTemplateRequest) { + return sysThemeTemplateMapper.sysThemeTemplateDetail(sysThemeTemplateRequest.getTemplateId()); + } +} diff --git a/kernel-s-system/system-business-title/README.md b/kernel-s-system/system-business-title/README.md deleted file mode 100644 index 544c0ee5b..000000000 --- a/kernel-s-system/system-business-title/README.md +++ /dev/null @@ -1 +0,0 @@ -标题图片管理 \ No newline at end of file diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/controller/SysTitleController.java b/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/controller/SysTitleController.java deleted file mode 100644 index 33132316e..000000000 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/controller/SysTitleController.java +++ /dev/null @@ -1,100 +0,0 @@ -package cn.stylefeng.roses.kernel.system.modular.title.controller; - -import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; -import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; -import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; -import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; -import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; -import cn.stylefeng.roses.kernel.system.api.pojo.title.SysTitleRequest; -import cn.stylefeng.roses.kernel.system.modular.title.entity.SysTitle; -import cn.stylefeng.roses.kernel.system.modular.title.service.SysTitleService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * 标题图片配置管理控制器 - * - * @author xixiaowei - * @date 2021/12/13 17:29 - */ -@RestController -@ApiResource(name = "标题图片配置管理") -public class SysTitleController { - - @Resource - private SysTitleService sysTitleService; - - /** - * 添加标题图片配置 - * - * @author xixiaowei - * @date 2021/12/14 9:26 - */ - @PostResource(name = "添加标题图片配置", path = "/sysTitle/add") - public ResponseData add(@RequestBody @Validated(SysTitleRequest.add.class) SysTitleRequest sysTitleParam) { - sysTitleService.add(sysTitleParam); - return new SuccessResponseData(); - } - - /** - * 删除标题图片配置 - * - * @author xixiaowei - * @date 2021/12/14 9:28 - */ - @PostResource(name = "删除标题图片配置", path = "/sysTitle/del") - public ResponseData del(@RequestBody @Validated(SysTitleRequest.delete.class) SysTitleRequest sysTitleParam) { - sysTitleService.del(sysTitleParam); - return new SuccessResponseData(); - } - - /** - * 修改标题图片配置 - * - * @author xixiaowei - * @date 2021/12/14 9:53 - */ - @PostResource(name = "修改标题图片配置", path = "/sysTitle/edit") - public ResponseData edit(@RequestBody @Validated(SysTitleRequest.edit.class) SysTitleRequest sysTitleParam) { - sysTitleService.edit(sysTitleParam); - return new SuccessResponseData(); - } - - /** - * 根据名称查询标题图片配置 - * - * @author xixiaowei - * @date 2021/12/14 10:26 - */ - @GetResource(name = "查询标题图片配置", path = "/sysTitle/find", responseClass = SysTitle.class) - public ResponseData findPage(SysTitleRequest sysTitleParam) { - return new SuccessResponseData(sysTitleService.findPage(sysTitleParam)); - } - - /** - * 复制标题 - * - * @author xixiaowei - * @date 2021/12/14 11:29 - */ - @PostResource(name = "复制标题", path = "/sysTitle/copy") - public ResponseData copyTitle(@RequestBody @Validated(SysTitleRequest.add.class) SysTitleRequest sysTitleRequest) { - sysTitleService.copyTitle(sysTitleRequest); - return new SuccessResponseData(); - } - - /** - * 修改启用状态 - * - * @author xixiaowei - * @date 2021/12/14 11:43 - */ - @PostResource(name = "修改启用状态", path = "/sysTitle/updateStatus") - public ResponseData updateStatus(@RequestBody @Validated(SysTitleRequest.edit.class) SysTitleRequest sysTitleRequest) { - sysTitleService.updateStatus(sysTitleRequest); - return new SuccessResponseData(); - } -} diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/entity/SysTitle.java b/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/entity/SysTitle.java deleted file mode 100644 index ff6050ab6..000000000 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/entity/SysTitle.java +++ /dev/null @@ -1,99 +0,0 @@ -package cn.stylefeng.roses.kernel.system.modular.title.entity; - -import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 标题图片配置信息表 - * - * @author xixiaowei - * @date 2021/12/13 15:49 - */ -@EqualsAndHashCode(callSuper = true) -@Data -@TableName("sys_title") -public class SysTitle extends BaseEntity { - - /** - * 标题id - */ - @TableId(value = "title_id", type = IdType.ASSIGN_ID) - @ChineseDescription("标题id") - private Long titleId; - - /** - * 标题名称 - */ - @TableField("title_name") - @ChineseDescription("标题名称") - private String titleName; - - /** - * 公司名称 - */ - @TableField("company_name") - @ChineseDescription("公司名称") - private String companyName; - - /** - * 平台名称 - */ - @TableField("platform_name") - @ChineseDescription("平台名称") - private String platformName; - - /** - * 平台英文名称 - */ - @TableField("platform_english_name") - @ChineseDescription("平台英文名称") - private String platformEnglishName; - - /** - * 背景图片 - */ - @TableField("background_image") - @ChineseDescription("背景图片") - private String backgroundImage; - - /** - * 公司logo - */ - @TableField("company_logo") - @ChineseDescription("公司logo") - private String companyLogo; - - /** - * 浏览器icon - */ - @TableField("browser_icon") - @ChineseDescription("浏览器icon") - private String browserIcon; - - /** - * 首页名称 - */ - @TableField("page_name") - @ChineseDescription("首页名称") - private String pageName; - - /** - * 首页图标 - */ - @TableField("page_image") - @ChineseDescription("首页图标") - private String pageImage; - - /** - * 启用状态:Y、启用 N、未启用 - */ - @TableField("status") - @ChineseDescription("启用状态") - private Character status; -} diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/SysTitleMapper.java b/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/SysTitleMapper.java deleted file mode 100644 index c83830af3..000000000 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/mapper/SysTitleMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.stylefeng.roses.kernel.system.modular.title.mapper; - -import cn.stylefeng.roses.kernel.system.modular.title.entity.SysTitle; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** - * 标题图片基本信息mapper接口 - * - * @author xixiaowei - * @date 2021/12/13 16:37 - */ -public interface SysTitleMapper extends BaseMapper { - -} diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/SysTitleService.java b/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/SysTitleService.java deleted file mode 100644 index 5226750eb..000000000 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/SysTitleService.java +++ /dev/null @@ -1,80 +0,0 @@ -package cn.stylefeng.roses.kernel.system.modular.title.service; - -import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; -import cn.stylefeng.roses.kernel.system.api.TitleServiceApi; -import cn.stylefeng.roses.kernel.system.api.pojo.title.SysTitleRequest; -import cn.stylefeng.roses.kernel.system.modular.title.entity.SysTitle; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - * 标题图片配置服务类 - * - * @author xixiaowei - * @date 2021/12/13 17:22 - */ -public interface SysTitleService extends IService, TitleServiceApi { - - /** - * 添加标题图片配置 - * - * @param sysTitleRequest 添加参数 - * @author xixiaowei - * @date 2021/12/13 17:45 - */ - void add(SysTitleRequest sysTitleRequest); - - /** - * 删除标题图片配置 - * - * @param sysTitleRequest 删除参数 - * @author xixiaowei - * @date 2021/12/13 18:39 - */ - void del(SysTitleRequest sysTitleRequest); - - /** - * 修改标题图片配置 - * - * @param sysTitleRequest 修改参数 - * @author xixiaowei - * @date 2021/12/14 9:32 - */ - void edit(SysTitleRequest sysTitleRequest); - - /** - * 查询单个标题配置信息 - * - * @param sysTitleRequest 查询参数 - * @author xixiaowei - * @date 2021/12/14 11:38 - */ - SysTitle detail(SysTitleRequest sysTitleRequest); - - /** - * 查询标题列表 - * - * @param sysTitleRequest 查询参数 - * @return 查询分页结果 - * @author xixiaowei - * @date 2021/12/14 10:00 - */ - PageResult findPage(SysTitleRequest sysTitleRequest); - - /** - * 复制标题 - * - * @param sysTitleRequest 复制参数 - * @author xixiaowei - * @date 2021/12/14 10:47 - */ - void copyTitle(SysTitleRequest sysTitleRequest); - - /** - * 修改启用状态 - * - * @param sysTitleRequest 修改参数 - * @author xixiaowei - * @date 2021/12/14 11:32 - */ - void updateStatus(SysTitleRequest sysTitleRequest); -} diff --git a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/impl/SysTitleServiceImpl.java b/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/impl/SysTitleServiceImpl.java deleted file mode 100644 index dc224fddd..000000000 --- a/kernel-s-system/system-business-title/src/main/java/cn/stylefeng/roses/kernel/system/modular/title/service/impl/SysTitleServiceImpl.java +++ /dev/null @@ -1,238 +0,0 @@ -package cn.stylefeng.roses.kernel.system.modular.title.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; -import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; -import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; -import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; -import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest; -import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse; -import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService; -import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; -import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; -import cn.stylefeng.roses.kernel.system.api.exception.enums.title.SysTitleExceptionEnum; -import cn.stylefeng.roses.kernel.system.api.pojo.title.SysTitleRequest; -import cn.stylefeng.roses.kernel.system.modular.title.entity.SysTitle; -import cn.stylefeng.roses.kernel.system.modular.title.mapper.SysTitleMapper; -import cn.stylefeng.roses.kernel.system.modular.title.service.SysTitleService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; - -import javax.annotation.Resource; - -/** - * 标题图片配置服务实现类 - * - * @author xixiaowei - * @date 2021/12/13 17:28 - */ -@Service -public class SysTitleServiceImpl extends ServiceImpl implements SysTitleService { - - private static final Long DEFAULT_FILE_UPLOAD = null; - - @Resource - private SysFileInfoService sysFileInfoService; - - @Override - public void add(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = new SysTitle(); - - // 拷贝属性 - BeanUtil.copyProperties(sysTitleRequest, sysTitle); - - // 启用状态默认为未启用 N - sysTitle.setStatus(YesOrNotEnum.N.getCode().charAt(0)); - - // 保存图片信息 - SysFileInfoResponse backgroundImageResponse = this.uploadFile(sysTitleRequest.getBackgroundImage(), DEFAULT_FILE_UPLOAD); - sysTitle.setBackgroundImage(backgroundImageResponse.getFileId().toString()); - - SysFileInfoResponse browserIconResponse = this.uploadFile(sysTitleRequest.getBrowserIcon(), DEFAULT_FILE_UPLOAD); - sysTitle.setBrowserIcon(browserIconResponse.getFileId().toString()); - - SysFileInfoResponse companyLogoResponse = this.uploadFile(sysTitleRequest.getCompanyLogo(), DEFAULT_FILE_UPLOAD); - sysTitle.setCompanyLogo(companyLogoResponse.getFileId().toString()); - - SysFileInfoResponse pageImageResponse = this.uploadFile(sysTitleRequest.getPageImage(), DEFAULT_FILE_UPLOAD); - sysTitle.setPageImage(pageImageResponse.getFileId().toString()); - - // 保存配置信息 - this.save(sysTitle); - } - - /** - * 上传图片 - * - * @param multipartFile 上传的图片 - * @author xixiaowei - * @date 2021/12/14 14:40 - */ - private SysFileInfoResponse uploadFile(MultipartFile multipartFile, Long fileCode) { - SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest(); - sysFileInfoRequest.setFileId(IdWorker.getId()); - if (fileCode != null) { - sysFileInfoRequest.setFileCode(fileCode); - } - sysFileInfoRequest.setSecretFlag(YesOrNotEnum.N.getCode()); - sysFileInfoRequest.setFileLocation(4); - sysFileInfoRequest.setFilePath("D:\\test"); - sysFileInfoRequest.setFileOriginName(multipartFile.getOriginalFilename()); - - return sysFileInfoService.uploadFile(multipartFile, sysFileInfoRequest); - } - - @Override - public void del(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = this.querySysTitleById(sysTitleRequest); - - // 启用状态不允许删除 - if (Character.valueOf(YesOrNotEnum.Y.getCode().charAt(0)).equals(sysTitle.getStatus())) { - throw new SystemModularException(SysTitleExceptionEnum.ENABLE_NOT_ALLOW_DELETE, sysTitleRequest.getTitleId()); - } - - // 删除配置 - this.removeById(sysTitle); - } - - /** - * 获取标题图片配置 - * - * @author xixiaowei - * @date 2021/12/14 9:18 - */ - private SysTitle querySysTitleById(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = this.getById(sysTitleRequest.getTitleId()); - - if (ObjectUtil.isEmpty(sysTitle)) { - throw new SystemModularException(SysTitleExceptionEnum.TITLE_NOT_EXIST, sysTitleRequest.getTitleId()); - } - - return sysTitle; - } - - @Override - public void edit(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = this.querySysTitleById(sysTitleRequest); - - // 未启用状态不允许编辑 - if (Character.valueOf(YesOrNotEnum.N.getCode().charAt(0)).equals(sysTitle.getStatus())) { - throw new SystemModularException(SysTitleExceptionEnum.DISABLE_NOT_ALLOW_EDIT, sysTitleRequest.getTitleId()); - } - - // 图片修改 - sysTitle.setBackgroundImage(this.updateFile(sysTitleRequest.getBackgroundImage(), sysTitle.getBackgroundImage())); - sysTitle.setBrowserIcon(this.updateFile(sysTitleRequest.getBrowserIcon(), sysTitle.getBrowserIcon())); - sysTitle.setCompanyLogo(this.updateFile(sysTitleRequest.getCompanyLogo(), sysTitle.getCompanyLogo())); - sysTitle.setPageImage(this.updateFile(sysTitleRequest.getPageImage(), sysTitle.getPageImage())); - - // 更新属性 - BeanUtil.copyProperties(sysTitleRequest, sysTitle); - - // 修改配置 - this.updateById(sysTitle); - } - - /** - * 更新图片 - * - * @param multipartFile 新图片 - * @param fileId 旧图片Id - * @return 新图片Id - * @author xixiaowei - * @date 2021/12/14 15:21 - */ - private String updateFile(MultipartFile multipartFile, String fileId) { - SysFileInfoResponse fileInfoResult = sysFileInfoService.getFileInfoResult(Long.parseLong(fileId)); - - // 上传图片 - SysFileInfoResponse sysFileInfoResponse = this.uploadFile(multipartFile, fileInfoResult.getFileCode()); - - return sysFileInfoResponse.getFileId().toString(); - } - - @Override - public SysTitle detail(SysTitleRequest sysTitleRequest) { - return this.querySysTitleById(sysTitleRequest); - } - - @Override - public PageResult findPage(SysTitleRequest sysTitleRequest) { - LambdaQueryWrapper wrapper = this.createWrapper(sysTitleRequest); - Page page = this.page(PageFactory.defaultPage(), wrapper); - return PageResultFactory.createPageResult(page); - } - - /** - * 创建Wrapper - * - * @author xixiaowei - * @date 2021/12/14 10:04 - */ - private LambdaQueryWrapper createWrapper(SysTitleRequest sysTitleRequest) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - - // 按照创建时间倒序 - wrapper.orderByDesc(BaseEntity::getCreateTime); - - // 如果标题不为空,根据标题名称模糊查询;如果标题为空,查询全部 - wrapper.like(StrUtil.isNotBlank(sysTitleRequest.getTitleName()), SysTitle::getTitleName, sysTitleRequest.getTitleName()); - return wrapper; - } - - @Override - public void copyTitle(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = this.querySysTitleById(sysTitleRequest); - - SysTitle title = new SysTitle(); - // 拷贝属性 - BeanUtil.copyProperties(sysTitle, title); - // 修改标题名称 - title.setTitleName(sysTitle.getTitleName() + "复制"); - // 标题状态设为默认状态 未启用 N - title.setStatus(YesOrNotEnum.N.getCode().charAt(0)); - - // 保存配置信息 - this.save(title); - } - - @Override - public void updateStatus(SysTitleRequest sysTitleRequest) { - SysTitle sysTitle = this.querySysTitleById(sysTitleRequest); - - // 如果状态为唯一启用状态不允许被禁用, 如果为未启用状态则可以启用该配置同时禁用已启用的标题配置 - if (Character.valueOf(YesOrNotEnum.Y.getCode().charAt(0)).equals(sysTitle.getStatus())) { - throw new SystemModularException(SysTitleExceptionEnum.UNIQUE_ENABLE, sysTitleRequest.getTitleId()); - } else { - // 设置为启用状态 - sysTitle.setStatus(YesOrNotEnum.Y.getCode().charAt(0)); - // 修改已启用的标题配置 - if (this.updateEnableToDisableStatus()) { - updateById(sysTitle); - } - } - } - - /** - * 修改已启用的标题配置为禁用状态 - * - * @author xixiaowei - * @date 2021/12/14 14:00 - */ - private Boolean updateEnableToDisableStatus() { - // 查询已启用的标题配置 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SysTitle::getStatus, YesOrNotEnum.Y.getCode().charAt(0)); - SysTitle sysTitle = getOne(wrapper); - - // 修改状态 - sysTitle.setStatus(YesOrNotEnum.N.getCode().charAt(0)); - return updateById(sysTitle); - } -}