From f4b6843a1b3990453d2aef6d87b5ac30723c5870 Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期一, 20 四月 2026 17:54:06 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/tcm-training
---
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/points/service/PointsExchangeAppService.java | 35 ++++++++++++++++++++++++++++++++++-
1 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/points/service/PointsExchangeAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/points/service/PointsExchangeAppService.java
index 831d708..2001a76 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/points/service/PointsExchangeAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/points/service/PointsExchangeAppService.java
@@ -4,6 +4,9 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.tcm.training.admin.app.notice.service.AppSystemNoticeDispatchCommand;
+import com.tcm.training.admin.app.notice.service.AppSystemNoticeDispatchService;
+import com.tcm.training.admin.app.notice.service.AppSystemNoticeType;
import com.tcm.training.admin.common.DateTimes;
import com.tcm.training.admin.common.PageResponse;
import com.tcm.training.admin.common.PhoneMasker;
@@ -27,18 +30,23 @@
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
@Service
public class PointsExchangeAppService {
private final PointsExchangeOrderMapper pointsExchangeOrderMapper;
private final PointsExchangeOrderItemMapper pointsExchangeOrderItemMapper;
+ private final AppSystemNoticeDispatchService appSystemNoticeDispatchService;
public PointsExchangeAppService(PointsExchangeOrderMapper pointsExchangeOrderMapper,
- PointsExchangeOrderItemMapper pointsExchangeOrderItemMapper) {
+ PointsExchangeOrderItemMapper pointsExchangeOrderItemMapper,
+ AppSystemNoticeDispatchService appSystemNoticeDispatchService) {
this.pointsExchangeOrderMapper = pointsExchangeOrderMapper;
this.pointsExchangeOrderItemMapper = pointsExchangeOrderItemMapper;
+ this.appSystemNoticeDispatchService = appSystemNoticeDispatchService;
}
public PageResponse<PointsExchangeOrderListItemVO> pageOrders(int page,
@@ -144,6 +152,7 @@
order.setTrackingNo(request.getTrackingNo().trim());
order.setShippedAt(now);
pointsExchangeOrderMapper.updateById(order);
+ dispatchOrderShippedNotice(order);
}
@Transactional
@@ -156,6 +165,30 @@
item.setShippedAt(now);
pointsExchangeOrderItemMapper.updateById(item);
refreshOrderStatus(item.getOrderId(), request.getTrackingNo().trim(), now);
+ dispatchOrderShippedNotice(requireOrder(item.getOrderId()));
+ }
+
+ /**
+ * 在订单发货后为诊所用户发送订单状态更新通知。
+ */
+ private void dispatchOrderShippedNotice(PointsExchangeOrder order) {
+ if (order == null || order.getId() == null || order.getClinicAppUserId() == null) {
+ return;
+ }
+ AppSystemNoticeDispatchCommand command = new AppSystemNoticeDispatchCommand();
+ command.setAppUserId(order.getClinicAppUserId());
+ command.setNoticeTypeCode(AppSystemNoticeType.ORDER_STATUS_UPDATE);
+ command.setTitle("订单状态更新");
+ command.setContent("您的礼品兑换订单已发货");
+ command.setReferenceType("POINTS_EXCHANGE_ORDER_SHIPPED");
+ command.setReferenceId(order.getId());
+ command.setRequireUserSetting(Boolean.TRUE);
+ Map<String, String> payload = new LinkedHashMap<String, String>();
+ payload.put("orderId", String.valueOf(order.getId()));
+ payload.put("orderNo", defaultText(order.getOrderNo()));
+ payload.put("trackingNo", defaultText(order.getTrackingNo()));
+ command.setPayload(payload);
+ appSystemNoticeDispatchService.createAndPush(command);
}
@Transactional
--
Gitblit v1.7.1