From ae47a621a3ef9a87ed8ed2a427c1d3e0a454d56c Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 11 Jul 2023 17:27:19 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90theme=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0theme=E7=9A=84=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysThemeTemplateController.java | 4 +- .../theme/mapper/SysThemeTemplateMapper.java | 12 +--- .../mapper/mapping/SysThemeTemplateMapper.xml | 65 ------------------- .../service/SysThemeTemplateFieldService.java | 8 +++ .../service/SysThemeTemplateRelService.java | 11 ++++ .../SysThemeTemplateFieldServiceImpl.java | 18 ++++- .../impl/SysThemeTemplateRelServiceImpl.java | 27 +++++++- .../impl/SysThemeTemplateServiceImpl.java | 35 +++++++++- 8 files changed, 98 insertions(+), 82 deletions(-) diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/controller/SysThemeTemplateController.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/controller/SysThemeTemplateController.java index 8a579af1f..3be49c91c 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/controller/SysThemeTemplateController.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/controller/SysThemeTemplateController.java @@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.sys.modular.theme.controller; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.annotation.BusinessLog; +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; 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; @@ -115,7 +116,8 @@ public class SysThemeTemplateController { * @since 2021/12/17 16:09 */ @GetResource(name = "查询系统主题模板详情", path = "/sysThemeTemplate/detail") - public ResponseData> detail(SysThemeTemplateRequest sysThemeTemplateParam) { + public ResponseData> detail( + @Validated(BaseRequest.detail.class) SysThemeTemplateRequest sysThemeTemplateParam) { return new SuccessResponseData<>(sysThemeTemplateService.detail(sysThemeTemplateParam)); } } diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/SysThemeTemplateMapper.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/SysThemeTemplateMapper.java index 385f961b5..5bd365acd 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/SysThemeTemplateMapper.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/SysThemeTemplateMapper.java @@ -1,11 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.theme.mapper; import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplate; -import cn.stylefeng.roses.kernel.sys.modular.theme.pojo.SysThemeTemplateDataDTO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; /** * 系统主题模板mapper接口 @@ -15,11 +11,5 @@ import java.util.List; */ public interface SysThemeTemplateMapper extends BaseMapper { - /** - * 系统主题模板详细查询 - * - * @author xixiaowei - * @since 2021/12/17 15:36 - */ - List sysThemeTemplateDetail(@Param("id") Long id); + } diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml index 50689c262..9b293485d 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/mapper/mapping/SysThemeTemplateMapper.xml @@ -2,70 +2,5 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateFieldService.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateFieldService.java index 77c32b76a..d9351e80b 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateFieldService.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateFieldService.java @@ -81,4 +81,12 @@ public interface SysThemeTemplateFieldService extends IService getFieldListByFieldCode(List fieldCodeList); + } diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateRelService.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateRelService.java index a68de6526..9959378f8 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateRelService.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/SysThemeTemplateRelService.java @@ -4,6 +4,8 @@ import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplateRel; import cn.stylefeng.roses.kernel.sys.modular.theme.pojo.SysThemeTemplateRelRequest; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 系统主题模板属性关系service接口 * @@ -27,4 +29,13 @@ public interface SysThemeTemplateRelService extends IService getThemeTemplateFieldCodeList(Long templateId); + } diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java index 1cb5f4e12..dfda4c22b 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateFieldServiceImpl.java @@ -151,9 +151,7 @@ public class SysThemeTemplateFieldServiceImpl extends ServiceImpl sysThemeTemplateRels = sysThemeTemplateRelService.list(queryWrapper); // 过滤出所有的属性编码 - List fieldCodes = sysThemeTemplateRels.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList()); - - return fieldCodes; + return sysThemeTemplateRels.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList()); } @Override @@ -190,6 +188,20 @@ public class SysThemeTemplateFieldServiceImpl extends ServiceImpl getFieldListByFieldCode(List fieldCodeList) { + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysThemeTemplateField::getFieldCode, fieldCodeList); + + // 只查询关键字段 + wrapper.select(SysThemeTemplateField::getFieldId, SysThemeTemplateField::getFieldCode, SysThemeTemplateField::getFieldName, + SysThemeTemplateField::getFieldType, SysThemeTemplateField::getFieldLength, SysThemeTemplateField::getFieldRequired, + SysThemeTemplateField::getFieldDescription); + + return this.list(wrapper); + } + /** * 获取主题模板属性 * diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java index 24fd6243d..fe9a02e8e 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateRelServiceImpl.java @@ -1,5 +1,6 @@ package cn.stylefeng.roses.kernel.sys.modular.theme.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.sys.api.exception.SysException; import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplate; @@ -17,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 系统主题模板属性关系service接口实现类 @@ -25,7 +27,8 @@ import java.util.List; * @since 2021/12/17 16:14 */ @Service -public class SysThemeTemplateRelServiceImpl extends ServiceImpl implements SysThemeTemplateRelService { +public class SysThemeTemplateRelServiceImpl extends ServiceImpl implements + SysThemeTemplateRelService { @Resource private SysThemeTemplateService sysThemeTemplateService; @@ -85,4 +88,26 @@ public class SysThemeTemplateRelServiceImpl extends ServiceImpl getThemeTemplateFieldCodeList(Long templateId) { + + if (ObjectUtil.isEmpty(templateId)) { + return new ArrayList<>(); + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + // 根据模板id查询 + queryWrapper.eq(SysThemeTemplateRel::getTemplateId, templateId); + + // 只查询字段的编码信息 + queryWrapper.select(SysThemeTemplateRel::getFieldCode); + + List list = this.list(queryWrapper); + + return list.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList()); + } + + } diff --git a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateServiceImpl.java b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateServiceImpl.java index 42d46d273..8991fd8c6 100644 --- a/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateServiceImpl.java +++ b/kernel-s-sys/sys-business-portal/src/main/java/cn/stylefeng/roses/kernel/sys/modular/theme/service/impl/SysThemeTemplateServiceImpl.java @@ -7,10 +7,12 @@ 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.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.exception.SysException; import cn.stylefeng.roses.kernel.sys.modular.theme.constants.ThemeConstants; import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysTheme; import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplate; +import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplateField; import cn.stylefeng.roses.kernel.sys.modular.theme.entity.SysThemeTemplateRel; import cn.stylefeng.roses.kernel.sys.modular.theme.exceptions.SysThemeExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.theme.exceptions.SysThemeTemplateExceptionEnum; @@ -18,6 +20,7 @@ import cn.stylefeng.roses.kernel.sys.modular.theme.mapper.SysThemeTemplateMapper import cn.stylefeng.roses.kernel.sys.modular.theme.pojo.SysThemeTemplateDataDTO; import cn.stylefeng.roses.kernel.sys.modular.theme.pojo.SysThemeTemplateRequest; import cn.stylefeng.roses.kernel.sys.modular.theme.service.SysThemeService; +import cn.stylefeng.roses.kernel.sys.modular.theme.service.SysThemeTemplateFieldService; import cn.stylefeng.roses.kernel.sys.modular.theme.service.SysThemeTemplateRelService; import cn.stylefeng.roses.kernel.sys.modular.theme.service.SysThemeTemplateService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -48,6 +51,9 @@ public class SysThemeTemplateServiceImpl extends ServiceImpl detail(SysThemeTemplateRequest sysThemeTemplateRequest) { - return sysThemeTemplateMapper.sysThemeTemplateDetail(sysThemeTemplateRequest.getTemplateId()); + + Long templateId = sysThemeTemplateRequest.getTemplateId(); + + // 查询模板的主题名称,编码和id + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysThemeTemplate::getTemplateId, templateId); + wrapper.select(SysThemeTemplate::getTemplateId, SysThemeTemplate::getTemplateCode, SysThemeTemplate::getTemplateName); + SysThemeTemplate sysThemeTemplate = this.getOne(wrapper, false); + + if (sysThemeTemplate == null) { + throw new ServiceException(SysThemeTemplateExceptionEnum.TEMPLATE_NOT_EXIT); + } + + // 查询主题模板关联的字段 + List templateFieldCodeList = this.sysThemeTemplateRelService.getThemeTemplateFieldCodeList(templateId); + + // 查询这些字段的详情信息 + List fieldListByFieldCode = this.sysThemeTemplateFieldService.getFieldListByFieldCode(templateFieldCodeList); + + // 转化为最终结果 + List resultList = BeanUtil.copyToList(fieldListByFieldCode, SysThemeTemplateDataDTO.class); + for (SysThemeTemplateDataDTO sysThemeTemplateDataDTO : resultList) { + sysThemeTemplateDataDTO.setTemplateId(sysThemeTemplate.getTemplateId()); + sysThemeTemplateDataDTO.setTemplateName(sysThemeTemplate.getTemplateName()); + sysThemeTemplateDataDTO.setTemplateCode(sysThemeTemplate.getTemplateCode()); + } + + return resultList; } /**