From 996b2f16afaa271ce8aad6abf6858aa5db503eb3 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期六, 25 四月 2026 14:07:34 +0800
Subject: [PATCH] 代码生成
---
server/web/src/main/java/com/doumee/api/web/PaymentCallback.java | 116 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 91 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..54eb454 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;
@@ -16,6 +22,7 @@
import com.wechat.pay.java.service.payments.model.Transaction;
import com.wechat.pay.java.service.refund.model.RefundNotification;
import com.wechat.pay.java.service.refund.model.Status;
+import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +37,7 @@
* @Author : Rk
* @create 2023/3/24 16:57
*/
+@Api(tags = "鏀粯鍥炶皟涓氬姟鎺ュ彛")
@Slf4j
@RestController
@CrossOrigin
@@ -49,6 +57,12 @@
@Autowired
private NoticeService noticeService;
+
+ @Autowired
+ private SmsrecordMapper smsrecordMapper;
+
+ @Autowired
+ private MemberMapper memberMapper;
// ==================== V2 鍥炶皟 ====================
@@ -171,32 +185,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