ソースを参照

广告获取广告位及搜索网站获取广告位

15313670163 3 ヶ月 前
コミット
0e72909dab
1 ファイル変更23 行追加9 行削除
  1. 23 9
      app/JsonRpc/OrderService.php

+ 23 - 9
app/JsonRpc/OrderService.php

@@ -55,30 +55,37 @@ class OrderService implements OrderServiceInterface
                 }
                 $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')
                     ->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')
                     ->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, '.', '');
-            $count = count($rep);
             $data = [
                 'rows' => $rep->toArray(),
                 'count' => $count,
@@ -424,13 +431,13 @@ class OrderService implements OrderServiceInterface
             foreach ($ad_pids as $val) {
                 array_push($pid, $val['pid']);
             }
-            $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
             //去掉时间冲突并且符合图片尺寸的广告位
+            $placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
+           if(empty($placeids)){
+                return Result::error('暂无数据!');
+            }
             if (!isset($data['website_id'])) {
-                $website_id = [];
-                foreach ($placeids as $v) {
-                    array_push($website_id, $v['website_id']);
-                }
+                $website_id = array_unique($placeids['website_id']);
                 $rep = Website::whereIn('id', $website_id)->get();
                 //若不存在网站id参数直接返回符合条件的广告位相关联的网站名称
             } else {
@@ -442,13 +449,17 @@ class OrderService implements OrderServiceInterface
                     ->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')
                     ->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 {
@@ -457,13 +468,17 @@ class OrderService implements OrderServiceInterface
                 $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')
                     ->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 = [];
@@ -471,7 +486,7 @@ class OrderService implements OrderServiceInterface
                     array_push($place_allads, $v['website_id']);
                 }
                 $rep = Website::whereIn('id', $place_allads)->get();
-
+                $count = Website::whereIn('id', $place_allads)->count();
             }
         }
         if (empty($rep)) {
@@ -483,11 +498,10 @@ class OrderService implements OrderServiceInterface
         $time = ($endTime - $startTime) / (24 * 60 * 60);
         $roundedValue = round($time, 2);
         $days = number_format($roundedValue, 2, '.', '');
-        $count = count($rep);
-        $result['days'] = $days;
         $result = [
             'rows' => $rep->toArray(),
             'count' => $count,
+            'days' => $days
         ];
         return Result::success($result);
     }