REQ-3045: 协助原生跳待办新页面
This commit is contained in:
parent
18e955c6b9
commit
7cbb50e4f3
@ -11,9 +11,13 @@ import cn.axzo.msg.center.service.domain.UrlConfigVisitor;
|
||||
import cn.axzo.msg.center.service.domain.UrlConfigWalker;
|
||||
import cn.axzo.msg.center.service.domain.url.AppUrl;
|
||||
import cn.axzo.msg.center.service.domain.url.WebUrl;
|
||||
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
|
||||
import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum;
|
||||
import cn.axzo.msg.center.service.enums.BizDetailShowStrategyEnum;
|
||||
import cn.axzo.msg.center.service.enums.GroupType;
|
||||
import cn.axzo.msg.center.service.enums.KVContentType;
|
||||
import cn.axzo.msg.center.service.pending.ClientRequest;
|
||||
import cn.axzo.msg.center.service.pending.response.PendingMessageResponse;
|
||||
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.ComponentWorkerGroup;
|
||||
@ -208,6 +212,21 @@ public class ModelV3Parser {
|
||||
return copy;
|
||||
}
|
||||
|
||||
/**
|
||||
* 协助原生跳待办新页面
|
||||
*/
|
||||
public void maybeSetDetailUrlForNativeApp(PendingMessageResponse response,
|
||||
ClientRequest clientRequest) {
|
||||
if (response.getDetailRouter() != null) return;
|
||||
DetailRouterDTO detail = new DetailRouterDTO();
|
||||
response.setDetailRouter(detail);
|
||||
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
|
||||
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
|
||||
detail.setUrl(String.format("%s?identityCode=%s",
|
||||
cfg.getTodoDetailUrl(), response.getIdentityCode()));
|
||||
detail.setTerminalType(clientRequest == null ? null : clientRequest.getTerminalType());
|
||||
}
|
||||
|
||||
@RequiredArgsConstructor
|
||||
private class UrlParser implements UrlConfigVisitor {
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.msg.center.message.service.todo;
|
||||
|
||||
import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.ModelV3Parser;
|
||||
import cn.axzo.msg.center.service.domain.UrlConfig;
|
||||
import cn.axzo.msg.center.service.dto.ButtonRouterDTO;
|
||||
import cn.axzo.msg.center.service.dto.DetailRouterDTO;
|
||||
@ -26,15 +26,15 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class ModelV2PropsPopulator implements ParsedModel3Visitor {
|
||||
|
||||
private final PendingMessageBizConfig pendingMessageBizConfig;
|
||||
private final ModelV3Parser modelV3Parser;
|
||||
private final PendingMessageResponse response;
|
||||
@Nullable private final ClientRequest request;
|
||||
@Nullable private final SessionUrlSelector sessionUrlSelector;
|
||||
|
||||
public ModelV2PropsPopulator(PendingMessageBizConfig pendingMessageBizConfig,
|
||||
public ModelV2PropsPopulator(ModelV3Parser modelV3Parser,
|
||||
PendingMessageResponse response,
|
||||
@Nullable ClientRequest request) {
|
||||
this.pendingMessageBizConfig = pendingMessageBizConfig;
|
||||
this.modelV3Parser = modelV3Parser;
|
||||
this.response = response;
|
||||
this.request = request;
|
||||
this.sessionUrlSelector = request == null
|
||||
@ -111,19 +111,9 @@ public class ModelV2PropsPopulator implements ParsedModel3Visitor {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 协助原生跳待办新页面
|
||||
*/
|
||||
@Override
|
||||
public void exitTemplate(ParsedTemplateV3 template) {
|
||||
if (response.getDetailRouter() != null) return;
|
||||
DetailRouterDTO detail = new DetailRouterDTO();
|
||||
response.setDetailRouter(detail);
|
||||
detail.setShowStrategy(BizDetailShowStrategyEnum.JUMP_TO);
|
||||
detail.setJumpStrategy(BizDetailJumpStrategyEnum.BUSINESS);
|
||||
detail.setUrl(String.format("%s?identityCode=%s",
|
||||
pendingMessageBizConfig.getTodoDetailUrl(), response.getIdentityCode()));
|
||||
detail.setTerminalType(request == null ? null : request.getTerminalType());
|
||||
modelV3Parser.maybeSetDetailUrlForNativeApp(response, request);
|
||||
}
|
||||
|
||||
}
|
||||
@ -25,6 +25,7 @@ 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.ParsedTemplateV3;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
import cn.axzo.msg.center.utils.JSONObjectUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@ -230,6 +231,11 @@ class TodoRespBuilder {
|
||||
cardUrl.setUrl(modelV3Parser.parseSessionUrlInfo(urlConfig, request));
|
||||
response.setCardUrl(cardUrl);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exitTemplate(ParsedTemplateV3 template) {
|
||||
modelV3Parser.maybeSetDetailUrlForNativeApp(response, request);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@ -239,7 +245,7 @@ class TodoRespBuilder {
|
||||
ModelVersion version = ModelVersion.of(request.getModelVersion());
|
||||
if (version.is(ModelVersion.V2) || version.is(ModelVersion.ALL))
|
||||
ParsedModel3Walker.walkDown(parsedModel,
|
||||
new ModelV2PropsPopulator(pendingMessageBizConfig, response, request));
|
||||
new ModelV2PropsPopulator(modelV3Parser, response, request));
|
||||
if (version.is(ModelVersion.V3) || version.is(ModelVersion.ALL))
|
||||
modelV3Builder.run();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user