gorden 4 bulan lalu
induk
melakukan
8c7040c899

+ 30 - 5
app/admin/controller/order/PayDetailController.php

@@ -224,6 +224,7 @@ class PayDetailController extends Curd
 
                 $item->memberAccount = $memberAccount;
             }
+            $addedAmount = 0;
             if (!empty($item->pay_extend_json)) {
                 $payExtendJson = json_decode($item->pay_extend_json, true);
                 if (isset($payExtendJson['remark'])) {
@@ -232,8 +233,10 @@ class PayDetailController extends Curd
                     $item->premises_id = $payExtendJson['remark']['premises_id'] ?? '';
                     $item->premises_name = $payExtendJson['remark']['premises_name'] ?? '';
                 }
+                if (!empty($payExtendJson['added_amount'])){
+                    $addedAmount = sprintf('%.2f',$payExtendJson['added_amount']);
+                }
             }
-            $item->to_account_amount = $item->pay_amount;
             if (in_array($item['join_pay_order_id'], ['COMBINE', 'PARTNER']) && !empty($item->join_pay_object_json)) {
                 $item->order_classify = $item['join_pay_order_id'];
                 $payObjectJson = json_decode($item->join_pay_object_json, true);
@@ -256,7 +259,12 @@ class PayDetailController extends Curd
                         $item->pay_status = 'BEING';
                     }
                 }
+                if (!empty($payObjectJson['recharge_config']) && $payObjectJson['recharge_config']['nbr'] > 0){
+                    $addedAmount = sprintf('%.2f',round($item->pay_amount * $payObjectJson['recharge_config']['nbr'],2));
+                }
             }
+            $item->added_amount = $addedAmount;
+            $item->to_account_amount = sprintf('%.2f',$item->pay_amount + $addedAmount);
             if ($item->pay_category == 'VIP') {
                 $payObjectJson = json_decode($item->join_pay_object_json, true);
                 if (isset($payObjectJson['order_id'])) {
@@ -321,13 +329,14 @@ class PayDetailController extends Curd
         $member['info']['member_info_headimg'] = MemberService::getAvatarUrl($member['info']['member_info_headimg'] ?? '');
         $member['level'] = MemberService::getRoleName($member['join_member_role_id']);
 
+        $order = [];
         $payDetails = PayDetail::whereJsonContains('join_pay_object_json->order_id', $orderId)
             ->where('pay_status', 'SUCCESS')
-            ->select('pay_status', 'pay_amount', 'pay_paytimes', 'pay_prepayid')
+            ->select('pay_status', 'pay_amount', 'pay_paytimes', 'pay_prepayid', 'join_pay_object_json', 'pay_extend_json')
             ->orderBy('pay_paytimes', 'DESC')
-            ->get();
+            ->get()
+            ->toArray();
 
-        $order = [];
         foreach ($orderSheet as &$item) {
             if (!empty($item['goods']) && !empty($item['goods']['goods_cover'])) {
                 $item['goods']['goods_cover'] = getenv("STORAGE_DOMAIN") . $item['goods']['goods_cover'];
@@ -350,11 +359,27 @@ class PayDetailController extends Curd
             $order = $item['order'];
         }
 
+        $order['added_amount'] = 0;
+        foreach ($payDetails as $detail) {
+            if (!empty($detail['join_pay_object_json'])) {
+                $payObjectJson = json_decode($detail['join_pay_object_json'], true);
+                if (!empty($payObjectJson['recharge_config']) && $payObjectJson['recharge_config']['nbr'] > 0) {
+                    $order['added_amount'] = sprintf('%.2f',round($detail['pay_amount'] * $payObjectJson['recharge_config']['nbr'], 2));
+                }
+            }
+            if ($order['added_amount'] == 0 && !empty($detail['pay_extend_json'])) {
+                $payExtendJson = json_decode($detail['pay_extend_json'], true);
+                if (!empty($payExtendJson['added_amount'])) {
+                    $order['added_amount'] = sprintf('%.2f', $payExtendJson['added_amount']);
+                }
+            }
+        }
+
         $data = [
             'payDetails' => $payDetails,
             'goodsOrder' => $orderSheet,
             'member' => $member,
-            'order'=>$order
+            'order' => $order
         ];
 
         return json_success('', $data);

+ 5 - 0
app/admin/controller/order/RefundController.php

@@ -279,6 +279,10 @@ class RefundController extends Curd
                     ->get()
                     ->toArray();
                 foreach ($sheets as $key => $sheetsItem) {
+                    if (empty($sheetsItem['goods'])) {
+                        unset($sheets[$key]);
+                        continue;
+                    }
                     $sheets[$key]['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $sheetsItem['goods']['goods_cover'];
                     if (!empty($sheetsItem['sku'])) {
                         if (!empty($item['sku']['goods_sku_specs_json'])) {
@@ -295,6 +299,7 @@ class RefundController extends Curd
                         }
                     }
                 }
+                $sheets = array_values($sheets);
             }
         }
         $express = OrderExpress::where('join_express_order_id', $orderId)->first();