REQ-3046: cms的IM跳转
This commit is contained in:
parent
6a1ff71eed
commit
f98b14c5e5
@ -9,9 +9,9 @@ import cn.axzo.msg.center.message.domain.vo.GeneralMessagePushVO.CardExtensionIt
|
||||
import cn.axzo.msg.center.message.domain.vo.GeneralMessagePushVO.Subtitle;
|
||||
import cn.axzo.msg.center.message.domain.vo.ParsedCardUrlForCms;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.AppLink;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.AppLinkUrlConfigVisitor;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.ModelV3ExtPopulator;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.ModelV3Parser;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.NativeAppLinkUrlConfigVisitor;
|
||||
import cn.axzo.msg.center.service.domain.MobileUrlConfig;
|
||||
import cn.axzo.msg.center.service.domain.UrlConfig;
|
||||
import cn.axzo.msg.center.service.domain.UrlConfigVisitor;
|
||||
@ -75,7 +75,7 @@ public class MessageTemplateParserV3 {
|
||||
cardDetailButton.setTitle("详情");
|
||||
cardDetailButton.setAction(RouterCategoryEnum.JUMP.name());
|
||||
cardDetailButton.setIsHighlight(false);
|
||||
cardDetailButton.setActionPaths(getAppLinks(urlConfig));
|
||||
cardDetailButton.setActionPaths(getNativeAppLinks(urlConfig));
|
||||
im.setCardDetailButton(cardDetailButton);
|
||||
|
||||
parseCardUrlForCms(im, urlConfig);
|
||||
@ -118,7 +118,7 @@ public class MessageTemplateParserV3 {
|
||||
AppLink appLink = new AppLink(TerminalTypeEnum.WEB_VIEW.name(), button.getApiUrl());
|
||||
imButton.setActionPaths(Collections.singletonList(appLink));
|
||||
} else {
|
||||
imButton.setActionPaths(getAppLinks(button.getUrlConfig()));
|
||||
imButton.setActionPaths(getNativeAppLinks(button.getUrlConfig()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,9 +148,9 @@ public class MessageTemplateParserV3 {
|
||||
im.getCardUrlForCms().setHasManagerAppUrl(true);
|
||||
}
|
||||
|
||||
private List<AppLink> getAppLinks(UrlConfig urlConfig) {
|
||||
private List<AppLink> getNativeAppLinks(UrlConfig urlConfig) {
|
||||
if (urlConfig == null) return Collections.emptyList();
|
||||
AppLinkUrlConfigVisitor visitor = new AppLinkUrlConfigVisitor();
|
||||
NativeAppLinkUrlConfigVisitor visitor = new NativeAppLinkUrlConfigVisitor();
|
||||
UrlConfigWalker.walkDown(urlConfig, visitor);
|
||||
return visitor.getLinks();
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import java.util.List;
|
||||
* @author yanglin
|
||||
*/
|
||||
@Getter
|
||||
public class AppLinkUrlConfigVisitor implements UrlConfigVisitor {
|
||||
public class NativeAppLinkUrlConfigVisitor implements UrlConfigVisitor {
|
||||
|
||||
private final List<AppLink> links = new ArrayList<>();
|
||||
|
||||
@ -6,7 +6,7 @@ import cn.axzo.msg.center.domain.entity.Todo;
|
||||
import cn.axzo.msg.center.domain.entity.TodoBusiness;
|
||||
import cn.axzo.msg.center.message.domain.dto.TemplateModelV3;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.AppLink;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.AppLinkUrlConfigVisitor;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.NativeAppLinkUrlConfigVisitor;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.ModelV3Parser;
|
||||
import cn.axzo.msg.center.message.service.todo.manage.TodoExt;
|
||||
import cn.axzo.msg.center.message.service.youmeng.YoumengPush;
|
||||
@ -27,7 +27,6 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
@ -78,7 +77,7 @@ class TodoPushSender implements ApplicationListener<NewTodoEvent> {
|
||||
routerParam.put(TodoExt.CTX, ctx);
|
||||
|
||||
UrlConfig parsedUrlConfig = modelV3Parser.parseUrlConfig(urlConfig, todo, routerParam);
|
||||
AppLinkUrlConfigVisitor visitor = new AppLinkUrlConfigVisitor();
|
||||
NativeAppLinkUrlConfigVisitor visitor = new NativeAppLinkUrlConfigVisitor();
|
||||
UrlConfigWalker.walkDown(parsedUrlConfig, visitor);
|
||||
return visitor.getLinks();
|
||||
}
|
||||
|
||||
@ -24,13 +24,11 @@ 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);
|
||||
@ -69,27 +67,24 @@ public class ModelV2PropsPopulator implements ParsedModel3Visitor {
|
||||
return;
|
||||
}
|
||||
if (terminalUrlSelector == null) return;
|
||||
terminalUrlSelector
|
||||
.select(buttonV3.getUrlConfig())
|
||||
.ifPresent(terminalUrl -> {
|
||||
ButtonRouterDTO buttonV2 = factory.get();
|
||||
buttonV2.setUrl(terminalUrl.getUrl().getUrl());
|
||||
buttonV2.setTerminalType(terminalUrl.getTerminalType());
|
||||
});
|
||||
terminalUrlSelector.select(buttonV3.getUrlConfig()).ifPresent(terminalUrl -> {
|
||||
ButtonRouterDTO buttonV2 = factory.get();
|
||||
buttonV2.setUrl(terminalUrl.getUrl().getUrl());
|
||||
buttonV2.setTerminalType(terminalUrl.getTerminalType());
|
||||
});
|
||||
}
|
||||
|
||||
@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());
|
||||
});
|
||||
if (terminalUrlSelector == null) return;
|
||||
terminalUrlSelector.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