Merge branch 'feature/REQ-3045' into dev
This commit is contained in:
commit
fdd64aabe2
@ -15,20 +15,15 @@ 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;
|
||||
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;
|
||||
import cn.axzo.msg.center.utils.JSONObjectUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@ -223,26 +218,15 @@ class TodoRespBuilder {
|
||||
ParsedModelV3 parsedModel = modelV3Parser.parseModel(templateModel, adapter,
|
||||
adapter.getBizExtParamObj(), authParam, routerParam, terminalProvider);
|
||||
response.setModelV3(parsedModel);
|
||||
ParsedModel3Walker.walkDown(parsedModel, new ModelV2PropsPopulator(response, terminalProvider));
|
||||
response.setDisplayOnCardKeyValues(parsedModel.determineDisplayOnCardKeyValues());
|
||||
response.setCardUrlOpenStrategy(templateModel.getTemplate().getCardUrlOpenStrategy());
|
||||
ParsedModel3Walker.walkDown(parsedModel, new ParsedModel3Visitor() {
|
||||
ParsedModel3Walker.walkDown(parsedModel, new ModelV2PropsPopulator(response, terminalProvider) {
|
||||
@Override
|
||||
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
|
||||
super.visitTemplateCardUrlConfig(urlConfig);
|
||||
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());
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user