Merge branch 'feature/REQ-3045' into dev

This commit is contained in:
yanglin 2024-10-21 18:10:26 +08:00
commit acdff78412
4 changed files with 24 additions and 16 deletions

View File

@ -342,7 +342,6 @@ public class PendingMessageDTO implements Serializable {
.modelV3(modelV3)
.displayOnCardKeyValues(modelV3.determineDisplayOnCardKeyValues())
.cardUrlOpenStrategy(cardUrlOpenStrategy)
.cardUrl(cardUrl)
.build();
if (modelV3 != null)
ParsedModel3Walker.walkDown(modelV3, new ModelV2PropsPopulator(response, terminalProvider));

View File

@ -154,24 +154,30 @@ public class ModelV3Parser {
}
private UrlInfoForRequest parseUrlInfoForRequest(UrlConfig urlConfig) {
UrlInfoForRequest urlInfo = new UrlInfoForRequest();
urlInfo.setHasAppUrl(hasAppUrl(urlConfig));
if (terminalProvider != null) {
urlInfo.setCurrentTerminalCms(
terminalProvider.getAppTerminalType() == AppTerminalTypeEnum.CMS_WEB_PC);
}
urlSelector.select(urlConfig).ifPresent(terminalUrl -> {
urlInfo.setUrl(terminalUrl.getUrl().getUrl());
if (terminalUrl.getUrl() instanceof WebUrl)
urlInfo.setWebOpenStrategy(((WebUrl) terminalUrl.getUrl()).getOpenStrategy());
});
return urlInfo;
return ModelV3Parser.this.parseUrlInfoForRequest(urlConfig, terminalProvider);
}
});
return parsedModel;
}
public UrlInfoForRequest parseUrlInfoForRequest(UrlConfig urlConfig,
TerminalProvider terminalProvider) {
UrlInfoForRequest urlInfo = new UrlInfoForRequest();
urlInfo.setHasAppUrl(hasAppUrl(urlConfig));
if (terminalProvider != null) {
urlInfo.setCurrentTerminalCms(
terminalProvider.getAppTerminalType() == AppTerminalTypeEnum.CMS_WEB_PC);
}
TerminalUrlSelector urlSelector = new TerminalUrlSelector(terminalProvider);
urlSelector.select(urlConfig).ifPresent(terminalUrl -> {
urlInfo.setUrl(terminalUrl.getUrl().getUrl());
if (terminalUrl.getUrl() instanceof WebUrl)
urlInfo.setWebOpenStrategy(((WebUrl) terminalUrl.getUrl()).getOpenStrategy());
});
return urlInfo;
}
private boolean hasAppUrl(UrlConfig urlConfig) {
AppLinkUrlConfigVisitor visitor = new AppLinkUrlConfigVisitor();
UrlConfigWalker.walkDown(urlConfig, visitor);

View File

@ -26,6 +26,7 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
import cn.axzo.msg.center.service.pending.response.v3.ModelV2PropsPopulator;
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;
@ -228,7 +229,9 @@ class TodoRespBuilder {
ParsedModel3Walker.walkDown(parsedModel, new ParsedModel3Visitor() {
@Override
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
response.setCardUrl(urlConfig);
ParsedCardUrl cardUrl = new ParsedCardUrl();
cardUrl.setUrl(modelV3Parser.parseUrlInfoForRequest(urlConfig, terminalProvider));
response.setCardUrl(cardUrl);
// 兼容老逻辑
new TerminalUrlSelector(terminalProvider)
.select(urlConfig)

View File

@ -2,7 +2,6 @@ package cn.axzo.msg.center.service.pending.response;
import cn.axzo.msg.center.api.custombutton.ProposedButtonFilter;
import cn.axzo.msg.center.api.custombutton.ProposedButtons;
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.IdentityDTO;
@ -16,6 +15,7 @@ import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
import cn.axzo.msg.center.service.enums.TodoQueryType;
import cn.axzo.msg.center.service.enums.TodoType;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedCardUrl;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedKV;
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3;
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
@ -266,7 +266,7 @@ public class PendingMessageResponse implements Serializable, TodoInfoProvider, M
/**
* 卡片跳转
*/
private UrlConfig cardUrl;
private ParsedCardUrl cardUrl;
@SuppressWarnings({"unused", "used by yoke"})
public void adjustProposedButtons(boolean forPromoter) {