mirror of https://gitee.com/stylefeng/roses
【8.0】【theme】更新theme的业务
parent
7070b59a1c
commit
ae47a621a3
|
@ -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<List<SysThemeTemplateDataDTO>> detail(SysThemeTemplateRequest sysThemeTemplateParam) {
|
||||
public ResponseData<List<SysThemeTemplateDataDTO>> detail(
|
||||
@Validated(BaseRequest.detail.class) SysThemeTemplateRequest sysThemeTemplateParam) {
|
||||
return new SuccessResponseData<>(sysThemeTemplateService.detail(sysThemeTemplateParam));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<SysThemeTemplate> {
|
||||
|
||||
/**
|
||||
* 系统主题模板详细查询
|
||||
*
|
||||
* @author xixiaowei
|
||||
* @since 2021/12/17 15:36
|
||||
*/
|
||||
List<SysThemeTemplateDataDTO> sysThemeTemplateDetail(@Param("id") Long id);
|
||||
|
||||
}
|
||||
|
|
|
@ -2,70 +2,5 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.sys.modular.theme.mapper.SysThemeTemplateMapper">
|
||||
|
||||
<resultMap id="sysThemeTemplateResult" type="cn.stylefeng.roses.kernel.sys.modular.theme.pojo.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>
|
||||
|
||||
<!--系统主题模板详细查询 mysql版本-->
|
||||
<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>
|
||||
|
||||
<!--系统主题模板详细查询 oracle版本-->
|
||||
<select id="sysThemeTemplateDetail" resultMap="sysThemeTemplateResult" databaseId="oracle">
|
||||
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>
|
|
@ -81,4 +81,12 @@ public interface SysThemeTemplateFieldService extends IService<SysThemeTemplateF
|
|||
*/
|
||||
boolean getKeyFileFlag(String code);
|
||||
|
||||
/**
|
||||
* 获取主题字段列表,通过字段编码的结合
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/7/11 17:07
|
||||
*/
|
||||
List<SysThemeTemplateField> getFieldListByFieldCode(List<String> fieldCodeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -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<SysThemeTemplateRel
|
|||
* @since 2021/12/24 11:18
|
||||
*/
|
||||
void del(SysThemeTemplateRelRequest sysThemeTemplateRelRequest);
|
||||
|
||||
/**
|
||||
* 获取主题模板下关联的主题字段code集合
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/7/11 17:02
|
||||
*/
|
||||
List<String> getThemeTemplateFieldCodeList(Long templateId);
|
||||
|
||||
}
|
||||
|
|
|
@ -151,9 +151,7 @@ public class SysThemeTemplateFieldServiceImpl extends ServiceImpl<SysThemeTempla
|
|||
List<SysThemeTemplateRel> sysThemeTemplateRels = sysThemeTemplateRelService.list(queryWrapper);
|
||||
|
||||
// 过滤出所有的属性编码
|
||||
List<String> 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<SysThemeTempla
|
|||
return ThemeFieldTypeEnum.FILE.getCode().equals(sysThemeTemplateField.getFieldType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysThemeTemplateField> getFieldListByFieldCode(List<String> fieldCodeList) {
|
||||
|
||||
LambdaQueryWrapper<SysThemeTemplateField> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取主题模板属性
|
||||
*
|
||||
|
|
|
@ -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<SysThemeTemplateRelMapper, SysThemeTemplateRel> implements SysThemeTemplateRelService {
|
||||
public class SysThemeTemplateRelServiceImpl extends ServiceImpl<SysThemeTemplateRelMapper, SysThemeTemplateRel> implements
|
||||
SysThemeTemplateRelService {
|
||||
|
||||
@Resource
|
||||
private SysThemeTemplateService sysThemeTemplateService;
|
||||
|
@ -85,4 +88,26 @@ public class SysThemeTemplateRelServiceImpl extends ServiceImpl<SysThemeTemplate
|
|||
|
||||
this.remove(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getThemeTemplateFieldCodeList(Long templateId) {
|
||||
|
||||
if (ObjectUtil.isEmpty(templateId)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<SysThemeTemplateRel> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
// 根据模板id查询
|
||||
queryWrapper.eq(SysThemeTemplateRel::getTemplateId, templateId);
|
||||
|
||||
// 只查询字段的编码信息
|
||||
queryWrapper.select(SysThemeTemplateRel::getFieldCode);
|
||||
|
||||
List<SysThemeTemplateRel> list = this.list(queryWrapper);
|
||||
|
||||
return list.stream().map(SysThemeTemplateRel::getFieldCode).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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<SysThemeTemplateMap
|
|||
@Resource
|
||||
private SysThemeTemplateRelService sysThemeTemplateRelService;
|
||||
|
||||
@Resource
|
||||
private SysThemeTemplateFieldService sysThemeTemplateFieldService;
|
||||
|
||||
@Override
|
||||
public void add(SysThemeTemplateRequest sysThemeTemplateRequest) {
|
||||
SysThemeTemplate sysThemeTemplate = new SysThemeTemplate();
|
||||
|
@ -153,7 +159,34 @@ public class SysThemeTemplateServiceImpl extends ServiceImpl<SysThemeTemplateMap
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public List<SysThemeTemplateDataDTO> detail(SysThemeTemplateRequest sysThemeTemplateRequest) {
|
||||
return sysThemeTemplateMapper.sysThemeTemplateDetail(sysThemeTemplateRequest.getTemplateId());
|
||||
|
||||
Long templateId = sysThemeTemplateRequest.getTemplateId();
|
||||
|
||||
// 查询模板的主题名称,编码和id
|
||||
LambdaQueryWrapper<SysThemeTemplate> 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<String> templateFieldCodeList = this.sysThemeTemplateRelService.getThemeTemplateFieldCodeList(templateId);
|
||||
|
||||
// 查询这些字段的详情信息
|
||||
List<SysThemeTemplateField> fieldListByFieldCode = this.sysThemeTemplateFieldService.getFieldListByFieldCode(templateFieldCodeList);
|
||||
|
||||
// 转化为最终结果
|
||||
List<SysThemeTemplateDataDTO> resultList = BeanUtil.copyToList(fieldListByFieldCode, SysThemeTemplateDataDTO.class);
|
||||
for (SysThemeTemplateDataDTO sysThemeTemplateDataDTO : resultList) {
|
||||
sysThemeTemplateDataDTO.setTemplateId(sysThemeTemplate.getTemplateId());
|
||||
sysThemeTemplateDataDTO.setTemplateName(sysThemeTemplate.getTemplateName());
|
||||
sysThemeTemplateDataDTO.setTemplateCode(sysThemeTemplate.getTemplateCode());
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue