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

This commit is contained in:
yanglin 2024-10-12 09:49:29 +08:00
parent 9dc6ebdcd2
commit 6ba31e99b8

View File

@ -80,7 +80,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
return;
}
saveDetailRouter(router.getRouteDetail());
batchSaveButtonRouter(router.getRouteButtons(), isUpdate);
batchSaveButtonRouter(router.getRouteButtons());
}
@Override
@ -221,7 +221,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
messageRouterConfigDao.saveBatch(detailRouter.fetchMessageRouterConfigs());
}
private void batchSaveButtonRouter(List<MessageRouteButtonDTO> buttonRouters, boolean isUpdate) {
private void batchSaveButtonRouter(List<MessageRouteButtonDTO> buttonRouters) {
if (CollectionUtils.isEmpty(buttonRouters)) {
log.info("buttonRouters is empty.");
return;
@ -231,7 +231,7 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
.map(e -> MessageRouteButtonWrapper.of(e.fetchMessageRouteButton(), e))
.collect(Collectors.toList());
// 生成自定义按钮的唯一标识和顺序
buildButtonCodeAndPriority(routeButtonWrappers, isUpdate);
buildButtonCodeAndPriority(routeButtonWrappers);
// 保存模板对应的按钮路由
List<MessageRouteButton> routeButtons = routeButtonWrappers.stream()
.map(MessageRouteButtonWrapper::getRouteButton)
@ -244,10 +244,11 @@ public class MessageTemplateRouterServiceImpl implements MessageTemplateRouterSe
messageRouterConfigDao.saveBatch(routerConfigs);
}
private void buildButtonCodeAndPriority(List<MessageRouteButtonWrapper> routeButtonWrappers, boolean isUpdate) {
private void buildButtonCodeAndPriority(List<MessageRouteButtonWrapper> routeButtonWrappers) {
for (int i = 0; i < routeButtonWrappers.size(); i++) {
MessageRouteButton button = routeButtonWrappers.get(i).getRouteButton();
if (!isUpdate && RouterButtonSourceEnum.CUSTOM.equals(button.getSource())) {
if (StringUtils.isBlank(button.getBtnCode())
&& RouterButtonSourceEnum.CUSTOM.equals(button.getSource())) {
// 这里仅对自定义的按钮设置按钮标识
button.setBtnCode(UUIDUtil.uuidString());
}