mirror of https://gitee.com/stylefeng/roses
主题管理
parent
ca6fc97427
commit
2cc15adf5a
|
@ -24,10 +24,10 @@
|
|||
<module>system-business-role</module>
|
||||
<module>system-business-menu</module>
|
||||
<module>system-business-notice</module>
|
||||
<module>system-business-title</module>
|
||||
<module>system-integration-beetl</module>
|
||||
<module>system-integration-rest</module>
|
||||
<module>system-spring-boot-starter</module>
|
||||
<module>system-business-theme</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package cn.stylefeng.roses.kernel.system.api;
|
||||
|
||||
/**
|
||||
* 系统主题Api
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/17 10:25
|
||||
*/
|
||||
public interface ThemeServiceApi {
|
||||
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.system.api;
|
||||
|
||||
/**
|
||||
* 标题图片配置api
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/13 17:20
|
||||
*/
|
||||
public interface TitleServiceApi {
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>system-business-title</artifactId>
|
||||
<artifactId>system-business-theme</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
|
@ -17,6 +17,7 @@
|
|||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!--系统管理的api-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
|
@ -54,10 +55,11 @@
|
|||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!--文件管理-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>file-business</artifactId>
|
||||
<version>7.1.6</version>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}*/
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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<SysTheme> {
|
||||
|
||||
}
|
|
@ -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<SysThemeTemplateField> {
|
||||
|
||||
}
|
|
@ -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<SysThemeTemplate> {
|
||||
|
||||
/**
|
||||
* 系统主题模板详细查询
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/17 15:36
|
||||
*/
|
||||
List<SysThemeTemplateDataDTO> sysThemeTemplateDetail(@Param("id") Long id);
|
||||
}
|
|
@ -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<SysThemeTemplateRel> {
|
||||
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.system.modular.title.mapper.SysTitleMapper">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeMapper">
|
||||
|
||||
</mapper>
|
||||
</mapper>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateFieldMapper">
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateMapper">
|
||||
|
||||
<resultMap id="sysThemeTemplateResult" type="cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateDataDTO">
|
||||
<result property="templateId" column="template_id"/>
|
||||
<result property="templateCode" column="template_code"/>
|
||||
<result property="templateName" column="template_name"/>
|
||||
<result property="fieldId" column="field_id"/>
|
||||
<result property="fieldCode" column="field_code"/>
|
||||
<result property="fieldName" column="field_name"/>
|
||||
<result property="fieldType" column="field_type"/>
|
||||
<result property="fieldLength" column="field_length"/>
|
||||
<result property="fieldRequired" column="field_required"/>
|
||||
<result property="fieldDescription" column="field_description"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="sysThemeTemplateDetail" resultMap="sysThemeTemplateResult">
|
||||
SELECT
|
||||
stt.template_id,
|
||||
stt.template_code,
|
||||
stt.template_name,
|
||||
sttf.field_id,
|
||||
sttf.field_code,
|
||||
sttf.field_name,
|
||||
sttf.field_type,
|
||||
sttf.field_length,
|
||||
sttf.field_required,
|
||||
sttf.field_description
|
||||
FROM
|
||||
sys_theme_template_field sttf,
|
||||
sys_theme_template stt,
|
||||
sys_theme_template_rel sttl
|
||||
WHERE
|
||||
sttf.field_code = sttl.field_code
|
||||
AND stt.template_id = sttl.template_id
|
||||
<if test="id != null" >
|
||||
AND stt.template_id = #{id}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateRelMapper">
|
||||
|
||||
</mapper>
|
|
@ -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<SysTheme> {
|
||||
|
||||
/**
|
||||
* 增加系统主题
|
||||
*
|
||||
* @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<SysTheme> 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);
|
||||
}
|
|
@ -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<SysThemeTemplateField> {
|
||||
|
||||
/**
|
||||
* 增加系统主题模板属性
|
||||
*
|
||||
* @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);
|
||||
}
|
|
@ -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<SysThemeTemplateRel> {
|
||||
|
||||
}
|
|
@ -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<SysThemeTemplate> {
|
||||
|
||||
/**
|
||||
* 增加系统主题模板
|
||||
*
|
||||
* @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<SysThemeTemplate> findPage(SysThemeTemplateRequest sysThemeTemplateRequest);
|
||||
|
||||
/**
|
||||
* 修改系统主题模板状态
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/17 15:03
|
||||
*/
|
||||
void updateTemplateStatus(SysThemeTemplateRequest sysThemeTemplateRequest);
|
||||
|
||||
/**
|
||||
* 查询系统主题模板详情
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/17 16:00
|
||||
*/
|
||||
List<SysThemeTemplateDataDTO> detail(SysThemeTemplateRequest sysThemeTemplateRequest);
|
||||
}
|
|
@ -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<SysThemeMapper, SysTheme> 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<String, String> themeMap = JSON.parseObject(themeValue, Map.class);
|
||||
|
||||
// 获取map的key
|
||||
List<String> themeKeys = new ArrayList<>(themeMap.keySet());
|
||||
|
||||
// 获取图片文件的编码
|
||||
LambdaQueryWrapper<SysThemeTemplateField> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysThemeTemplateField::getFieldName, themeKeys).eq(SysThemeTemplateField::getFieldType, "file")
|
||||
.select(SysThemeTemplateField::getFieldName);
|
||||
List<SysThemeTemplateField> sysThemeTemplateFields = sysThemeTemplateFieldService.list(queryWrapper);
|
||||
List<String> 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<SysTheme> findPage(SysThemeRequest sysThemeRequest) {
|
||||
LambdaQueryWrapper<SysTheme> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// 通过主题名称模糊查询
|
||||
queryWrapper.like(StrUtil.isNotBlank(sysThemeRequest.getThemeName()),SysTheme::getThemeName, sysThemeRequest.getThemeName());
|
||||
|
||||
Page<SysTheme> 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<SysTheme> 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;
|
||||
}
|
||||
}
|
|
@ -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<SysThemeTemplateFieldMapper, SysThemeTemplateField> 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<SysThemeTemplateRel> 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;
|
||||
}
|
||||
}
|
|
@ -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<SysThemeTemplateRelMapper, SysThemeTemplateRel> implements SysThemeTemplateRelService {
|
||||
|
||||
}
|
|
@ -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<SysThemeTemplateMapper, SysThemeTemplate> 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<SysThemeTemplateRel> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysThemeTemplateRel::getTemplateId, sysThemeTemplate.getTemplateId());
|
||||
|
||||
// 查询所有关联属性的编码
|
||||
List<SysThemeTemplateRel> SysThemeTemplateRels = sysThemeTemplateRelService.list(queryWrapper.select(SysThemeTemplateRel::getFieldCode));
|
||||
List<String> sysThemeTemplateFieldCodes = SysThemeTemplateRels.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<SysThemeTemplateField> delFieldWrapper = new LambdaQueryWrapper<>();
|
||||
delFieldWrapper.in(SysThemeTemplateField::getFieldCode, sysThemeTemplateFieldCodes);
|
||||
|
||||
// 删除关联属性
|
||||
if (sysThemeTemplateFieldCodes.size() > 0) {
|
||||
sysThemeTemplateFieldService.remove(delFieldWrapper);
|
||||
}
|
||||
// 删除关联关系
|
||||
sysThemeTemplateRelService.remove(queryWrapper);
|
||||
|
||||
// 删除模板
|
||||
this.removeById(sysThemeTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SysThemeTemplate> findPage(SysThemeTemplateRequest sysThemeTemplateRequest) {
|
||||
LambdaQueryWrapper<SysThemeTemplate> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// 根据系统主题模板名称模糊查询
|
||||
queryWrapper.like(StrUtil.isNotBlank(sysThemeTemplateRequest.getTemplateName()) ,SysThemeTemplate::getTemplateName, sysThemeTemplateRequest.getTemplateName());
|
||||
|
||||
Page<SysThemeTemplate> page = page(PageFactory.defaultPage(), queryWrapper);
|
||||
|
||||
return PageResultFactory.createPageResult(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTemplateStatus(SysThemeTemplateRequest sysThemeTemplateRequest) {
|
||||
SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest);
|
||||
|
||||
// 系统主题模板被使用,不允许禁用
|
||||
LambdaQueryWrapper<SysTheme> 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<SysThemeTemplateDataDTO> detail(SysThemeTemplateRequest sysThemeTemplateRequest) {
|
||||
return sysThemeTemplateMapper.sysThemeTemplateDetail(sysThemeTemplateRequest.getTemplateId());
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
标题图片管理
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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<SysTitle> {
|
||||
|
||||
}
|
|
@ -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<SysTitle>, 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<SysTitle> 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);
|
||||
}
|
|
@ -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<SysTitleMapper, SysTitle> 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<SysTitle> findPage(SysTitleRequest sysTitleRequest) {
|
||||
LambdaQueryWrapper<SysTitle> wrapper = this.createWrapper(sysTitleRequest);
|
||||
Page<SysTitle> page = this.page(PageFactory.defaultPage(), wrapper);
|
||||
return PageResultFactory.createPageResult(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建Wrapper
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @date 2021/12/14 10:04
|
||||
*/
|
||||
private LambdaQueryWrapper<SysTitle> createWrapper(SysTitleRequest sysTitleRequest) {
|
||||
LambdaQueryWrapper<SysTitle> 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<SysTitle> 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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue