Sfoglia il codice sorgente

微信支付售后退款更新状态

moonsflyer 4 mesi fa
parent
commit
7f23c01492

+ 3 - 1
app/adminapi/logic/after_sale/AfterSaleLogic.php

@@ -332,8 +332,10 @@ class AfterSaleLogic extends BaseLogic
 
             // 退款
             $order = Order::findOrEmpty($afterSale->order_id)->toArray();
+            outFileLog($order,'refund_money','$order');
+
             RefundLogic::refund($afterSale->refund_way, $order, $afterSale->id, $afterSale->refund_total_amount);
-    
+
             //更新订单状态
             RefundLogic::afterSaleRefundUpdate($afterSale->order_id);
 

+ 17 - 1
app/common/logic/RefundLogic.php

@@ -60,6 +60,9 @@ class RefundLogic extends BaseLogic
      */
     public static function refund($refundWay, $order, $afterSaleId, $refundAmount)
     {
+        outFileLog($refundWay,'refund_money','$refundWay');
+        outFileLog($afterSaleId,'refund_money','$afterSaleId');
+        outFileLog($refundAmount,'refund_money','$refundAmount');
         if ($refundAmount < 0) {
             return false;
         }
@@ -175,6 +178,19 @@ class RefundLogic extends BaseLogic
             'refund_status'     => 1,
             'refund_msg'        => json_encode([], JSON_UNESCAPED_UNICODE),
         ], ['id' => self::$refund['id']]);
+        //更新售后订单状态
+        $re_where['order_id'] = $order['id'];
+        $re_where['refund_total_amount'] = $refundAmount;
+        $afterSale = AfterSale::where($re_where)->findOrEmpty();
+        if(!$afterSale->isEmpty()){
+            $afterSale->status = AfterSaleEnum::STATUS_SUCCESS;
+            $afterSale->sub_status = AfterSaleEnum::SUB_STATUS_SELLER_REFUND_SUCCESS;
+            $afterSale->refund_status = $refundStauts ?? AfterSaleEnum::FULL_REFUND;
+            $afterSale->save();
+            AfterSaleService::createAfterLog($afterSale['id'], '系统已完成退款', 0, AfterSaleLogEnum::ROLE_SYS);
+        }
+
+
     }
 
 
@@ -286,7 +302,7 @@ class RefundLogic extends BaseLogic
             ->group('order_goods_id')
             ->where('status', AfterSaleEnum::STATUS_SUCCESS)
             ->count();
-
+        outFileLog($order_id,'refund_money','afterSaleRefundUpdate-refund');
         //如果订单商品已全部退款
         if ($order_goods_count == $after_sale_count) {
             Order::update([ 'order_status' => OrderEnum::STATUS_CLOSE ], [

+ 1 - 0
app/common/service/pay/wechat/WechatPayV2Default.php

@@ -220,6 +220,7 @@ class WechatPayV2Default extends BasePayService
         );
         
         if (($result['return_code'] ?? '') == 'SUCCESS' && ($result['result_code'] ?? '') == 'SUCCESS') {
+            outFileLog($result,'refund_money','$result-refund');
             return true;
         }