moonsflyer 4 months ago
parent
commit
5ac27c164b
2 changed files with 13 additions and 7 deletions
  1. 9 4
      app/openapi/logic/order/OrderLogic.php
  2. 4 3
      app/openapi/validate/OrderValidate.php

+ 9 - 4
app/openapi/logic/order/OrderLogic.php

@@ -249,7 +249,7 @@ class OrderLogic extends BaseLogic
             self::setError('订单已支付完成');
             return false;
         }
-        
+
         $pay_money = round($order_info['offline_pay_money'] +  $order_info['offline_pay_user_money'] + $params['pay_money'],2) ;
         if($pay_money>$order_info['order_amount']){
             outFileLog($params, 'orderPay', '金额超了应付金额');
@@ -336,9 +336,9 @@ class OrderLogic extends BaseLogic
                     return false;
                 }
 
-                if($order_info['order_amount']<$refund_money){
+                if($order_info['order_amount']<$refund_money || $order_info['order_amount']< round($refund_money+$order_info['offline_refund_money'],2)){
                     outFileLog($params, 'orderRefundMoney', '传入退款金额有误');
-                    self::setError('传入退款金额有误');
+                    self::setError('传入退款金额有误或总退款金额超出支付金额');
                     return false;
                 }
 
@@ -365,10 +365,15 @@ class OrderLogic extends BaseLogic
                     'sub_status'      => 21,
                 ]);
 
-                if ($order_info['pay_way'] == 5) {
+                if ($params['is_return_user_money'] == 0) {
+                    $order_info->offline_refund_money = $order_info->offline_refund_money + $refund_money;
+                    $order_info->save();
                     return true;
                 } else {
 
+                    $order_info->offline_refund_money = $order_info->offline_refund_money +$refund_money;
+                    $order_info->save();
+
                     $user_info->user_money = $user_info->user_money + $refund_money;
                     $user_info->save();
 

+ 4 - 3
app/openapi/validate/OrderValidate.php

@@ -46,7 +46,8 @@ class OrderValidate extends BaseOpenValidate
         'refund_money'=>'require|float|gt:0',
         'pay_way'=>'require|in:1,5',
         'pay_money'=>'require|float|gt:0',
-        'is_pay_end'=>'require|integer|in:0,1'
+        'is_pay_end'=>'require|integer|in:0,1',
+        'is_return_user_money'=>'require|integer|in:0,1',
     ];
     
     protected $message = [
@@ -66,14 +67,14 @@ class OrderValidate extends BaseOpenValidate
         'pay_money.require' => '请传入支付金额',
         'pay_money.gt' => '支付金额必须大于0',
         'is_pay_end.require' =>'请传入是否整单支付完毕',
-
+        'is_return_user_money.require' =>'请传入是否退回会员卡',
     ];
     
     protected $scene = [
         'getOrderList' => ['mobile','type','pageNo','orderSn'],
         'orderPush' => ['orderSn','mobile','goods_price','order_amount','member_amount','total_amount','total_num','create_time','order_goods'],
         'orderPay' => ['orderSn','mobile','pay_way','pay_money','is_pay_end','create_time'],
-        'orderRefundMoney' => ['mobile','refund_money','orderSn','remark'],
+        'orderRefundMoney' => ['mobile','refund_money','orderSn','remark','is_return_user_money'],
     ];
 
     /**