REQ-3046: cms的IM跳转
This commit is contained in:
parent
ebfc00d18e
commit
6a1ff71eed
@ -25,8 +25,8 @@ 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.pending.response.v3.model.ParsedModelV3;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedTemplateV3;
|
import cn.axzo.msg.center.service.pending.response.v3.model.ParsedTemplateV3;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.PhoneInfo;
|
import cn.axzo.msg.center.service.pending.response.v3.model.PhoneInfo;
|
||||||
|
import cn.axzo.msg.center.service.pending.response.v3.model.SessionUrl;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.TerminalUrlSelector;
|
import cn.axzo.msg.center.service.pending.response.v3.model.TerminalUrlSelector;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.UrlInfoForRequest;
|
|
||||||
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
|
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@ -79,7 +79,7 @@ public class ModelV3Parser {
|
|||||||
@Override
|
@Override
|
||||||
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
|
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
|
||||||
urlParser.parseUrlConfig(urlConfig);
|
urlParser.parseUrlConfig(urlConfig);
|
||||||
parsedModel.getTemplate().getOrCreateCardUrl().setUrl(parseUrlInfoForRequest(urlConfig));
|
parsedModel.getTemplate().getOrCreateCardUrl().setUrl(parseSessionUrl(urlConfig));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -131,7 +131,7 @@ public class ModelV3Parser {
|
|||||||
urlParser.parseUrlConfig(urlConfig);
|
urlParser.parseUrlConfig(urlConfig);
|
||||||
ParsedGroupDetail parsedDetail = group.getGroupInfo().getOrCreateDetail();
|
ParsedGroupDetail parsedDetail = group.getGroupInfo().getOrCreateDetail();
|
||||||
parsedDetail.setName(group.getGroupInfo().getDetail().getName());
|
parsedDetail.setName(group.getGroupInfo().getDetail().getName());
|
||||||
parsedDetail.setUrl(parseUrlInfoForRequest(urlConfig));
|
parsedDetail.setUrl(parseSessionUrl(urlConfig));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -142,7 +142,7 @@ public class ModelV3Parser {
|
|||||||
@Override
|
@Override
|
||||||
public void visitButtonUrlConfig(ParsedButtonV3 button, UrlConfig urlConfig) {
|
public void visitButtonUrlConfig(ParsedButtonV3 button, UrlConfig urlConfig) {
|
||||||
urlParser.parseUrlConfig(urlConfig);
|
urlParser.parseUrlConfig(urlConfig);
|
||||||
button.setUrl(parseUrlInfoForRequest(urlConfig));
|
button.setUrl(parseSessionUrl(urlConfig));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -150,43 +150,43 @@ public class ModelV3Parser {
|
|||||||
model.removeEmptyKVGroups();
|
model.removeEmptyKVGroups();
|
||||||
}
|
}
|
||||||
|
|
||||||
private UrlInfoForRequest parseUrlInfoForRequest(UrlConfig urlConfig) {
|
private SessionUrl parseSessionUrl(UrlConfig urlConfig) {
|
||||||
return ModelV3Parser.this.parseUrlInfoForRequest(urlConfig, terminalProvider);
|
return ModelV3Parser.this.parseSessionUrl(urlConfig, terminalProvider);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return parsedModel;
|
return parsedModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UrlInfoForRequest parseUrlInfoForRequest(UrlConfig urlConfig,
|
public SessionUrl parseSessionUrl(UrlConfig urlConfig,
|
||||||
@Nullable TerminalProvider terminalProvider) {
|
@Nullable TerminalProvider terminalProvider) {
|
||||||
UrlInfoForRequest urlInfo = new UrlInfoForRequest();
|
SessionUrl session = new SessionUrl();
|
||||||
urlInfo.setUrlConfig(urlConfig);
|
session.setUrlConfig(urlConfig);
|
||||||
UrlConfigWalker.walkDown(urlConfig, new UrlConfigVisitor() {
|
UrlConfigWalker.walkDown(urlConfig, new UrlConfigVisitor() {
|
||||||
@Override
|
@Override
|
||||||
public void visitPcCms(WebUrl pcCms) {
|
public void visitPcCms(WebUrl pcCms) {
|
||||||
urlInfo.setHasCmsUrl(pcCms.hasUrl());
|
session.setHasCmsUrl(pcCms.hasUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitAppManagerIos(AppUrl ios) {
|
public void visitAppManagerIos(AppUrl ios) {
|
||||||
urlInfo.setHasManagerAppUrl(ios.hasUrl());
|
session.setHasManagerAppUrl(ios.hasUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitAppManagerAndroid(AppUrl android) {
|
public void visitAppManagerAndroid(AppUrl android) {
|
||||||
urlInfo.setHasManagerAppUrl(android.hasUrl());
|
session.setHasManagerAppUrl(android.hasUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
urlInfo.setAppTerminalType(terminalProvider == null ? null : terminalProvider.getAppTerminalType());
|
session.setAppTerminalType(terminalProvider == null ? null : terminalProvider.getAppTerminalType());
|
||||||
TerminalUrlSelector urlSelector = new TerminalUrlSelector(terminalProvider);
|
TerminalUrlSelector urlSelector = new TerminalUrlSelector(terminalProvider);
|
||||||
urlSelector.select(urlConfig).ifPresent(terminalUrl -> {
|
urlSelector.select(urlConfig).ifPresent(terminalUrl -> {
|
||||||
urlInfo.setUrl(terminalUrl.getUrl().getUrl());
|
session.setUrl(terminalUrl.getUrl().getUrl());
|
||||||
if (terminalUrl.getUrl() instanceof WebUrl)
|
if (terminalUrl.getUrl() instanceof WebUrl)
|
||||||
urlInfo.setWebOpenStrategy(((WebUrl) terminalUrl.getUrl()).getOpenStrategy());
|
session.setWebOpenStrategy(((WebUrl) terminalUrl.getUrl()).getOpenStrategy());
|
||||||
});
|
});
|
||||||
return urlInfo;
|
return session;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ParsedGroupV3> copyGroups(List<MessageTemplateGroupV3> groups) {
|
private List<ParsedGroupV3> copyGroups(List<MessageTemplateGroupV3> groups) {
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
package cn.axzo.msg.center.message.service.todo;
|
package cn.axzo.msg.center.message.service.todo;
|
||||||
|
|
||||||
import cn.axzo.maokai.api.util.Ref;
|
|
||||||
import cn.axzo.basics.common.BeanMapper;
|
import cn.axzo.basics.common.BeanMapper;
|
||||||
import cn.axzo.msg.center.dal.SampleTodos;
|
import cn.axzo.msg.center.dal.SampleTodos;
|
||||||
import cn.axzo.msg.center.dal.TodoBusinessDao;
|
import cn.axzo.msg.center.dal.TodoBusinessDao;
|
||||||
@ -225,7 +224,7 @@ class TodoRespBuilder {
|
|||||||
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
|
public void visitTemplateCardUrlConfig(UrlConfig urlConfig) {
|
||||||
super.visitTemplateCardUrlConfig(urlConfig);
|
super.visitTemplateCardUrlConfig(urlConfig);
|
||||||
ParsedCardUrl cardUrl = new ParsedCardUrl();
|
ParsedCardUrl cardUrl = new ParsedCardUrl();
|
||||||
cardUrl.setUrl(modelV3Parser.parseUrlInfoForRequest(urlConfig, terminalProvider));
|
cardUrl.setUrl(modelV3Parser.parseSessionUrl(urlConfig, terminalProvider));
|
||||||
response.setCardUrl(cardUrl);
|
response.setCardUrl(cardUrl);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -11,7 +11,7 @@ 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.pending.response.v3.model.ParsedTemplateV3;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.PersonInfo;
|
import cn.axzo.msg.center.service.pending.response.v3.model.PersonInfo;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.PhoneInfo;
|
import cn.axzo.msg.center.service.pending.response.v3.model.PhoneInfo;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.UrlInfoForRequest;
|
import cn.axzo.msg.center.service.pending.response.v3.model.SessionUrl;
|
||||||
import cn.axzo.msg.center.service.pending.response.v3.model.WorkerInfo;
|
import cn.axzo.msg.center.service.pending.response.v3.model.WorkerInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,9 +31,9 @@ public interface ParsedModel3Visitor {
|
|||||||
|
|
||||||
default void exitTemplateCardUrlConfig(UrlConfig urlConfig) {}
|
default void exitTemplateCardUrlConfig(UrlConfig urlConfig) {}
|
||||||
|
|
||||||
default void visitTemplateCardUrl(UrlInfoForRequest url) {}
|
default void visitTemplateCardUrl(SessionUrl url) {}
|
||||||
|
|
||||||
default void exitTemplateCardUrl(UrlInfoForRequest url) {}
|
default void exitTemplateCardUrl(SessionUrl url) {}
|
||||||
|
|
||||||
default void visitGroup(ParsedGroupV3 group) {}
|
default void visitGroup(ParsedGroupV3 group) {}
|
||||||
|
|
||||||
@ -71,9 +71,9 @@ public interface ParsedModel3Visitor {
|
|||||||
|
|
||||||
default void exitGroupDetail(ParsedGroupV3 group, ParsedGroupDetail detail) {}
|
default void exitGroupDetail(ParsedGroupV3 group, ParsedGroupDetail detail) {}
|
||||||
|
|
||||||
default void visitGroupDetailUrl(ParsedGroupV3 group, UrlInfoForRequest url) {}
|
default void visitGroupDetailUrl(ParsedGroupV3 group, SessionUrl url) {}
|
||||||
|
|
||||||
default void exitGroupDetailUrl(ParsedGroupV3 group, UrlInfoForRequest url) {}
|
default void exitGroupDetailUrl(ParsedGroupV3 group, SessionUrl url) {}
|
||||||
|
|
||||||
default void visitButton(ParsedButtonV3 button) {}
|
default void visitButton(ParsedButtonV3 button) {}
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ public interface ParsedModel3Visitor {
|
|||||||
|
|
||||||
default void exitButtonUrlConfig(ParsedButtonV3 button, UrlConfig urlConfig) {}
|
default void exitButtonUrlConfig(ParsedButtonV3 button, UrlConfig urlConfig) {}
|
||||||
|
|
||||||
default void visitButtonUrl(ParsedButtonV3 button, UrlInfoForRequest url) {}
|
default void visitButtonUrl(ParsedButtonV3 button, SessionUrl url) {}
|
||||||
|
|
||||||
default void exitButtonUrl(ParsedButtonV3 button, UrlInfoForRequest url) {}
|
default void exitButtonUrl(ParsedButtonV3 button, SessionUrl url) {}
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ public class ParsedButtonV3 implements MessageButton {
|
|||||||
/**
|
/**
|
||||||
* 按钮链接
|
* 按钮链接
|
||||||
*/
|
*/
|
||||||
private UrlInfoForRequest url;
|
private SessionUrl url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 按钮style配置
|
* 按钮style配置
|
||||||
|
|||||||
@ -12,5 +12,5 @@ public class ParsedCardUrl {
|
|||||||
/**
|
/**
|
||||||
* 链接信息
|
* 链接信息
|
||||||
*/
|
*/
|
||||||
private UrlInfoForRequest url;
|
private SessionUrl url;
|
||||||
}
|
}
|
||||||
@ -18,6 +18,6 @@ public class ParsedGroupDetail {
|
|||||||
/**
|
/**
|
||||||
* 链接
|
* 链接
|
||||||
*/
|
*/
|
||||||
private UrlInfoForRequest url;
|
private SessionUrl url;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import lombok.Setter;
|
|||||||
*/
|
*/
|
||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
public class UrlInfoForRequest {
|
public class SessionUrl {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 链接地址
|
* 链接地址
|
||||||
@ -40,6 +40,8 @@ public class UrlInfoForRequest {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 原始的url的配置
|
* 原始的url的配置
|
||||||
|
* <p/>
|
||||||
|
* For debug purpose
|
||||||
*/
|
*/
|
||||||
private UrlConfig urlConfig;
|
private UrlConfig urlConfig;
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user