|
@@ -33,30 +33,28 @@ class WebsiteService implements WebsiteServiceInterface
|
|
|
*/
|
|
|
public function getWebsitetList(array $data): array
|
|
|
{
|
|
|
- $where = [];
|
|
|
- if (isset($data['keyword']) && !empty($data['keyword'])) {
|
|
|
- array_push($where, ['website.website_name', 'like', '%' . $data['keyword'] . '%']);
|
|
|
- }
|
|
|
- if (isset($data['website_column_id']) && !empty($data['website_column_id'])) {
|
|
|
- array_push($where, ['website.website_column_id', '=', $data['website_column_id']]);
|
|
|
- }
|
|
|
- if (isset($data['city_id']) && !empty($data['city_id'])) {
|
|
|
- array_push($where, ['website.city_id', '=', $data['city_id']]);
|
|
|
- }
|
|
|
-
|
|
|
- $result = Website::where($where)
|
|
|
- ->leftJoin("website_column", "website.website_column_id", "website_column.id")
|
|
|
- ->leftJoin("district", "district.id", "website.city_id")
|
|
|
- ->select("website.*", "website_column.column_name", "district.name as city_name")
|
|
|
- ->limit($data['pageSize'])->offset(($data['page'] - 1) * $data['pageSize'])->orderBy("website.id", "desc")->get();
|
|
|
-
|
|
|
- $count = Website::where($where)->count();
|
|
|
+ $resultWwhere = Website::when($data,function ($query) use ($data){
|
|
|
+ if(isset($data['keyword']) && !empty($data['keyword'])){
|
|
|
+ $query->where('website.website_name','like','%'.$data['keyword'].'%');
|
|
|
+ }
|
|
|
+ if(isset($data['website_column_id']) && !empty($data['website_column_id'])){
|
|
|
+ $query->whereJsonContains("website.website_column_arr_id", intval($data['website_column_id']));
|
|
|
+ }
|
|
|
+ if(isset($data['city_id']) && !empty($data['city_id'])){
|
|
|
+ $query->whereJsonContains("website.city_arr_id", intval($data['city_id']));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $result = $resultWwhere->leftJoin("website_column","website.website_column_id","website_column.id")
|
|
|
+ ->leftJoin("district","district.id","website.city_id")
|
|
|
+ ->select("website.*","website_column.column_name","district.name as city_name")
|
|
|
+ ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize'])->orderBy("website.id","desc")->get();
|
|
|
+ $count = $resultWwhere->count();
|
|
|
if (empty($result)) {
|
|
|
- return Result::error("没有数据", 0);
|
|
|
+ return Result::error("没有数据",0);
|
|
|
}
|
|
|
$data = [
|
|
|
- 'rows' => $result->toArray(),
|
|
|
- 'count' => $count
|
|
|
+ 'rows'=>$result->toArray(),
|
|
|
+ 'count'=>$count
|
|
|
];
|
|
|
return Result::success($data);
|
|
|
}
|