diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeDTO.java new file mode 100644 index 000000000..2e36ef2aa --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/theme/SysThemeDTO.java @@ -0,0 +1,50 @@ +package cn.stylefeng.roses.kernel.system.api.pojo.theme; + +import lombok.Data; + +import java.util.Date; + +/** + * 用于前端数据渲染 + * + * @author xixiaowei + * @date 2021/12/31 10:01 + */ +@Data +public class SysThemeDTO { + + /** + * 主键ID + */ + private Long themeId; + + /** + * 主题名称 + */ + private String themeName; + + /** + * 主题属性(JSON格式) + */ + private String themeValue; + + /** + * 主题模板ID + */ + private Long templateId; + + /** + * 启用状态:Y-启用,N-禁用 + */ + private Character statusFlag; + + /** + * 模板名称,用于前端数据渲染 + */ + private String templateName; + + /** + * 创建时间 + */ + private Date createTime; +} 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 index d3780d7d6..08d7305c8 100644 --- 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 @@ -68,11 +68,22 @@ public class SysThemeTemplateController { * @author xixiaowei * @date 2021/12/17 15:00 */ - @GetResource(name = "查询系统模板主题", path = "/sysThemeTemplate/findPage") + @GetResource(name = "查询系统主题模板", path = "/sysThemeTemplate/findPage") public ResponseData findPage(SysThemeTemplateRequest sysThemeTemplateParam) { return new SuccessResponseData(sysThemeTemplateService.findPage(sysThemeTemplateParam)); } + /** + * 查询系统主题模板列表 + * + * @author xixiaowei + * @date 2021/12/29 9:12 + */ + @GetResource(name = "查询系统主题模板列表", path = "/sysThemeTemplate/findList") + public ResponseData findList(SysThemeTemplateRequest sysThemeTemplateParam) { + return new SuccessResponseData(sysThemeTemplateService.findList(sysThemeTemplateParam)); + } + /** * 修改系统主题模板状态 * 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 index 3248a032c..a0706095e 100644 --- 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 @@ -1,6 +1,7 @@ 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.SysThemeDTO; 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; @@ -44,7 +45,7 @@ public interface SysThemeService extends IService { * @author xixiaowei * @date 2021/12/17 16:52 */ - PageResult findPage(SysThemeRequest sysThemeRequest); + PageResult findPage(SysThemeRequest sysThemeRequest); /** * 查询系统主题详情 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 index caf40318d..c4615716c 100644 --- 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 @@ -49,6 +49,14 @@ public interface SysThemeTemplateService extends IService { */ PageResult findPage(SysThemeTemplateRequest sysThemeTemplateRequest); + /** + * 查询系统诸如提模板列表 + * + * @author xixiaowei + * @date 2021/12/29 9:10 + */ + List findList(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 index 5727a7fc5..7a0c4a181 100644 --- 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 @@ -12,6 +12,7 @@ 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.SysThemeDTO; 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; @@ -86,12 +87,12 @@ public class SysThemeServiceImpl extends ServiceImpl i // 获取map的key List themeKeys = new ArrayList<>(themeMap.keySet()); - // 获取图片文件的编码 + // 获取图片文件的名称 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(SysThemeTemplateField::getFieldName, themeKeys).eq(SysThemeTemplateField::getFieldType, "file") - .select(SysThemeTemplateField::getFieldName); + queryWrapper.in(SysThemeTemplateField::getFieldCode, themeKeys).eq(SysThemeTemplateField::getFieldType, "file") + .select(SysThemeTemplateField::getFieldCode); List sysThemeTemplateFields = sysThemeTemplateFieldService.list(queryWrapper); - List fileNames = sysThemeTemplateFields.stream().map(SysThemeTemplateField::getFieldName).collect(Collectors.toList()); + List fileNames = sysThemeTemplateFields.stream().map(SysThemeTemplateField::getFieldCode).collect(Collectors.toList()); // 删除图片 if (fileNames.size() > 0) { @@ -112,7 +113,7 @@ public class SysThemeServiceImpl extends ServiceImpl i @Override public void edit(SysThemeRequest sysThemeRequest) { - SysTheme sysTheme = this.querySysThemeById(sysThemeRequest); + SysTheme sysTheme = new SysTheme(); // 拷贝属性 BeanUtil.copyProperties(sysThemeRequest, sysTheme); @@ -121,14 +122,23 @@ public class SysThemeServiceImpl extends ServiceImpl i } @Override - public PageResult findPage(SysThemeRequest sysThemeRequest) { + 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); + List sysThemeDTOList = new ArrayList<>(); + for (SysTheme record : page.getRecords()) { + SysThemeDTO sysThemeDTO = new SysThemeDTO(); + BeanUtil.copyProperties(record, sysThemeDTO); + SysThemeTemplate sysThemeTemplate = sysThemeTemplateService.getById(record.getTemplateId()); + sysThemeDTO.setTemplateName(sysThemeTemplate.getTemplateName()); + sysThemeDTOList.add(sysThemeDTO); + } + + return PageResultFactory.createPageResult(sysThemeDTOList, page.getTotal(), Integer.valueOf(String.valueOf(page.getSize())), Integer.valueOf(String.valueOf(page.getCurrent()))); } @Override 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 index 7f1152421..0438509d2 100644 --- 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 @@ -1,13 +1,20 @@ package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; +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.SysThemeTemplateRelRequest; +import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; 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 cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.ArrayList; import java.util.List; @@ -20,8 +27,14 @@ import java.util.List; @Service public class SysThemeTemplateRelServiceImpl extends ServiceImpl implements SysThemeTemplateRelService { + @Resource + private SysThemeTemplateService sysThemeTemplateService; + @Override public void add(SysThemeTemplateRelRequest sysThemeTemplateRelRequest) { + // 校验模板状态 + this.checkTemplateStatus(sysThemeTemplateRelRequest); + // 获取请求中的所有属性编码 String[] fieldCodes = sysThemeTemplateRelRequest.getFieldCodes(); @@ -40,8 +53,29 @@ public class SysThemeTemplateRelServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysThemeTemplate::getTemplateId, sysThemeTemplateRelRequest.getTemplateId()); + SysThemeTemplate sysThemeTemplate = sysThemeTemplateService.getOne(queryWrapper, true); + // 判断状态,如果是启用则禁止操作 + if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { + throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_USED); + } + } + @Override + @Transactional(rollbackFor = Exception.class) public void del(SysThemeTemplateRelRequest sysThemeTemplateRelRequest) { + // 校验模板状态 + this.checkTemplateStatus(sysThemeTemplateRelRequest); + // 获取请求中的所有属性编码 String[] fieldCodes = sysThemeTemplateRelRequest.getFieldCodes(); 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 index 987189c82..8a26d4273 100644 --- 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 @@ -103,6 +103,11 @@ public class SysThemeTemplateServiceImpl extends ServiceImpl findList(SysThemeTemplateRequest sysThemeTemplateRequest) { + return this.list(); + } + @Override public void updateTemplateStatus(SysThemeTemplateRequest sysThemeTemplateRequest) { SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest);