Browse Source

完善功能

gorden 10 months ago
parent
commit
01ed7eea79
2 changed files with 36 additions and 2 deletions
  1. 24 2
      app/admin/controller/order/WholeController.php
  2. 12 0
      app/model/GoodsComponent.php

+ 24 - 2
app/admin/controller/order/WholeController.php

@@ -9,6 +9,7 @@ use app\admin\validate\order\OrderValidate;
 use app\controller\Curd;
 use app\model\Coupon;
 use app\model\Device;
+use app\model\GoodsComponent;
 use app\model\Order;
 use app\model\OrderExpress;
 use app\model\OrderSheet;
@@ -66,17 +67,38 @@ class WholeController extends Curd
                 $query->select('member_id', 'member_mobile');
             },
             'goods' => function ($query) {
-                $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price');
+                $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price', 'goods_classify');
             }
         ])->where('join_sheet_order_id', $orderId)
             ->get()
             ->toArray();
         foreach ($orderSheet as &$item) {
             $item['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $item['goods']['goods_cover'];
+            if (!empty($item['goods']) && $item['goods']['goods_classify'] == 'PACKAGE') {
+                $components = GoodsComponent::with('goods')
+                    ->where('join_component_master_goods_id', $item['goods']['goods_id'])
+                    ->select('join_component_master_goods_id', 'join_component_goods_id', 'goods_component_price',
+                        'goods_component_price', 'goods_component_config_json')
+                    ->get()
+                    ->toArray();
+                $goodsArr = [];
+                foreach ($components as $component) {
+                    $configJson = !empty($component['goods_component_config_json']) ? json_decode($component['goods_component_config_json'], true) : [];
+                    if (!empty($component['goods'])) {
+                        $goodsArr[] = [
+                            'goods_name' => $component['goods']['goods_name'],
+                            'goods_cover' => getenv('STORAGE_DOMAIN') . $component['goods']['goods_cover'],
+                            'nbr' => $configJson['nbr'] ?? 0,
+                        ];
+                    }
+                }
+
+                $item['goods']['components'] = $goodsArr;
+            }
         }
 
         $order = Order::where('order_id', $orderId)->first();
-        $express = OrderExpress::where('join_express_order_id',$orderId)->first();
+        $express = OrderExpress::where('join_express_order_id', $orderId)->first();
         $data = [
             'order' => $order,
             'sheet' => $orderSheet,

+ 12 - 0
app/model/GoodsComponent.php

@@ -15,4 +15,16 @@ class GoodsComponent extends Model
     const CREATED_AT = 'goods_component_addtimes';
 
     const UPDATED_AT = null;
+
+    public function package()
+    {
+        return $this->hasOne(Goods::class, 'goods_id', 'join_component_master_goods_id')
+            ->select('goods_name', 'goods_market_price', 'goods_sales_price', 'goods_cover');
+    }
+
+    public function goods()
+    {
+        return $this->hasOne(Goods::class, 'goods_id', 'join_component_goods_id')
+            ->select('goods_id', 'goods_name', 'goods_market_price', 'goods_sales_price', 'goods_cover');
+    }
 }