diff --git a/src/main/java/neatlogic/module/process/api/channel/ChannelGetApi.java b/src/main/java/neatlogic/module/process/api/channel/ChannelGetApi.java index e9b73f039f48f2bdcb769fa741d678f79f22d904..c2716c1ab4830aa31b1e0e41e86da851bb867cca 100644 --- a/src/main/java/neatlogic/module/process/api/channel/ChannelGetApi.java +++ b/src/main/java/neatlogic/module/process/api/channel/ChannelGetApi.java @@ -64,15 +64,18 @@ public class ChannelGetApi extends PrivateApiComponentBase { channel.setProcessUuid(processUuid); String worktimeUuid = channelMapper.getWorktimeUuidByChannelUuid(uuid); channel.setWorktimeUuid(worktimeUuid); - List priorityUuidList = new ArrayList<>(); - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(uuid); - for(ChannelPriorityVo channelPriority : channelPriorityList) { - priorityUuidList.add(channelPriority.getPriorityUuid()); - if(channelPriority.getIsDefault().intValue() == 1) { - channel.setDefaultPriorityUuid(channelPriority.getPriorityUuid()); + if (Objects.equals(channelVo.getIsActivePriority(), 1)) { + List priorityUuidList = new ArrayList<>(); + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(uuid); + for(ChannelPriorityVo channelPriority : channelPriorityList) { + priorityUuidList.add(channelPriority.getPriorityUuid()); + if(Objects.equals(channelPriority.getIsDefault(), 1)) { + channel.setDefaultPriorityUuid(channelPriority.getPriorityUuid()); + } } + channel.setPriorityUuidList(priorityUuidList); } - channel.setPriorityUuidList(priorityUuidList); + List authorityVoList = channelMapper.getChannelAuthorityListByChannelUuid(uuid); List viewAuthorityVoList = authorityVoList.stream().filter(e -> Objects.equals(e.getAction(), CatalogChannelAuthorityAction.VIEW.getValue())).collect(Collectors.toList()); channel.setViewAuthorityList(AuthorityVo.getAuthorityList(viewAuthorityVoList)); diff --git a/src/main/java/neatlogic/module/process/api/channel/ChannelSaveApi.java b/src/main/java/neatlogic/module/process/api/channel/ChannelSaveApi.java index cb3e46fa8bc4afd6f91cae492f7726699722a219..a52393605bb80571114af6862fb292ad226e67ea 100644 --- a/src/main/java/neatlogic/module/process/api/channel/ChannelSaveApi.java +++ b/src/main/java/neatlogic/module/process/api/channel/ChannelSaveApi.java @@ -15,21 +15,20 @@ along with this program. If not, see .*/ package neatlogic.module.process.api.channel; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.dto.FieldValidResultVo; import neatlogic.framework.process.auth.CATALOG_MODIFY; -import neatlogic.module.process.dao.mapper.catalog.ChannelMapper; import neatlogic.framework.process.dto.ChannelVo; import neatlogic.framework.process.exception.channel.ChannelNameRepeatException; -import neatlogic.module.process.service.ChannelService; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.IValid; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import neatlogic.framework.util.RegexUtils; +import neatlogic.module.process.dao.mapper.catalog.ChannelMapper; +import neatlogic.module.process.service.ChannelService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -75,7 +74,9 @@ public class ChannelSaveApi extends PrivateApiComponentBase { @Param(name = "color", type = ApiParamType.STRING, desc = "common.color"), @Param(name = "sla", type = ApiParamType.INTEGER, desc = "common.sla"), @Param(name = "contentHelp", type = ApiParamType.STRING, desc = "term.itsm.contenthelp"), - @Param(name = "isNeedPriority", type = ApiParamType.INTEGER, isRequired = true, desc = "common.isneedpriority"), +// @Param(name = "isNeedPriority", type = ApiParamType.INTEGER, isRequired = true, desc = "common.isneedpriority"), + @Param(name = "isActivePriority", type = ApiParamType.INTEGER, isRequired = true, desc = "是否启用优先级"), + @Param(name = "isDisplayPriority", type = ApiParamType.INTEGER, isRequired = true, desc = "是否显示优先级"), @Param(name = "defaultPriorityUuid", type = ApiParamType.STRING, desc = "common.defaultpriorityuuid"), @Param(name = "priorityUuidList", type = ApiParamType.JSONARRAY, desc = "nmrap.updateprioritysortapi.input.param.desc.prioritylist"), @Param(name = "reportAuthorityList", type = ApiParamType.JSONARRAY, desc = "common.reportauthoritylist", help = "可多选,格式[\"user#userUuid\",\"team#teamUuid\",\"role#roleUuid\"]"), @@ -95,8 +96,8 @@ public class ChannelSaveApi extends PrivateApiComponentBase { public IValid name() { return value -> { - /** 需要传parentUuid,同一个目录下,不能出现重名服务 **/ - ChannelVo channelVo = JSON.toJavaObject(value, ChannelVo.class); + /* 需要传parentUuid,同一个目录下,不能出现重名服务 */ + ChannelVo channelVo = value.toJavaObject(ChannelVo.class); if (channelMapper.checkChannelNameIsRepeat(channelVo) > 0) { return new FieldValidResultVo(new ChannelNameRepeatException(channelVo.getName())); } diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java index ecfadc411b90f62772386cf14d9c9d580474e2cf..2b8435a2b235bddac0ce298128fb237a39eac22e 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskDraftGetApi.java @@ -377,17 +377,16 @@ public class ProcessTaskDraftGetApi extends PrivateApiComponentBase { processTaskVo.setTitle(oldProcessTaskVo.getTitle()); } if (list.contains("priority")) { - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); - if (CollectionUtils.isNotEmpty(channelPriorityList)) { - processTaskVo.setIsNeedPriority(1); - for (ChannelPriorityVo channelPriority : channelPriorityList) { - if (Objects.equals(oldProcessTaskVo.getPriorityUuid(), channelPriority.getPriorityUuid())) { - processTaskVo.setPriorityUuid(channelPriority.getPriorityUuid()); - break; + if (Objects.equals(processTaskVo.getIsActivePriority(), 1)) { + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); + if (CollectionUtils.isNotEmpty(channelPriorityList)) { + for (ChannelPriorityVo channelPriority : channelPriorityList) { + if (Objects.equals(oldProcessTaskVo.getPriorityUuid(), channelPriority.getPriorityUuid())) { + processTaskVo.setPriorityUuid(channelPriority.getPriorityUuid()); + break; + } } } - } else { - processTaskVo.setIsNeedPriority(0); } } ProcessTaskStepVo oldStartProcessTaskStepVo = null; @@ -471,16 +470,19 @@ public class ProcessTaskDraftGetApi extends PrivateApiComponentBase { String worktimeUuid = channelMapper.getWorktimeUuidByChannelUuid(channelUuid); processTaskVo.setWorktimeUuid(worktimeUuid); - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(channelUuid); - if (CollectionUtils.isNotEmpty(channelPriorityList)) { - processTaskVo.setIsNeedPriority(1); - for (ChannelPriorityVo channelPriority : channelPriorityList) { - if (channelPriority.getIsDefault().intValue() == 1) { - processTaskVo.setPriorityUuid(channelPriority.getPriorityUuid()); + processTaskVo.setIsActivePriority(channel.getIsActivePriority()); + processTaskVo.setIsDisplayPriority(channel.getIsDisplayPriority()); + if (Objects.equals(channel.getIsActivePriority(), 1)) { + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(channelUuid); + if (CollectionUtils.isNotEmpty(channelPriorityList)) { + for (ChannelPriorityVo channelPriority : channelPriorityList) { + if (Objects.equals(channelPriority.getIsDefault(), 1)) { + processTaskVo.setPriorityUuid(channelPriority.getPriorityUuid()); + processTaskVo.setDefaultPriorityUuid(channelPriority.getPriorityUuid()); + break; + } } } - } else { - processTaskVo.setIsNeedPriority(0); } ProcessStepVo startProcessStepVo = processMapper.getStartProcessStepByProcessUuid(processUuid); diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskUpdateApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskUpdateApi.java index a311b7c898cc59cc37b6436d20ca8ecf4559e871..c3ca9c8f946de0238c6c758bb51187943b93b027 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskUpdateApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskUpdateApi.java @@ -49,6 +49,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @Service @@ -120,17 +121,24 @@ public class ProcessTaskUpdateApi extends PrivateApiComponentBase { } String priorityUuid = jsonObj.getString("priorityUuid"); - String oldPriorityUuid = processTaskVo.getPriorityUuid(); - if (StringUtils.isNotBlank(priorityUuid) && !priorityUuid.equals(oldPriorityUuid)) { - if (priorityMapper.checkPriorityIsExists(priorityUuid) == 0) { - throw new PriorityNotFoundException(priorityUuid); + if (priorityUuid != null) { + if (Objects.equals(processTaskVo.getIsActivePriority(), 1)) { + String oldPriorityUuid = processTaskVo.getPriorityUuid(); + if (StringUtils.isNotBlank(priorityUuid) && !priorityUuid.equals(oldPriorityUuid)) { + if (priorityMapper.checkPriorityIsExists(priorityUuid) == 0) { + throw new PriorityNotFoundException(priorityUuid); + } + isUpdate = true; + processTaskVo.setPriorityUuid(priorityUuid); + jsonObj.put(ProcessTaskAuditDetailType.PRIORITY.getOldDataParamName(), oldPriorityUuid); + } else { + jsonObj.remove("priorityUuid"); + } + } else { + jsonObj.remove("priorityUuid"); } - isUpdate = true; - processTaskVo.setPriorityUuid(priorityUuid); - jsonObj.put(ProcessTaskAuditDetailType.PRIORITY.getOldDataParamName(), oldPriorityUuid); - } else { - jsonObj.remove("priorityUuid"); } + if (isUpdate) { processTaskMapper.updateProcessTaskTitleOwnerPriorityUuid(processTaskVo); } diff --git a/src/main/java/neatlogic/module/process/dao/mapper/catalog/ChannelMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/catalog/ChannelMapper.xml index ea5e6a06153b176bc19ee3766f8d49677ccdd952..79f9ff2c74021f720c429626ce380756eec1b403 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/catalog/ChannelMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/catalog/ChannelMapper.xml @@ -66,6 +66,8 @@ + + @@ -93,6 +95,8 @@ c.`parent_uuid`) AND rht >= (SELECT rht FROM `catalog` WHERE UUID = c.`parent_uuid`)) AS parentUuids, c.`is_active`, + c.`is_active_priority`, + c.`is_display_priority`, c.`icon`, c.`color`, c.`desc`, @@ -154,6 +158,8 @@ `name`, `parent_uuid` AS parentUuid, `is_active` AS isActive, + `is_active_priority` AS isActivePriority, + `is_display_priority` AS isDisplayPriority, `icon`, `color`, `desc`, @@ -220,6 +226,8 @@ `name`, `parent_uuid` AS parentUuid, `is_active` AS isActive, + `is_active_priority` AS isActivePriority, + `is_display_priority` AS isDisplayPriority, `icon`, `color`, `desc`, @@ -239,6 +247,8 @@ c.`name`, c.`parent_uuid` AS parentUuid, c.`is_active` AS isActive, + c.`is_active_priority` AS isActivePriority, + c.`is_display_priority` AS isDisplayPriority, c.`icon`, c.`color`, c.`desc`, @@ -259,6 +269,8 @@ c.`name`, c.`parent_uuid` AS parentUuid, c.`is_active` AS isActive, + c.`is_active_priority` AS isActivePriority, + c.`is_display_priority` AS isDisplayPriority, c.`icon`, c.`color`, c.`desc`, @@ -286,6 +298,8 @@ `name`, `parent_uuid` AS parentUuid, `is_active` AS isActive, + `is_active_priority` AS isActivePriority, + `is_display_priority` AS isDisplayPriority, `icon`, `color`, `sort`, @@ -472,6 +486,8 @@ c.`uuid`, c.`name`, c.`is_active` AS isActive, + c.`is_active_priority` AS isActivePriority, + c.`is_display_priority` AS isDisplayPriority, c.`icon`, c.`color`, c.`desc`, @@ -608,6 +624,8 @@ c.`parent_uuid`) AND rht >= (SELECT rht FROM `catalog` WHERE UUID = c.`parent_uuid`)) AS parentUuids, c.`is_active`, + c.`is_active_priority`, + c.`is_display_priority`, c.`icon`, c.`color`, c.`desc`, @@ -690,6 +708,8 @@ `name`, `parent_uuid`, `is_active`, + `is_active_priority`, + `is_display_priority`, `icon`, `color`, `desc`, @@ -703,6 +723,8 @@ #{name}, #{parentUuid}, #{isActive}, + #{isActivePriority}, + #{isDisplayPriority}, #{icon}, #{color}, #{desc}, diff --git a/src/main/java/neatlogic/module/process/service/ChannelServiceImpl.java b/src/main/java/neatlogic/module/process/service/ChannelServiceImpl.java index 56cede69a0545bdd505e2009aa50fb23814c2bc4..c40d530708dd753aa44569ad1107abba59c79056 100644 --- a/src/main/java/neatlogic/module/process/service/ChannelServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ChannelServiceImpl.java @@ -100,7 +100,7 @@ public class ChannelServiceImpl implements ChannelService { } channelMapper.replaceChannelWorktime(uuid, channelVo.getWorktimeUuid()); //优先级 - if (channelVo.getIsNeedPriority() == 1) { + if (Objects.equals(channelVo.getIsActivePriority(), 1)) { String defaultPriorityUuid = channelVo.getDefaultPriorityUuid(); List priorityUuidList = channelVo.getPriorityUuidList(); for (String priorityUuid : priorityUuidList) { @@ -117,6 +117,8 @@ public class ChannelServiceImpl implements ChannelService { } channelMapper.insertChannelPriority(channelPriority); } + } else { + channelVo.setIsDisplayPriority(0); } List reportAuthorityList = channelVo.getReportAuthorityList(); diff --git a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java index c7090ac17d2103a381beae143b1055fce4ad780d..249783342944a6393765d6cd97b35d81460b67d5 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java @@ -289,18 +289,20 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess throw new UserNotFoundException(processTaskVo.getReporter()); } } - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); - if (StringUtils.isBlank(processTaskVo.getPriorityUuid())) { - //且存在channelPriorityList,则优先级必填 - if (CollectionUtils.isNotEmpty(channelPriorityList)) { + ChannelVo channelVo = channelMapper.getChannelByUuid(processTaskVo.getChannelUuid()); + if (Objects.equals(channelVo.getIsActivePriority(), 1)) { + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); + if (StringUtils.isBlank(processTaskVo.getPriorityUuid())) { throw new ProcessTaskPriorityIsEmptyException(); } - } - if (CollectionUtils.isNotEmpty(channelPriorityList) && channelPriorityList.stream().noneMatch(o -> o.getPriorityUuid().equals(processTaskVo.getPriorityUuid()))) { - throw new ProcessTaskPriorityNotMatchException(); + if (channelPriorityList.stream().noneMatch(o -> o.getPriorityUuid().equals(processTaskVo.getPriorityUuid()))) { + throw new ProcessTaskPriorityNotMatchException(); + } + paramObj.put(ProcessTaskAuditDetailType.PRIORITY.getParamName(), processTaskVo.getPriorityUuid()); + } else { + processTaskVo.setPriorityUuid(null); } - paramObj.put(ProcessTaskAuditDetailType.PRIORITY.getParamName(), processTaskVo.getPriorityUuid()); // 获取上报描述内容 // List fileIdList = new ArrayList<>(); diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index 1937d216eb84429674079a2e924edc88ef6d4543..0ed6e08a424094cfe1834efa1086a8180b303f83 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -1395,17 +1395,24 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC processTaskVo.setChannelType(channelTypeVo.clone()); } catch (CloneNotSupportedException ignored) { } - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); - if (CollectionUtils.isNotEmpty(channelPriorityList)) { - PriorityVo priorityVo = priorityMapper.getPriorityByUuid(processTaskVo.getPriorityUuid()); - if (priorityVo == null) { - priorityVo = new PriorityVo(); - priorityVo.setUuid(processTaskVo.getPriorityUuid()); - } - processTaskVo.setPriority(priorityVo); - processTaskVo.setIsNeedPriority(1); - } else { - processTaskVo.setIsNeedPriority(0); + processTaskVo.setIsActivePriority(channelVo.getIsActivePriority()); + processTaskVo.setIsDisplayPriority(channelVo.getIsDisplayPriority()); + if (Objects.equals(channelVo.getIsActivePriority(), 1)) { + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(processTaskVo.getChannelUuid()); + if (CollectionUtils.isNotEmpty(channelPriorityList)) { + PriorityVo priorityVo = priorityMapper.getPriorityByUuid(processTaskVo.getPriorityUuid()); + if (priorityVo == null) { + priorityVo = new PriorityVo(); + priorityVo.setUuid(processTaskVo.getPriorityUuid()); + } + processTaskVo.setPriority(priorityVo); + for (ChannelPriorityVo channelPriority : channelPriorityList) { + if (Objects.equals(channelPriority.getIsDefault(), 1)) { + processTaskVo.setDefaultPriorityUuid(channelPriority.getPriorityUuid()); + break; + } + } + } } } // 耗时 @@ -2527,7 +2534,8 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC @Override public JSONObject saveProcessTaskDraft(JSONObject jsonObj, Long newProcessTaskId) throws Exception { String channelUuid = jsonObj.getString("channelUuid"); - if (channelMapper.checkChannelIsExists(channelUuid) == 0) { + ChannelVo channelVo = channelMapper.getChannelByUuid(channelUuid); + if (channelVo == null) { throw new ChannelNotFoundException(channelUuid); } String processUuid = channelMapper.getProcessUuidByChannelUuid(channelUuid); @@ -2539,22 +2547,19 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC 如果不校验优先级,那么会出现批量上报记录显示上报失败, 而实际上已经生成工单,只是状态是草稿 */ - List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(channelUuid); - if (CollectionUtils.isNotEmpty(channelPriorityList)) { + if (Objects.equals(channelVo.getIsActivePriority(), 1)) { String priorityUuid = jsonObj.getString("priorityUuid"); if (StringUtils.isBlank(priorityUuid)) { - // PC端和移动端暂存工单时,优先级非必填 - String source = jsonObj.getString("source"); - if (!Objects.equals(source, ProcessTaskSource.PC.getValue()) - && !Objects.equals(source, ProcessTaskSource.MOBILE.getValue())) { - throw new ProcessTaskPriorityIsEmptyException(); - } - } else { - if (channelPriorityList.stream().noneMatch(o -> o.getPriorityUuid().equals(priorityUuid))) { - throw new ProcessTaskPriorityNotMatchException(); - } + throw new ProcessTaskPriorityIsEmptyException(); } + List channelPriorityList = channelMapper.getChannelPriorityListByChannelUuid(channelUuid); + if (channelPriorityList.stream().noneMatch(o -> o.getPriorityUuid().equals(priorityUuid))) { + throw new ProcessTaskPriorityNotMatchException(); + } + } else { + jsonObj.remove("priorityUuid"); } + String owner = jsonObj.getString("owner"); if (StringUtils.isNotBlank(owner)) { if (owner.contains("#")) { diff --git a/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/neatlogic_tenant.sql new file mode 100644 index 0000000000000000000000000000000000000000..8c01ce2d1c6dd66823b1c3e09f6d7612e8fc4b24 --- /dev/null +++ b/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/neatlogic_tenant.sql @@ -0,0 +1,3 @@ +ALTER TABLE `channel` + ADD COLUMN `is_active_priority` TINYINT(1) DEFAULT 1 NOT NULL COMMENT '是否启用优先级' AFTER `is_active`, + ADD COLUMN `is_display_priority` TINYINT(1) DEFAULT 1 NOT NULL COMMENT '是否显示优先级' AFTER `is_active_priority`; \ No newline at end of file diff --git a/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/version.json b/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/version.json new file mode 100644 index 0000000000000000000000000000000000000000..453aad2de0de8ac6b6c35d85eb1e304e24bce81a --- /dev/null +++ b/src/main/resources/neatlogic/resources/process/changelog/2024-07-22/version.json @@ -0,0 +1,10 @@ +{ + "content":[ + { + "type":"新增功能", + "detail":[ + {"msg":"1.服务设置为优先级相关逻辑优化"} + ] + } + ] +} diff --git a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql index 412ea190357b69c6c431a7f8a9d4665cba0c4857..fc28bf1da570e65467e353968b562ed7eb85ab47 100644 --- a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql +++ b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql @@ -37,6 +37,8 @@ CREATE TABLE IF NOT EXISTS `channel` ( `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称', `parent_uuid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'catalog的uuid', `is_active` int NOT NULL COMMENT '是否启用', + `is_active_priority` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用优先级', + `is_display_priority` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否显示优先级', `icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标', `color` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '颜色', `desc` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '描述',