REQ-3046: fix bug

This commit is contained in:
yanglin 2024-10-22 16:46:17 +08:00
parent d0a59ed315
commit e98710a703
2 changed files with 21 additions and 16 deletions

View File

@ -13,11 +13,8 @@ import cn.axzo.msg.center.message.service.impl.v3.ModelV3Parser;
import cn.axzo.msg.center.message.service.impl.v3.ModelV3Service;
import cn.axzo.msg.center.message.service.todo.manage.TodoExt;
import cn.axzo.msg.center.service.domain.UrlConfig;
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
import cn.axzo.msg.center.service.dto.IdentityDTO;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum;
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
import cn.axzo.msg.center.service.pending.TerminalProvider;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
@ -26,7 +23,6 @@ import cn.axzo.msg.center.service.pending.response.v3.ParsedModel3Visitor;
import cn.axzo.msg.center.service.pending.response.v3.ParsedModel3Walker;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedCardUrl;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3;
import cn.axzo.msg.center.service.pending.response.v3.model.TerminalUrlSelector;
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
import cn.axzo.msg.center.utils.JSONObjectUtil;
import cn.hutool.core.date.DateUtil;
@ -221,17 +217,6 @@ class TodoRespBuilder {
ParsedCardUrl cardUrl = new ParsedCardUrl();
cardUrl.setUrl(modelV3Parser.parseUrlInfoForRequest(urlConfig, terminalProvider));
response.setCardUrl(cardUrl);
// 兼容老逻辑
new TerminalUrlSelector(terminalProvider)
.select(urlConfig)
.ifPresent(terminalUrl -> {
DetailRouterDTO detail = new DetailRouterDTO();
response.setDetailRouter(detail);
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
detail.setUrl(terminalUrl.getUrl().getUrl());
detail.setTerminalType(terminalUrl.getTerminalType());
});
}
});
}

View File

@ -1,7 +1,11 @@
package cn.axzo.msg.center.service.pending.response.v3;
import cn.axzo.msg.center.service.domain.UrlConfig;
import cn.axzo.msg.center.service.dto.ButtonRouterDTO;
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO;
import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum;
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
import cn.axzo.msg.center.service.pending.TerminalProvider;
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
@ -20,11 +24,13 @@ import java.util.function.Supplier;
public class ModelV2PropsPopulator implements ParsedModel3Visitor {
private final PendingMessageResponse response;
private final TerminalProvider terminalProvider;
@Nullable private final TerminalUrlSelector terminalUrlSelector;
public ModelV2PropsPopulator(PendingMessageResponse response,
TerminalProvider terminalProvider) {
this.response = response;
this.terminalProvider = terminalProvider;
this.terminalUrlSelector = terminalProvider == null
? null
: new TerminalUrlSelector(terminalProvider);
@ -72,4 +78,18 @@ public class ModelV2PropsPopulator implements ParsedModel3Visitor {
});
}
}
@Override
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
new TerminalUrlSelector(terminalProvider)
.select(urlConfig)
.ifPresent(terminalUrl -> {
DetailRouterDTO detail = new DetailRouterDTO();
response.setDetailRouter(detail);
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
detail.setUrl(terminalUrl.getUrl().getUrl());
detail.setTerminalType(terminalUrl.getTerminalType());
});
}
}