From 6ca7dceb0e915abed245d8842d84ababddbef98d Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 12 Jan 2026 12:54:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(wechat):=20=E6=94=AF=E6=8C=81=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E5=B5=8C=E5=A5=97=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现renderValue方法支持递归渲染Map类型的值 - 添加对非字符串类型值的直接返回处理 - 在任务服务中根据分组配置动态设置视频结果页面变量 - 为分组启用场景添加travelVideoCenter页面配置 - 为非分组场景保留videoSynthesis页面配置 --- .../WechatSubscribeNotifyTriggerService.java | 23 +++++++++++++++++-- .../task/impl/TaskTaskServiceImpl.java | 6 +++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ycwl/basic/service/notify/WechatSubscribeNotifyTriggerService.java b/src/main/java/com/ycwl/basic/service/notify/WechatSubscribeNotifyTriggerService.java index 0946a6c3..39a70bef 100644 --- a/src/main/java/com/ycwl/basic/service/notify/WechatSubscribeNotifyTriggerService.java +++ b/src/main/java/com/ycwl/basic/service/notify/WechatSubscribeNotifyTriggerService.java @@ -244,12 +244,31 @@ public class WechatSubscribeNotifyTriggerService { if (StringUtils.isBlank(key)) { continue; } - String rawValue = entry.getValue() != null ? entry.getValue().toString() : ""; - dataParam.put(key, render(rawValue, variables)); + dataParam.put(key, renderValue(entry.getValue(), variables)); } return dataParam; } + @SuppressWarnings("unchecked") + private static Object renderValue(Object value, Map variables) { + if (value == null) { + return ""; + } + if (value instanceof String) { + return render((String) value, variables); + } + if (value instanceof Map) { + Map mapValue = (Map) value; + Map result = new HashMap<>(); + for (Map.Entry entry : mapValue.entrySet()) { + result.put(entry.getKey(), renderValue(entry.getValue(), variables)); + } + return result; + } + // 其他类型(数字、布尔等)直接返回 + return value; + } + private static String renderOrDefault(String template, Map variables, String defaultValue) { if (StringUtils.isBlank(template)) { return defaultValue; diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index aad74d8a..fbf5104a 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -641,6 +641,12 @@ public class TaskTaskServiceImpl implements TaskService { variables.put("scenicName", scenic.getName()); variables.put("faceId", item.getFaceId()); variables.put("videoId", item.getVideoId()); + ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(item.getScenicId()); + if (configManager.getBoolean("grouping_enable", false)) { + variables.put("videoResultPage", "travelVideoCenter"); + } else { + variables.put("videoResultPage", "videoSynthesis"); + } variables.put("videoDeviceCount", videoTaskRepository.getTaskDeviceNum(taskId)); variables.put("videoLensCount", videoTaskRepository.getTaskLensNum(taskId)); variables.put("videoShotTime", DateUtil.format(videoTaskRepository.getTaskShotDate(taskId), "yyyy-MM-dd HH:mm"));