Prechádzať zdrojové kódy

Merge branch '20241029_fl_order'

15313670163 1 mesiac pred
rodič
commit
3dfd3e2711
2 zmenil súbory, kde vykonal 304 pridanie a 200 odobranie
  1. 299 199
      app/JsonRpc/OrderService.php
  2. 5 1
      app/JsonRpc/OrderServiceInterface.php

+ 299 - 199
app/JsonRpc/OrderService.php

@@ -19,94 +19,98 @@ class OrderService implements OrderServiceInterface
 
     /**
      * 查询没有广告的广告位
+     *获取站点下所有的广告尺寸
      * @param
      * @return void
      */
     public function getAD(array $data): array
     {
 
-        if (!empty($data)) {
-            $where = [
-
-                'ad_place.ad_size_id' => $data['ad_size_id'],
-            ];
-            $start = Carbon::parse($data['starttime']);
-            $end = Carbon::parse($data['endtime']);
-            $status = [
-                0 => '1',
-                1 => '4',
-                2 => '6',
-            ];
-            $ads = Ad::where('fromtime', '<=', $start)->where('totime', '>=', $end)->select('pid')->get()->all();
-            $orderads = OrderAd::where('fromtime', '<=', $start)->where('totime', '>=', $end)->whereIn('status', $status)->select('pid')->get()->all();
-            $pids = array_merge($ads, $orderads);
-            $ad_pids = array_unique($pids);
-            // $ad_pid = [1,2,3];
-            //  所有与用户有时间冲突的广告位
-            if (!empty($ad_pids)) {
-                $pid = [];
-                foreach ($ad_pids as $val) {
-                    array_push($pid, $val['pid']);
-                }
-                $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id')->get()->all();
-                //所有去掉与用户时间冲突的广告并且符合图片尺寸的广告位
-                // 符合用户条件的空广告位
-                $place_id = [];
-                foreach ($placeids as $val) {
-                    array_push($place_id, $val['id']);
-                }
-                $rep = AdPlace::whereIn('ad_place.id', $place_id)
-                    ->leftJoin('website', 'ad_place.website_id', 'website.id')
-                    ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
-                    ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
-                    ->selectSub('website.id', 'webid')
-                    ->selectSub('ad_place.id', 'pid')
-                    ->selectSub('ad_size.width', 'size_width')
-                    ->selectSub('ad_size.height', 'size_height')
-                    ->orderBy("website.id", "asc")
-                    ->limit($data['pageSize'])
-                    ->offset(($data['page'] - 1) * $data['pageSize'])
-                    ->get();
-                $count = AdPlace::whereIn('ad_place.id', $place_id)->count();
-            } else {
-                $rep = AdPlace::where($where)
-                    ->leftJoin('website', 'ad_place.website_id', 'website.id')
-                    ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
-                    ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
-                    ->selectSub('website.id', 'webid')
-                    ->selectSub('ad_place.id', 'pid')
-                    ->selectSub('ad_size.width', 'size_width')
-                    ->selectSub('ad_size.height', 'size_height')
-                    ->orderBy("website.id", "asc")
-                    ->limit($data['pageSize'])
-                    ->offset(($data['page'] - 1) * $data['pageSize'])
-                    ->get();
-                $count = AdPlace::where($where)->count();
-            }
-            $startTime = strtotime($data['starttime']);
-            $endTime = strtotime($data['endtime']);
-            $time = ($endTime - $startTime) / (24 * 60 * 60);
-            $roundedValue = round($time, 2);
-            $days = number_format($roundedValue, 2, '.', '');
-            $result = [
-                'rows' => $rep->toArray(),
-                'count' => $count,
-                'days' => $days,
-            ];
-
-            if (empty($result['rows'])) {
-                return Result::error("暂无符合您条件的广告位!");
-
-            }
-        } else {
-            $result = AdSize::get();
-            if (empty($result)) {
-                return Result::error('暂无广告尺寸!');
-            }
-        }
-
-        return Result::success($result);
-
+        // if (!empty($data)) {
+        //     $where = [
+
+        //         'ad_place.ad_size_id' => $data['ad_size_id'],
+        //     ];
+        //     $start = Carbon::parse($data['starttime']);
+        //     $end = Carbon::parse($data['endtime']);
+        //     $status = [
+        //         0 => '1',
+        //         1 => '4',
+        //         2 => '6',
+        //     ];
+        //     $ads = Ad::where('fromtime', '<=', $start)->where('totime', '>=', $end)->select('pid')->get()->all();
+        //     $orderads = OrderAd::where('fromtime', '<=', $start)->where('totime', '>=', $end)->whereIn('status', $status)->select('pid')->get()->all();
+        //     $pids = array_merge($ads, $orderads);
+        //     $ad_pids = array_unique($pids);
+        //     // $ad_pid = [1,2,3];
+        //     //  所有与用户有时间冲突的广告位
+        //     if (!empty($ad_pids)) {
+        //         $pid = [];
+        //         foreach ($ad_pids as $val) {
+        //             array_push($pid, $val['pid']);
+        //         }
+        //         $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id')->get()->all();
+        //         //所有去掉与用户时间冲突的广告并且符合图片尺寸的广告位
+        //         // 符合用户条件的空广告位
+        //         $place_id = [];
+        //         foreach ($placeids as $val) {
+        //             array_push($place_id, $val['id']);
+        //         }
+        //         $rep = AdPlace::whereIn('ad_place.id', $place_id)
+        //             ->leftJoin('website', 'ad_place.website_id', 'website.id')
+        //             ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
+        //             ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
+        //             ->selectSub('website.id', 'webid')
+        //             ->selectSub('ad_place.id', 'pid')
+        //             ->selectSub('ad_size.width', 'size_width')
+        //             ->selectSub('ad_size.height', 'size_height')
+        //             ->orderBy("website.id", "asc")
+        //             ->limit($data['pageSize'])
+        //             ->offset(($data['page'] - 1) * $data['pageSize'])
+        //             ->get();
+        //         $count = AdPlace::whereIn('ad_place.id', $place_id)->count();
+        //     } else {
+        //         $rep = AdPlace::where($where)
+        //             ->leftJoin('website', 'ad_place.website_id', 'website.id')
+        //             ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
+        //             ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
+        //             ->selectSub('website.id', 'webid')
+        //             ->selectSub('ad_place.id', 'pid')
+        //             ->selectSub('ad_size.width', 'size_width')
+        //             ->selectSub('ad_size.height', 'size_height')
+        //             ->orderBy("website.id", "asc")
+        //             ->limit($data['pageSize'])
+        //             ->offset(($data['page'] - 1) * $data['pageSize'])
+        //             ->get();
+        //         $count = AdPlace::where($where)->count();
+        //     }
+        //     $startTime = strtotime($data['starttime']);
+        //     $endTime = strtotime($data['endtime']);
+        //     $time = ($endTime - $startTime) / (24 * 60 * 60);
+        //     $roundedValue = round($time, 2);
+        //     $days = number_format($roundedValue, 2, '.', '');
+        //     $result = [
+        //         'rows' => $rep->toArray(),
+        //         'count' => $count,
+        //         'days' => $days,
+        //     ];
+
+        //     if (empty($result['rows'])) {
+        //         return Result::error("暂无符合您条件的广告位!");
+
+        //     }
+        // } else {
+        //     $result = AdSize::get();
+        //     if (empty($result)) {
+        //         return Result::error('暂无广告尺寸!');
+        //     }
+        // }
+        //获取站点下所有的广告尺寸
+        $adssizeid = AdPlace::where('website_id', $data['website_id'] ?? 2)->select('ad_size_id')->get()->all();
+        $adssizeidArray = array_unique(array_column($adssizeid, 'ad_size_id'));
+        var_dump($adssizeidArray, 'p--------------1-------');
+        $adssize = AdSize::whereIn('id', $adssizeidArray)->select('id', 'width', 'height')->get();
+        return Result::success($adssize);
     }
     /**
      * 添加订单
@@ -144,7 +148,7 @@ class OrderService implements OrderServiceInterface
         $page = isset($data['page']) ? (int) $data['page'] : 1;
         $perPage = isset($data['pagesize']) ? (int) $data['pagesize'] : 10;
 
-        var_dump($data, 'p---------------------');
+        var_dump($data, 'p--------------1-------');
         // 构建查询条件
         $where = [];
         if (!empty($data['status'])) {
@@ -191,16 +195,29 @@ class OrderService implements OrderServiceInterface
 
         // 执行分页查询
         $result = $query->paginate($perPage, ['*'], 'page', $page);
+        // 循环获取到订单的广告位置名称信息
+        $orderData = $result->items();
+        foreach ($orderData as $key => $value) {
+            $pid = $value['id'];
+            //取出pid
+            $ad = OrderAd::where('order_id', $pid)->select('pid')->get()->all();
+            //ad_place 取出name
+            $ad = array_column($ad, 'pid');
+            var_dump($ad, 'p--------------2-------');
+            $ad = AdPlace::whereIn('id', $ad)->select('name')->get()->all();
+            $orderData[$key]['adname'] = implode(',', array_column($ad, 'name'));
+        }
 
         // 返回分页结果
         return Result::success([
-            'count' => $result->total(),
+            'count1' => $result->total(),
             'current_page' => $result->currentPage(),
             'last_page' => $result->lastPage(),
             'pagesize' => $result->perPage(),
-            'rows' => $result->items(),
+            'rows' => $orderData,
         ]);
     }
+
     /**
      * 获取订单详情
      * @param
@@ -417,9 +434,9 @@ class OrderService implements OrderServiceInterface
      */
     public function getWebsiteAd(array $data): array
     {
-        $where = [
-            'ad_place.ad_size_id' => $data['ad_size_id'],
-        ];
+        $where['website_id'] = $data['website_id'];
+        $where['ad_size_id'] = $data['ad_size_id'] ?? 1;
+
         $start = Carbon::parse($data['starttime']);
         $end = Carbon::parse($data['endtime']);
         $status = [
@@ -430,78 +447,31 @@ class OrderService implements OrderServiceInterface
         //订单状态:1:通过;2:驳回;3:撤回;4:修改;5:过期;6:待审核;7:结束
         $ads = Ad::where('fromtime', '<=', $start)->where('totime', '>=', $end)->select('pid')->get()->all();
         $orderads = OrderAd::where('fromtime', '<=', $start)->where('totime', '>=', $end)->whereIn('status', $status)->select('pid')->get()->all();
+        $ads = array_column($ads, 'pid');
+        $orderads = array_column($orderads, 'pid');
         $pids = array_merge($ads, $orderads);
+        var_dump($pids, '-----------1-------------');
+        //取出pid
         $ad_pids = array_unique($pids);
-        //$ad_pids=所有与用户提交的时间有冲突的广告位pid
-        if (!empty($ad_pids)) {
-            $pid = [];
-            foreach ($ad_pids as $val) {
-                array_push($pid, $val['pid']);
-            }
-            //去掉时间冲突并且符合图片尺寸的广告位
-            $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
-            if (empty($placeids)) {
-                return Result::error('暂无数据!');
-            }
-            if (!isset($data['website_id'])) {
-                $websiteIds = array_column($placeids, 'website_id');
-                $website_id = array_unique($websiteIds);
-                $rep = Website::whereIn('id', $website_id)->get();
-                $count = Website::whereIn('id', $website_id)->count();
-                //若不存在网站id参数直接返回符合条件的广告位相关联的网站名称
-            } else {
-                $place_id = [];
-                foreach ($placeids as $val) {
-                    array_push($place_id, $val['id']);
-                }
-                $rep = AdPlace::where($where)
-                    ->whereIn('ad_place.id', $place_id)
-                    ->where('ad_place.website_id', $data['website_id'])
-                    ->leftJoin('website', 'ad_place.website_id', 'website.id')
-                    ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
-                    ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
-                    ->selectSub('website.id', 'webid')
-                    ->selectSub('ad_place.id', 'pid')
-                    ->selectSub('ad_size.width', 'size_width')
-                    ->selectSub('ad_size.height', 'size_height')
-                    ->orderBy("website.id", "asc")
-                    ->limit($data['pageSize'])
-                    ->offset(($data['page'] - 1) * $data['pageSize'])
-                    ->get();
-                $count = AdPlace::where($where)->where('ad_place.website_id', $data['website_id'])->count();
-                //若存在网站id,关联查询是需要添加website_id条件查询
-            }
-        } else {
-            //若不存在有时间冲突的广告位则所有符合图片尺寸的广告位皆可以使用,只需要判断是否存在网站id参数即可
-            if (isset($data['website_id'])) {
-                $rep = AdPlace::where($where)
-                    ->where('ad_place.website_id', $data['website_id'])
-                    ->leftJoin('website', 'ad_place.website_id', 'website.id')
-                    ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
-                    ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
-                    ->selectSub('website.id', 'webid')
-                    ->selectSub('ad_place.id', 'pid')
-                    ->selectSub('ad_size.width', 'size_width')
-                    ->selectSub('ad_size.height', 'size_height')
-                    ->orderBy("website.id", "asc")
-                    ->limit($data['pageSize'])
-                    ->offset(($data['page'] - 1) * $data['pageSize'])
-                    ->get();
-                $count = AdPlace::where($where)->where('ad_place.website_id', $data['website_id'])->count();
-            } else {
-                $place_all = AdPlace::where($where)->select('website_id')->get()->all();
-                $place_allads = [];
-                foreach ($place_all as $v) {
-                    array_push($place_allads, $v['website_id']);
-                }
-                $rep = Website::whereIn('id', $place_allads)->get();
-                $count = Website::whereIn('id', $place_allads)->count();
-            }
-        }
-        if (empty($rep)) {
-            return Result::error("暂无符合您条件的广告位!");
-        }
-
+        var_dump($ad_pids, '----------3------------');
+
+        $placeids = AdPlace::whereNotIn('id', $ad_pids)->where($where)->select('id')->get()->all();
+        $ad_pids = array_column($placeids, 'id');
+        $rep = AdPlace::where($where)
+            ->whereIn('ad_place.id', $ad_pids)
+            ->where('ad_place.website_id', $data['website_id'])
+            ->leftJoin('website', 'ad_place.website_id', 'website.id')
+            ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
+            ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
+            ->selectSub('website.id', 'webid')
+            ->selectSub('ad_place.id', 'pid')
+            ->selectSub('ad_size.width', 'size_width')
+            ->selectSub('ad_size.height', 'size_height')
+            ->orderBy("website.id", "asc")
+            ->limit($data['pageSize'])
+            ->offset(($data['page'] - 1) * $data['pageSize'])
+            ->get();
+        $count = AdPlace::where($where)->where('ad_place.website_id', $data['website_id'])->whereIn('ad_place.id', $ad_pids)->count();
         $startTime = strtotime($data['starttime']);
         $endTime = strtotime($data['endtime']);
         $time = ($endTime - $startTime) / (24 * 60 * 60);
@@ -513,6 +483,123 @@ class OrderService implements OrderServiceInterface
             'days' => $days,
         ];
         return Result::success($result);
+
+        // //ad_size_id 必选改可选
+        // //单选
+        // if (isset($data['ad_size_id']) && is_string($data['ad_size_id'])) {
+        //     $where = [
+        //         'ad_place.ad_size_id' => $data['ad_size_id'],
+        //     ];
+        // }
+        // //如果有website_id
+        // if (!isset($data['ad_size_id'])) {
+        //     // $adsiteids = AdPlace::where('website_id', $data['website_id'])->select('id')->get()->all();
+        //     // $ad_pids = array_column($adsiteids, 'id');
+        //     // // $where = [
+        //     // //     'ad_place.ad_size_id' => $data['ad_size_id'],
+        //     // // ];
+        //     // var_dump($ad_pids, 'p--------------3-------');
+        //     // // $where[] = ['ad_place.id', 'in', $ad_pids];
+        //     // $where = [
+        //     //     'ad_place.website_id' => $data['website_id'],
+        //     // ];
+        // }
+        // //数组
+
+        // $start = Carbon::parse($data['starttime']);
+        // $end = Carbon::parse($data['endtime']);
+        // $status = [
+        //     0 => '1',
+        //     1 => '4',
+        //     2 => '6',
+        // ];
+        // //订单状态:1:通过;2:驳回;3:撤回;4:修改;5:过期;6:待审核;7:结束
+        // $ads = Ad::where('fromtime', '<=', $start)->where('totime', '>=', $end)->select('pid')->get()->all();
+        // $orderads = OrderAd::where('fromtime', '<=', $start)->where('totime', '>=', $end)->whereIn('status', $status)->select('pid')->get()->all();
+        // $pids = array_merge($ads, $orderads);
+        // $ad_pids = array_unique($pids);
+        // //$ad_pids=所有与用户提交的时间有冲突的广告位pid
+        // if (!empty($ad_pids)) {
+        //     $pid = [];
+        //     foreach ($ad_pids as $val) {
+        //         array_push($pid, $val['pid']);
+        //     }
+        //     //去掉时间冲突并且符合图片尺寸的广告位
+        //     $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
+        //     if (empty($placeids)) {
+        //         return Result::error('暂无数据!');
+        //     }
+
+        //     if (!isset($data['website_id'])) {
+        //         $websiteIds = array_column($placeids, 'website_id');
+        //         $website_id = array_unique($websiteIds);
+        //         $rep = Website::whereIn('id', $website_id)->get();
+        //         $count = Website::whereIn('id', $website_id)->count();
+        //         //若不存在网站id参数直接返回符合条件的广告位相关联的网站名称
+        //     } else {
+        //         $place_id = [];
+        //         foreach ($placeids as $val) {
+        //             array_push($place_id, $val['id']);
+        //         }
+        //         $rep = AdPlace::where($where)
+        //             ->whereIn('ad_place.id', $place_id)
+        //             ->where('ad_place.website_id', $data['website_id'])
+        //             ->leftJoin('website', 'ad_place.website_id', 'website.id')
+        //             ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
+        //             ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
+        //             ->selectSub('website.id', 'webid')
+        //             ->selectSub('ad_place.id', 'pid')
+        //             ->selectSub('ad_size.width', 'size_width')
+        //             ->selectSub('ad_size.height', 'size_height')
+        //             ->orderBy("website.id", "asc")
+        //             ->limit($data['pageSize'])
+        //             ->offset(($data['page'] - 1) * $data['pageSize'])
+        //             ->get();
+        //         $count = AdPlace::where($where)->where('ad_place.website_id', $data['website_id'])->count();
+        //         //若存在网站id,关联查询是需要添加website_id条件查询
+        //     }
+        // } else {
+        //     //若不存在有时间冲突的广告位则所有符合图片尺寸的广告位皆可以使用,只需要判断是否存在网站id参数即可
+        //     if (isset($data['website_id'])) {
+        //         $rep = AdPlace::where($where)
+        //             ->where('ad_place.website_id', $data['website_id'])
+        //             ->leftJoin('website', 'ad_place.website_id', 'website.id')
+        //             ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
+        //             ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
+        //             ->selectSub('website.id', 'webid')
+        //             ->selectSub('ad_place.id', 'pid')
+        //             ->selectSub('ad_size.width', 'size_width')
+        //             ->selectSub('ad_size.height', 'size_height')
+        //             ->orderBy("website.id", "asc")
+        //             ->limit($data['pageSize'])
+        //             ->offset(($data['page'] - 1) * $data['pageSize'])
+        //             ->get();
+        //         $count = AdPlace::where($where)->where('ad_place.website_id', $data['website_id'])->count();
+        //     } else {
+        //         $place_all = AdPlace::where($where)->select('website_id')->get()->all();
+        //         $place_allads = [];
+        //         foreach ($place_all as $v) {
+        //             array_push($place_allads, $v['website_id']);
+        //         }
+        //         $rep = Website::whereIn('id', $place_allads)->get();
+        //         $count = Website::whereIn('id', $place_allads)->count();
+        //     }
+        // }
+        // if (empty($rep)) {
+        //     return Result::error("暂无符合您条件的广告位!");
+        // }
+
+        // $startTime = strtotime($data['starttime']);
+        // $endTime = strtotime($data['endtime']);
+        // $time = ($endTime - $startTime) / (24 * 60 * 60);
+        // $roundedValue = round($time, 2);
+        // $days = number_format($roundedValue, 2, '.', '');
+        // $result = [
+        //     'rows' => $rep->toArray(),
+        //     'count' => $count,
+        //     'days' => $days,
+        // ];
+        // return Result::success($result);
     }
     /**
      * 获取广告金额
@@ -755,7 +842,7 @@ class OrderService implements OrderServiceInterface
         $time = time();
         $timestamp = date('YmdHis', $time);
         $randomNumber = mt_rand(100, 999);
-        $shopping_id = $randomNumber . $timestamp; // 时间戳与随机数拼接   
+        $shopping_id = $randomNumber . $timestamp; // 时间戳与随机数拼接
         Db::beginTransaction();
         try {
             if (!empty($shop)) {
@@ -768,7 +855,7 @@ class OrderService implements OrderServiceInterface
                 'user_id' => $data['user_id'],
                 'shopping_id' => $shopping_id,
                 'created_at' => date('Y-m-d H:i:s', time()),
-                'updated_at' => date('Y-m-d H:i:s', time())
+                'updated_at' => date('Y-m-d H:i:s', time()),
             ];
             $result = ShoppingCart::insert($shop);
             Db::commit();
@@ -776,9 +863,9 @@ class OrderService implements OrderServiceInterface
             Db::rollBack();
             return Result::error($e->getMessage());
         }
-        if(empty($result)){
+        if (empty($result)) {
             return Result::error("创建失败");
-        }else{
+        } else {
             return Result::success($shopping_id);
         }
 
@@ -791,16 +878,16 @@ class OrderService implements OrderServiceInterface
     public function getShoppingCartAD(array $data): array
     {
         $shopcart = ShoppingCart::where('shopping_id', $data['shopping_id'])
-        ->where('user_id',$data['user_id'])
-        ->orderBy('pid')
-        ->pluck('pid')
-        ->toArray();
-    
+            ->where('user_id', $data['user_id'])
+            ->orderBy('pid')
+            ->pluck('pid')
+            ->toArray();
+
         $result['pid'] = $shopcart;
-    
+
         if (empty($result)) {
             return Result::error("购物车id错误");
-        }else{
+        } else {
             return Result::success($result);
         }
     }
@@ -811,35 +898,35 @@ class OrderService implements OrderServiceInterface
      */
     public function addShoppingCartAD(array $data): array
     {
-        $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->first();
+        $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id', $data['user_id'])->first();
         if (empty($shop)) {
             return Result::error("购物车id错误");
-        }else{
+        } else {
             $ad = AdPlace::where('ad_place.id', $data['pid'])
-            ->leftJoin('website','ad_place.website_id','website.id')
-            ->select('ad_place.id as pid','website.id as website_id')
-            ->first();
-            if(empty($ad)) {
-                return Result::error("广告位id错误"); 
+                ->leftJoin('website', 'ad_place.website_id', 'website.id')
+                ->select('ad_place.id as pid', 'website.id as website_id')
+                ->first();
+            if (empty($ad)) {
+                return Result::error("广告位id错误");
             }
-            if(empty($shop['pid']) && empty($shop['website_id'])){
-                $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id',$data['user_id'])->update(['pid' => $ad['pid'],'website_id' => $ad['website_id']]);
-            }else{
-                if($data['pid'] == $shop['pid']){
-                    return Result::error("购物车中已存在该广告位"); 
+            if (empty($shop['pid']) && empty($shop['website_id'])) {
+                $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id', $data['user_id'])->update(['pid' => $ad['pid'], 'website_id' => $ad['website_id']]);
+            } else {
+                if ($data['pid'] == $shop['pid']) {
+                    return Result::error("购物车中已存在该广告位");
                 }
                 $shop_ad = [
                     'pid' => $ad['pid'],
                     'website_id' => $ad['website_id'],
                     'shopping_id' => $shop['shopping_id'],
-                    'user_id' => $data['user_id']
+                    'user_id' => $data['user_id'],
                 ];
                 $result = ShoppingCart::insertGetId($shop_ad);
             }
         }
-        if(empty($result)){
-            return Result::error("添加失败"); 
-        }else{
+        if (empty($result)) {
+            return Result::error("添加失败");
+        } else {
             return Result::success($result);
         }
 
@@ -851,21 +938,34 @@ class OrderService implements OrderServiceInterface
      */
     public function delShoppingCartAD(array $data): array
     {
-        $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->where('pid',$data['pid'])->first();
+        $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id', $data['user_id'])->where('pid', $data['pid'])->first();
         if (empty($shop)) {
-            return Result::error("不存在此条记录!(参数错误)"); 
-        }else{
-            $count = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->count();
-            if($count == 1){
-                $result = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->update(['pid' => null, 'website_id' => null]);; 
-            }else{
-                $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id',$data['user_id'])->where('pid',$data['pid'])->delete();
-            } 
-        }
-        if(empty($result)){
-            return Result::error("删除失败"); 
-        }else{
+            return Result::error("不存在此条记录!(参数错误)");
+        } else {
+            $count = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id', $data['user_id'])->count();
+            if ($count == 1) {
+                $result = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id', $data['user_id'])->update(['pid' => null, 'website_id' => null]);
+            } else {
+                $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id', $data['user_id'])->where('pid', $data['pid'])->delete();
+            }
+        }
+        if (empty($result)) {
+            return Result::error("删除失败");
+        } else {
             return Result::success($result);
-         }
+        }
+    }
+    /**
+     * 获取广告位的尺寸
+     *
+     * 
+     */
+    public function getAdSize(): array
+    {
+        $result = AdSize::get()->all();
+        if (empty($result)) {
+            return Result::error("暂无数据"); 
+        }
+        return Result::success($result);  
     }
 }

+ 5 - 1
app/JsonRpc/OrderServiceInterface.php

@@ -106,5 +106,9 @@ interface OrderServiceInterface
      *  @return array
      */
     public function delShoppingCartAD(array $data): array;
-
+    /**
+     * 
+     *  @return array
+     */
+    public function getAdSize(): array;
 }