diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java index 79f97c95..3de0cf8e 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java @@ -68,7 +68,7 @@ import static java.util.stream.Collectors.toMap; @Slf4j @Component @RequiredArgsConstructor -class TodoRespBuilder { +public class TodoRespBuilder { private final TodoBusinessDao todoBusinessDao; private final TodoDao todoDao; @@ -295,7 +295,7 @@ class TodoRespBuilder { JSONObject routerParam, JSONObject appendRouterParam, ClientRequest request) { - UrlParser urlParser = new TodoUrlParser(cfg, entity, routerParam, appendRouterParam); + UrlParser urlParser = createTodoUrlParser(entity, routerParam, appendRouterParam); ParsedModelV3 parsedModel = modelV3Parser.parseModel(templateModel, bizParam, urlParser); ParsedModelV3Walker.walkDown(parsedModel, new ParsedModel3Visitor() { @@ -325,6 +325,12 @@ class TodoRespBuilder { return parsedModel; } + public TodoUrlParser createTodoUrlParser(MessageEntity entity, + JSONObject routerParam, + JSONObject appendRouterParam) { + return new TodoUrlParser(cfg, entity, routerParam, appendRouterParam); + } + public SessionUrlInfo parseSessionUrlInfo(UrlConfig urlConfig, @Nullable ClientRequest request) { SessionUrlInfo url = new SessionUrlInfo(); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSender.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSender.java index 64364ca0..b2fd791d 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSender.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSender.java @@ -6,11 +6,10 @@ import cn.axzo.msg.center.domain.entity.MessageEntity; import cn.axzo.msg.center.domain.entity.MessageTemplateV3; import cn.axzo.msg.center.domain.entity.Todo; import cn.axzo.msg.center.domain.entity.TodoBusiness; -import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; 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.NativeAppLinkUrlConfigVisitor; -import cn.axzo.msg.center.message.service.impl.v3.TodoUrlParser; +import cn.axzo.msg.center.message.service.todo.TodoRespBuilder; import cn.axzo.msg.center.message.service.todo.manage.TodoExt; import cn.axzo.msg.center.message.service.youmeng.YoumengPush; import cn.axzo.msg.center.message.service.youmeng.YoumengTemplateClient; @@ -50,7 +49,7 @@ class TodoPushSender implements ApplicationListener { private final YoumengTemplateClient youmengTemplateClient; private final TodoBusinessDao todoBusinessDao; private final PushDeviceService pushDeviceService; - private final PendingMessageBizConfig cfg; + private final TodoRespBuilder todoRespBuilder; @Override public void onApplicationEvent(@NotNull NewTodoEvent event) { @@ -116,7 +115,7 @@ class TodoPushSender implements ApplicationListener { JSONObject routerParam) { String json = JSON.toJSONString(urlConfig); UrlConfig copy = JSON.parseObject(json, UrlConfig.class); - new TodoUrlParser(cfg, entity, routerParam, routerParam).parseUrlConfig(copy); + todoRespBuilder.createTodoUrlParser(entity, routerParam, routerParam).parseUrlConfig(copy); return copy; } } \ No newline at end of file diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSenderNim.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSenderNim.java index 2e288950..6beddf3a 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSenderNim.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/event/TodoPushSenderNim.java @@ -11,7 +11,8 @@ import cn.axzo.msg.center.domain.entity.MessageTemplateV3; import cn.axzo.msg.center.domain.entity.Todo; import cn.axzo.msg.center.inside.notices.service.impl.v3.msg.TerminalAppMapping; import cn.axzo.msg.center.message.service.impl.v3.ModelV3Parser; -import cn.axzo.msg.center.message.service.impl.v3.UrlParser; +import cn.axzo.msg.center.message.service.impl.v3.TodoUrlParser; +import cn.axzo.msg.center.message.service.todo.TodoRespBuilder; import cn.axzo.msg.center.nimpush.NimPushService; import cn.axzo.msg.center.nimpush.PushChannel; import cn.axzo.msg.center.nimpush.PushExecutorConfig; @@ -48,6 +49,7 @@ public class TodoPushSenderNim implements ApplicationListener { private final ModelV3Parser modelV3Parser; private final TerminalAppMapping terminalAppMapping; private final PushDeviceService pushDeviceService; + private final TodoRespBuilder todoRespBuilder; @Qualifier(PushExecutorConfig.PUSH_EXECUTOR) private final ExecutorService executor; @@ -62,8 +64,10 @@ public class TodoPushSenderNim implements ApplicationListener { List appTypes = terminalAppMapping.toImTypes(pushTerminals); if (CollectionUtils.isEmpty(appTypes)) return; MessageEntity entity = event.getTodos().get(0); + TodoUrlParser urlParser = todoRespBuilder.createTodoUrlParser( + entity, entity.routerParam(), entity.routerParam()); ParsedModelV3 parsedModelV3 = modelV3Parser.parseModel( - event.getTemplateModel(), entity.bizParam(), new UrlParser(entity.routerParam())); + event.getTemplateModel(), entity.bizParam(), urlParser); PushData pushData = parsedModelV3.getPushData(); if (pushData != null && !pushData.determinePushable(log, parsedModelV3.getTemplateCode())) { return;