【8.0】【theme】更新theme的业务

pull/57/head
fengshuonan 2023-07-11 17:27:19 +08:00
parent 7070b59a1c
commit ae47a621a3
8 changed files with 98 additions and 82 deletions

View File

@ -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));
}
}

View File

@ -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);
}

View File

@ -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>

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
/**
*
*

View File

@ -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());
}
}

View File

@ -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;
}
/**