Merge branch 'feature/REQ-3045' into dev
This commit is contained in:
commit
acdff78412
@ -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));
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user