Browse Source

取消订单,退回善豆

lizhen_gitee 4 days ago
parent
commit
caac93e4a6

+ 1 - 1
addons/shopro/listener/Order.php

@@ -589,7 +589,7 @@ class Order
             $this->backUserCoupon($order->coupon_id);
         }
 
-        // 退回所有支付的记录,包括积分,余额
+        // 退回所有支付的记录,包括积分,余额,善豆
         $refund = new OrderRefund($order);
         $refund->refundAllPays([
             'remark' => '订单失效自动退回'

+ 1 - 1
addons/shopro/service/order/OrderOper.php

@@ -70,7 +70,7 @@ class OrderOper
 
         Action::add($order, null, $user, $type, ($msg ?: $this->getOperText($type) . '取消订单'));
 
-        // 订单取消,退回库存,退回优惠券积分,等
+        // 订单取消,退回库存,退回优惠券积分,善豆,
         $data = ['order' => $order];
         \think\Hook::listen('order_cancel_after', $data);
 

+ 42 - 4
addons/shopro/service/pay/PayRefund.php

@@ -9,6 +9,7 @@ use app\admin\model\shopro\Pay as PayModel;
 use app\admin\model\shopro\user\User;
 use app\admin\model\shopro\Refund as RefundModel;
 use addons\shopro\service\Wallet as WalletService;
+use app\common\model\Wallet;
 
 
 class PayRefund
@@ -145,14 +146,48 @@ class PayRefund
     private function money($pay, $refund)
     {
         // 退回用户余额
-        WalletService::change($pay->user_id, 'money', $refund->refund_fee, 'order_refund', [
+        /*WalletService::change($pay->user_id, 'money', $refund->refund_fee, 'order_refund', [
             'refund_id' => $refund->id,
             'refund_sn' => $refund->refund_sn,
             'pay_id' => $pay->id,
             'pay_sn' => $pay->pay_sn,
             'order_id' => $pay->order_id,
             'order_type' => $pay->order_type,
-        ]);
+        ]);*/
+
+        $walletService = new Wallet();
+        if (!$walletService->change($pay->user_id, $refund->refund_fee, 'money', 32, '商城订单退款', 'shopro_pay', $pay->id)) {
+            error_stop($walletService->getMessage());
+        }
+
+        $refund = $this->completed($refund);//只是改状态
+
+        return $refund;
+    }
+
+    /**
+     * 退善豆
+     *
+     * @param \think\Model $pay
+     * @param \think\Model $refund
+     * @return \think\Model
+     */
+    private function bean($pay, $refund)
+    {
+        // 退回用户余额
+        /*WalletService::change($pay->user_id, 'bean', $refund->refund_fee, 'order_refund', [
+            'refund_id' => $refund->id,
+            'refund_sn' => $refund->refund_sn,
+            'pay_id' => $pay->id,
+            'pay_sn' => $pay->pay_sn,
+            'order_id' => $pay->order_id,
+            'order_type' => $pay->order_type,
+        ]);*/
+
+        $walletService = new Wallet();
+        if (!$walletService->change($pay->user_id, $refund->refund_fee, 'bean', 132, '商城订单退款', 'shopro_pay', $pay->id)) {
+            error_stop($walletService->getMessage());
+        }
 
         $refund = $this->completed($refund);//只是改状态
 
@@ -170,14 +205,14 @@ class PayRefund
     private function score($pay, $refund)
     {
         // 退回用户积分
-        WalletService::change($pay->user_id, 'score', $refund->refund_fee, 'order_refund', [
+        /*WalletService::change($pay->user_id, 'score', $refund->refund_fee, 'order_refund', [
             'refund_id' => $refund->id,
             'refund_sn' => $refund->refund_sn,
             'pay_id' => $pay->id,
             'pay_sn' => $pay->pay_sn,
             'order_id' => $pay->order_id,
             'order_type' => $pay->order_type,
-        ]);
+        ]);*/
 
         $refund = $this->completed($refund);
 
@@ -292,6 +327,9 @@ class PayRefund
             } else if ($pay->pay_type == 'offline') {
                 // 退积分
                 $refund_method = 'offline';
+            } else if ($pay->pay_type == 'bean') {
+                // 退善豆
+                $refund_method = 'bean';
             } else {
                 // 退回到余额
                 $refund_method = 'money';