|
@@ -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);
|
|
|
}
|