hotfix: 更新模版时,不重新生成自定义按钮的code

This commit is contained in:
yanglin 2024-10-10 11:32:17 +08:00
parent 940c9c6c9a
commit b902ef6a68

View File

@ -16,6 +16,15 @@ import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.utils.UUIDUtil;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@ -26,14 +35,6 @@ import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @description
@ -79,7 +80,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
return;
}
saveDetailRouter(router.getRouteDetail());
batchSaveButtonRouter(router.getRouteButtons());
batchSaveButtonRouter(router.getRouteButtons(), isUpdate);
}
@Override
@ -220,7 +221,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
messageRouterConfigDao.saveBatch(detailRouter.fetchMessageRouterConfigs());
}
private void batchSaveButtonRouter(List<MessageRouteButtonDTO> buttonRouters) {
private void batchSaveButtonRouter(List<MessageRouteButtonDTO> buttonRouters, boolean isUpdate) {
if (CollectionUtils.isEmpty(buttonRouters)) {
log.info("buttonRouters is empty.");
return;
@ -230,7 +231,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
.map(e -> MessageRouteButtonWrapper.of(e.fetchMessageRouteButton(), e))
.collect(Collectors.toList());
// 生成自定义按钮的唯一标识和顺序
buildButtonCodeAndPriority(routeButtonWrappers);
buildButtonCodeAndPriority(routeButtonWrappers, isUpdate);
// 保存模板对应的按钮路由
List<MessageRouteButton> routeButtons = routeButtonWrappers.stream()
.map(MessageRouteButtonWrapper::getRouteButton)
@ -243,10 +244,10 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
messageRouterConfigDao.saveBatch(routerConfigs);
}
private void buildButtonCodeAndPriority(List<MessageRouteButtonWrapper> routeButtonWrappers) {
private void buildButtonCodeAndPriority(List<MessageRouteButtonWrapper> routeButtonWrappers, boolean isUpdate) {
for (int i = 0; i < routeButtonWrappers.size(); i++) {
MessageRouteButton button = routeButtonWrappers.get(i).getRouteButton();
if (RouterButtonSourceEnum.CUSTOM.equals(button.getSource())) {
if (!isUpdate && RouterButtonSourceEnum.CUSTOM.equals(button.getSource())) {
// 这里仅对自定义的按钮设置按钮标识
button.setBtnCode(UUIDUtil.uuidString());
}