【7.1.6】【theme】系统内置主题模板和主题字段不能删除

pull/25/head
fengshuonan 2022-01-10 18:25:48 +08:00
parent a7002469a4
commit d8520adff2
4 changed files with 34 additions and 2 deletions

View File

@ -67,6 +67,16 @@ public interface SystemConstants {
*/
Integer SUPER_ADMIN_INIT_LISTENER_SORT = 400;
/**
*
*/
String THEME_CODE_SYSTEM_PREFIX = "GUNS";
/**
*
*/
String THEME_GUNS_PLATFORM = "GUNS_PLATFORM";
/**
* FieldMetadata
*/

View File

@ -32,7 +32,12 @@ public enum SysThemeExceptionEnum implements AbstractExceptionEnum {
/**
*
*/
UNIQUE_ENABLE_NOT_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "124", "唯一启用的系统主题不允许禁用");
UNIQUE_ENABLE_NOT_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "124", "唯一启用的系统主题不允许禁用"),
/**
* GUNS
*/
THEME_IS_SYSTEM(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "125", "编码前缀为GUNS的是系统内置属性不能删除");
/**
*

View File

@ -7,7 +7,9 @@ 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.constants.SystemConstants;
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.exception.enums.theme.SysThemeTemplateFieldExceptionEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateFieldRequest;
import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateField;
@ -24,6 +26,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
/**
@ -55,6 +58,11 @@ public class SysThemeTemplateFieldServiceImpl extends ServiceImpl<SysThemeTempla
public void del(SysThemeTemplateFieldRequest sysThemeTemplateFieldRequest) {
SysThemeTemplateField sysThemeTemplateField = this.queryThemeTemplateFieldById(sysThemeTemplateFieldRequest);
// Guns开头的模板字段不能删除系统内置
if (sysThemeTemplateField.getFieldCode().toUpperCase(Locale.ROOT).startsWith(SystemConstants.THEME_CODE_SYSTEM_PREFIX)) {
throw new SystemModularException(SysThemeExceptionEnum.THEME_IS_SYSTEM);
}
// 校验系统主题模板属性使用
this.verificationAttributeUsage(sysThemeTemplateField);

View File

@ -7,7 +7,9 @@ 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.constants.SystemConstants;
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.exception.enums.theme.SysThemeTemplateExceptionEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateDataDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateRequest;
@ -26,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Locale;
/**
* service
@ -77,6 +80,12 @@ public class SysThemeTemplateServiceImpl extends ServiceImpl<SysThemeTemplateMap
public void del(SysThemeTemplateRequest sysThemeTemplateRequest) {
SysThemeTemplate sysThemeTemplate = this.querySysThemeTemplateById(sysThemeTemplateRequest);
// Guns开头的模板字段不能删除系统内置
if (sysThemeTemplateRequest.getTemplateCode().toUpperCase(Locale.ROOT).startsWith(SystemConstants.THEME_CODE_SYSTEM_PREFIX)) {
throw new SystemModularException(SysThemeExceptionEnum.THEME_IS_SYSTEM);
}
// 启动的主题模板不能删除
if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) {
throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_ENABLE);
}