From 5aed50fcd99c4530518788060193f2db46479641 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 17 十月 2023 17:42:46 +0800
Subject: [PATCH] 计价规则小程序
---
server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java | 75 ++++++++++++++++++++++++++++++-------
1 files changed, 61 insertions(+), 14 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
index 71d329e..c9227a3 100644
--- a/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
+++ b/server/services/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -1,17 +1,28 @@
package com.doumee.core.wx;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.ID;
+import com.doumee.dao.business.RefundMapper;
+import com.doumee.dao.business.TransactionsMapper;
+import com.doumee.dao.business.model.Refund;
+import com.doumee.dao.business.model.Transactions;
+import com.doumee.dao.business.web.request.RefundDTO;
+import com.doumee.service.business.RefundService;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.util.Date;
/**
* 寰俊灏忕▼搴�-鍏叡鏂规硶
@@ -20,29 +31,64 @@
@Slf4j
public class WxMiniUtilService {
+ @Autowired
+ private RefundMapper refundMapper;
- /**
- * 璁㈠崟寰俊閫�娆�
- * orderNo:鍟嗘埛璁㈠崟鍙�
- * totalPrice锛氳鍗曟�婚噾棰�
- * refundPrice锛涢��娆鹃噾棰�
- */
+ @Autowired
+ private TransactionsMapper transactionsMapper;
+
+
@Transactional(rollbackFor = Exception.class)
- public static String wxRefund(String orderNo, BigDecimal totalPrice, BigDecimal refundPrice) {
+ public Refund wxRefund(RefundDTO refundDTO) {
try {
// 鍙戦�侀��娆捐姹�
String refNum = ID.nextGUID();
WxPayRefundRequest request = new WxPayRefundRequest();
- request.setOutTradeNo(orderNo);
+ request.setOutTradeNo(refundDTO.getOrderId());
request.setOutRefundNo(refNum);
- // request.setTotalFee(2);
- // request.setRefundFee(1);
- request.setTotalFee(BaseWxPayRequest.yuanToFen(totalPrice.toString()));
- request.setRefundFee(BaseWxPayRequest.yuanToFen(refundPrice.toString()));
+// request.setTotalFee(BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString()));
+// request.setRefundFee(BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString()));
+ System.out.println("瀹為檯鎬婚噾棰�" + BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString()));
+ System.out.println("瀹為檯閫�娆鹃噾棰�" + BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString()));
+
+ request.setTotalFee(1);
+ request.setRefundFee(1);
WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request);
if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) {
- return refNum;
- } else {
+ //瀛樺偍閫�娆捐褰� 涓� 娴佹按璁板綍
+ Refund refund = new Refund();
+ refund.setId(Constants.getUUID());
+ refund.setCreateDate(new Date());
+ refund.setMemberId(refundDTO.getMemberId());
+ refund.setMoney(refundDTO.getRefundAmount());
+ refund.setOnlineOrderid(refNum);
+ refund.setPayWay(Constants.ZERO);
+ refund.setDoneDate(new Date());
+ refund.setType(refundDTO.getType());
+ refund.setObjId(refundDTO.getOrderId());
+ refund.setReason(refundDTO.getReason());
+ refund.setCanBalance(refundDTO.getCanBalance());
+ refundMapper.insert(refund);
+ //瀛樺偍浜ゆ槗娴佹按琛�
+ Transactions transactions = new Transactions();
+ transactions.setId(Constants.getUUID());
+ transactions.setMemberId(refundDTO.getMemberId());
+ transactions.setCreateDate(new Date());
+ transactions.setIsdeleted(Constants.ZERO);
+ transactions.setOrderId(refundDTO.getOrderId());
+ transactions.setMoney(refundDTO.getRefundAmount());
+ transactions.setType(refundDTO.getType()==Constants.TRANSACTIONS_TYPE.REFUND.getKey()?Constants.TRANSACTIONS_TYPE.PLATFORMREFUND.getKey():Constants.REFUND_TYPE.BACK.getKey());
+ transactions.setPreOrderid(refundDTO.getOrderId());
+ transactions.setOnlineOrderid(refNum);
+ transactions.setDoneDate(new Date());
+ transactions.setTitle(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getName());
+ transactions.setContent(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getInfo());
+ transactions.setBalance(BigDecimal.ZERO);
+ transactions.setObjId(refund.getId());
+ transactions.setObjType(Constants.ONE);
+ transactionsMapper.insert(transactions);
+ return refund;
+ } else{
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),response.getErrCode() + response.getErrCodeDes());
}
} catch (WxPayException e) {
@@ -50,4 +96,5 @@
}
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�娆惧彂鐢熷紓甯歌鑱旂郴绠$悊鍛�");
}
+
}
--
Gitblit v1.9.3