From e39dda2f25df9680e66c9e0dd3a606149e21bcc5 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 22 四月 2026 20:06:37 +0800
Subject: [PATCH] 代码生成

---
 server/web/src/main/java/com/doumee/api/web/PaymentCallback.java |  114 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 89 insertions(+), 25 deletions(-)

diff --git a/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java b/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
index 40e530d..43989ac 100644
--- a/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
+++ b/server/web/src/main/java/com/doumee/api/web/PaymentCallback.java
@@ -4,11 +4,17 @@
 import com.doumee.config.wx.WxPayV3Service;
 import com.doumee.core.constants.Constants;
 import com.doumee.core.utils.ID;
+import com.doumee.core.utils.aliyun.AliSmsService;
+import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.OrdersRefundMapper;
 import com.doumee.dao.business.OrdersMapper;
+import com.doumee.dao.business.SmsrecordMapper;
+import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Notice;
 import com.doumee.dao.business.model.Orders;
 import com.doumee.dao.business.model.OrdersRefund;
+import com.doumee.dao.business.model.Smsrecord;
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.service.business.NoticeService;
 import com.doumee.service.business.OrdersService;
 import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
@@ -49,6 +55,12 @@
 
     @Autowired
     private NoticeService noticeService;
+
+    @Autowired
+    private SmsrecordMapper smsrecordMapper;
+
+    @Autowired
+    private MemberMapper memberMapper;
 
 
     // ==================== V2 鍥炶皟 ====================
