From 11029948d45564975527b2c21e9c2def1903164a Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期四, 14 五月 2026 14:30:23 +0800
Subject: [PATCH] 优化fix
---
backend/src/main/java/com/sinata/appointment/service/IntegrationWechatService.java | 36 +++++++++++++++++++++++++++++++++---
1 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/backend/src/main/java/com/sinata/appointment/service/IntegrationWechatService.java b/backend/src/main/java/com/sinata/appointment/service/IntegrationWechatService.java
index 4b111c0..09fad61 100644
--- a/backend/src/main/java/com/sinata/appointment/service/IntegrationWechatService.java
+++ b/backend/src/main/java/com/sinata/appointment/service/IntegrationWechatService.java
@@ -39,6 +39,8 @@
"BX49OBHvRcoYiCw0ZLqx04BiWQ9KaEQwuVth_Lh_M2A";
private static final String APPROVAL_TODO_PAGE = "pages/reviewList/index";
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ private static final DateTimeFormatter TEMPLATE_TIME_FORMATTER =
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
private final WechatMiniGateway wechatMiniGateway;
private final MpUserMapper mpUserMapper;
@@ -65,7 +67,7 @@
Map<String, String> templateData = new LinkedHashMap<>();
templateData.put("thing1", approved ? "审核通过" : "审核未通过");
templateData.put("thing2", abbreviate(resolveSubmitterName(submitter), 20));
- templateData.put("time3", buildVisitTimeText(order));
+ templateData.put("time3", buildVisitTemplateTimeValue(order));
templateData.put("thing4", abbreviate(buildVisitReasonText(order), 20));
wechatMiniGateway.sendSubscribeMessage(
submitter.getOpenId(), APPROVAL_RESULT_TEMPLATE_ID, APPROVAL_RESULT_PAGE, templateData);
@@ -83,7 +85,7 @@
}
Map<String, String> templateData = new LinkedHashMap<>();
templateData.put("thing6", buildVisitorCountText(visitorCount));
- templateData.put("time18", buildVisitTimeText(order));
+ templateData.put("time18", buildVisitTemplateTimeValue(order));
templateData.put("thing20", abbreviate(buildNoticeBusinessTypeText(order, approved), 20));
for (MpUser noticeUser : noticeUsers) {
if (noticeUser == null || !StringUtils.hasText(noticeUser.getOpenId())) {
@@ -179,6 +181,25 @@
};
}
+ private String buildVisitTemplateTimeValue(AppointmentOrder order) {
+ LocalDate start = order.getVisitStartDate();
+ LocalDate end = order.getVisitEndDate();
+ if (start == null && end == null) {
+ return "2099-12-31 00:00";
+ }
+ if (start == null) {
+ start = end;
+ }
+ if (end == null) {
+ end = start;
+ }
+ return switch (safeTrim(order.getVisitTimeMode())) {
+ case "MULTI" -> start.atTime(0, 0).format(TEMPLATE_TIME_FORMATTER);
+ default -> start.atTime(resolveTemplateHour(order.getVisitTimeSlot()), 0)
+ .format(TEMPLATE_TIME_FORMATTER);
+ };
+ }
+
private String buildVisitReasonText(AppointmentOrder order) {
String reasonCode = safeTrim(order.getVisitReasonCode());
if (!StringUtils.hasText(reasonCode)) {
@@ -186,7 +207,7 @@
}
if (AppointmentBizConstants.VISIT_REASON_OTHER.equalsIgnoreCase(reasonCode)) {
String other = safeTrim(order.getVisitReasonOther());
- return StringUtils.hasText(other) ? other : "其他";
+ return StringUtils.hasText(other) ? "其他:" + other : "其他";
}
BizVisitReason reason =
bizVisitReasonMapper.selectOne(
@@ -239,6 +260,15 @@
};
}
+ private int resolveTemplateHour(String slot) {
+ return switch (safeTrim(slot)) {
+ case "AM" -> 9;
+ case "PM" -> 14;
+ case "ALL_DAY" -> 9;
+ default -> 9;
+ };
+ }
+
private String formatDate(LocalDate date) {
return date.format(DATE_FORMATTER);
}
--
Gitblit v1.7.1