REQ-3046: 适配详情

This commit is contained in:
yanglin 2024-10-18 17:39:19 +08:00
parent bacba962ed
commit d5ba4b339f

View File

@ -1,5 +1,6 @@
package cn.axzo.msg.center.message.service.todo;
import cn.axzo.maokai.api.util.Ref;
import cn.axzo.msg.center.dal.SampleTodos;
import cn.axzo.msg.center.dal.TodoBusinessDao;
import cn.axzo.msg.center.dal.TodoBusinesses;
@ -13,7 +14,6 @@ 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.domain.parse.TerminalUrl;
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
import cn.axzo.msg.center.service.dto.IdentityDTO;
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
@ -22,7 +22,6 @@ 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.PendingMessageSimpleDTO;
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;
@ -216,28 +215,30 @@ class TodoRespBuilder {
ParsedModel3Walker.walkDown(parsedModel, new ModelV2PropsPopulator(response, terminalProvider));
response.setDisplayOnCardKeyValues(parsedModel.determineDisplayOnCardKeyValues());
response.setCardUrlOpenStrategy(templateModel.getTemplate().getCardUrlOpenStrategy());
DetailRouterDTO detail = new DetailRouterDTO();
response.setDetailRouter(detail);
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
Ref<Boolean> detailSet = Ref.create(false);
ParsedModel3Walker.walkDown(parsedModel, new ParsedModel3Visitor() {
@Override
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
response.setCardUrl(urlConfig);
// 兼容老逻辑
TerminalUrl terminalUrl = new TerminalUrlParser(terminalProvider)
new TerminalUrlParser(terminalProvider)
.parseTerminalUrl(urlConfig)
.orElse(null);
DetailRouterDTO detail = new DetailRouterDTO();
response.setDetailRouter(detail);
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
if (terminalUrl != null) {
detail.setUrl(terminalUrl.getUrl());
detail.setTerminalType(terminalUrl.getTerminalType());
} else {
String detailUrl = pendingMessageBizConfig.getTodoDetailUrl();
detail.setUrl(String.format("%s?identityCode=%s", detailUrl, adapter.getIdentityCode()));
detail.setTerminalType(terminalProvider.getTerminalType());
}
.ifPresent(terminalUrl -> {
detail.setUrl(terminalUrl.getUrl());
detail.setTerminalType(terminalUrl.getTerminalType());
detailSet.set(true);
});
}
});
if (!detailSet.get()) {
String detailUrl = pendingMessageBizConfig.getTodoDetailUrl();
detail.setUrl(String.format("%s?identityCode=%s", detailUrl, adapter.getIdentityCode()));
detail.setTerminalType(terminalProvider.getTerminalType());
}
}
response.setIdentityCode(adapter.getIdentityCode());