@@ -171,32 +183,84 @@
                             .last("limit 1"));
             if (refundRecord != null) {
                 Status refundStatus = refundNotification.getRefundStatus();
-                if (Status.SUCCESS.equals(refundStatus)) {
-                    refundRecord.setStatus(Constants.ONE); // 閫�娆炬垚鍔�
-                    refundRecord.setRefundTime(new java.util.Date());
-                } else if (Status.CLOSED.equals(refundStatus) || Status.ABNORMAL.equals(refundStatus)) {
-                    refundRecord.setStatus(Constants.TWO); // 閫�娆惧け璐�
-                }
-                ordersRefundMapper.updateById(refundRecord);
-                log.info("閫�娆捐褰曠姸鎬佸凡鏇存柊, refundRecordId={}, status={}", refundRecord.getId(), refundRecord.getStatus());
 
-                // 閫�娆炬垚鍔� 鈫� 閫氱煡浼氬憳
-                if (Status.SUCCESS.equals(refundStatus) && refundRecord.getOrderId() != null) {
-                    Orders refundOrder = ordersMapper.selectById(refundRecord.getOrderId());
-                    if (refundOrder != null) {
-                        Notice notice = new Notice();
-                        notice.setUserType(0);
-                        notice.setUserId(refundOrder.getMemberId());
-                        notice.setTitle(Constants.MemberOrderNotify.REFUNDED.getTitle());
-                        notice.setContent(Constants.MemberOrderNotify.REFUNDED.format(
-                                "orderNo", refundOrder.getCode(),
-                                "amount", String.valueOf(Constants.getFormatMoney(refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L))));
-                        notice.setObjId(refundOrder.getId());
-                        notice.setObjType(0);
-                        notice.setStatus(0);
-                        notice.setIsdeleted(Constants.ZERO);
-                        notice.setCreateDate(new java.util.Date());
-                        noticeService.create(notice);
+                // 骞傜瓑鍒ゆ柇锛氬凡鎴愬姛/宸插け璐ョ殑涓嶉噸澶嶅鐞�
+                if (!Constants.equalsInteger(refundRecord.getStatus(), Constants.ZERO)) {
+                    log.info("閫�娆捐褰曞凡澶勭悊, refundRecordId={}, status={}, 璺宠繃", refundRecord.getId(), refundRecord.getStatus());
+                } else {
+                    if (Status.SUCCESS.equals(refundStatus)) {
+                        refundRecord.setStatus(Constants.ONE); // 閫�娆炬垚鍔�
+                        refundRecord.setRefundTime(new java.util.Date());
+                    } else if (Status.CLOSED.equals(refundStatus) || Status.ABNORMAL.equals(refundStatus)) {
+                        refundRecord.setStatus(Constants.TWO); // 閫�娆惧け璐�
+                        refundRecord.setRemark("寰俊閫�娆惧け璐�: " + refundStatus.name());
+                    }
+                    // PROCESSING 鐘舵�佹棤鍙樺寲锛屼笉鏇存柊
+                    ordersRefundMapper.updateById(refundRecord);
+                    log.info("閫�娆捐褰曠姸鎬佸凡鏇存柊, refundRecordId={}, status={}", refundRecord.getId(), refundRecord.getStatus());
+
+                    // 閫�娆炬垚鍔� 鈫� 閫氱煡浼氬憳
+                    if (Status.SUCCESS.equals(refundStatus) && refundRecord.getOrderId() != null) {
+                        Orders refundOrder = ordersMapper.selectById(refundRecord.getOrderId());
+                        if (refundOrder != null) {
+                            Notice notice = new Notice();
+                            notice.setUserType(0);
+                            notice.setUserId(refundOrder.getMemberId());
+                            notice.setTitle(Constants.MemberOrderNotify.REFUNDED.getTitle());
+                            notice.setContent(Constants.MemberOrderNotify.REFUNDED.format(
+                                    "orderNo", refundOrder.getCode(),
+                                    "amount", String.valueOf(Constants.getFormatMoney(refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L))));
+                            notice.setObjId(refundOrder.getId());
+                            notice.setObjType(0);
+                            notice.setStatus(0);
+                            notice.setIsdeleted(Constants.ZERO);
+                            notice.setCreateDate(new java.util.Date());
+                            noticeService.create(notice);
+
+                            // 鐭俊閫氱煡浼氬憳锛氶��娆惧凡瀹屾垚
+                            Member refundMember = memberMapper.selectById(refundOrder.getMemberId());
+                            if (refundMember != null && StringUtils.isNotBlank(refundMember.getTelephone())) {
+                                String smsContent = Constants.SmsNotify.MEMBER_REFUNDED.format(
+                                        "orderNo", refundOrder.getCode(),
+                                        "money", String.valueOf(Constants.getFormatMoney(
+                                                refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L)));
+                                try {
+                                    JSONObject templateParam = new JSONObject();
+                                    templateParam.put("orderNo", refundOrder.getCode());
+                                    templateParam.put("money", String.valueOf(Constants.getFormatMoney(
+                                            refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L)));
+                                    boolean smsResult = AliSmsService.sendSms(refundMember.getTelephone(),
+                                            Constants.SmsNotify.MEMBER_REFUNDED.getTemplateCode(),
+                                            templateParam.toJSONString());
+                                    if (smsResult) {
+                                        log.info("閫�娆剧煭淇″彂閫佹垚鍔�: phone={}", refundMember.getTelephone());
+                                    } else {
+                                        log.warn("閫�娆剧煭淇″彂閫佸け璐�: phone={}", refundMember.getTelephone());
+                                    }
+                                    // 瀛樺偍鐭俊璁板綍
+                                    Smsrecord smsRecord = new Smsrecord();
+                                    smsRecord.setPhone(refundMember.getTelephone());
+                                    smsRecord.setContent(smsContent);
+                                    smsRecord.setType(Constants.ONE);
+                                    smsRecord.setStatus(smsResult ? Constants.ONE : Constants.ZERO);
+                                    smsRecord.setCreateTime(new java.util.Date());
+                                    smsRecord.setDeleted(Constants.ZERO);
+                                    smsrecordMapper.insert(smsRecord);
+                                } catch (Exception smsEx) {
+                                    log.error("閫�娆剧煭淇″彂閫佸紓甯�: {}", smsEx.getMessage());
+                                    try {
+                                        Smsrecord smsRecord = new Smsrecord();
+                                        smsRecord.setPhone(refundMember.getTelephone());
+                                        smsRecord.setContent(smsContent);
+                                        smsRecord.setType(Constants.ONE);
+                                        smsRecord.setStatus(Constants.ZERO);
+                                        smsRecord.setCreateTime(new java.util.Date());
+                                        smsRecord.setDeleted(Constants.ZERO);
+                                        smsrecordMapper.insert(smsRecord);
+                                    } catch (Exception ignored) {}
+                                }
+                            }
+                        }
                     }
                 }
             }

--
Gitblit v1.9.3