when($city_id, function ($query) use ($city_id) { if(isset($city_id) && $city_id) { $query->whereJsonContains("category.city_arr_id", $city_id); } }) ->leftJoin('district','category.city_id','district.id') ->leftJoin('department','category.department_id','department.id') ->select("category.*","district.name as city_name","department.name as department_name") ->limit($data['pageSize'])->orderByDesc('category.updated_at')->offset(($data['page']-1)*$data['pageSize'])->get(); $count = Category::where($where)->when($city_id, function ($query) use ($city_id) { if(isset($city_id) && $city_id) { $query->whereJsonContains("category.city_arr_id", $city_id); } })->count(); $data = [ 'rows'=>$rep->toArray(), 'count'=>$count ]; if(empty($rep->toArray())){ return Result::error("没有导航池数据"); } return Result::success($data); } /** * @param array $data * @return array */ public function categoryList(array $data): array { $where[] = [ 'pid','=',$data['pid'] ]; if(isset($data['name'])){ array_push($where, ['category.name','like','%'.$data['name'].'%']); } var_dump($where); $result = Category::where($where)->select('category.*','category.id as category_id')->get(); if(empty($result)){ return Result::error("没有栏目数据"); } return Result::success($result); } /** * @param array $data * @return array */ public function addCategory(array $data): array { $id = Category::insertGetId($data); if(empty($id)){ return Result::error("添加失败"); } return Result::success(['id'=>$id]); } /** * @param array $data * @return array */ public function delCategory(array $data): array { $categoryList = Category::where(['pid'=>$data['id']])->get(); var_dump("分类列表:",$data,$categoryList); if($categoryList->toArray()){ return Result::error("分类下面有子分类不能删除"); } $articleList = Article::where(['catid'=>$data['id']])->get(); var_dump("文章列表:",$articleList); if($articleList->toArray()){ return Result::error("分类下面有资讯不能删除"); } $result = Category::where($data)->delete(); if(!$result){ return Result::error("删除失败"); } return Result::success($result); } /** * @param array $data * @return array */ public function updateCategory(array $data): array { $where = [ 'id'=>$data['id'] ]; $result = Category::where($where)->update($data); if($result){ return Result::success($result); }else{ return Result::error("更新失败"); } } /** * 获取导航池信息 * @param array $data * @return array */ public function getCategoryInfo(array $data): array { $where = [ 'id'=>$data['id'] ]; $result = Category::where($where)->first(); if($result){ return Result::success($result); }else{ return Result::error("更新失败"); } } /** * @param array $data * @return array */ public function getArticleList(array $data): array { $where= []; if(isset($data['title']) && $data['title']){ array_push($where,['article.title','like','%'.$data['title'].'%']); } if(isset($data['category_name']) && $data['category_name']){ array_push($where,['category.name','like','%'.$data['category_name'].'%']); } if(isset($data['author']) && $data['author']){ array_push($where,['article.author','=',$data['author']]); } if(isset($data['islink']) && $data['islink']!==""){ array_push($where,['article.islink','=',$data['islink']]); } if(isset($data['status']) && $data['status']!==""){ array_push($where,['article.status','=',$data['status']]); } $rep = Article::where($where) ->whereNotIn('article.status',[404]) ->leftJoin('category','article.catid','category.id') ->select("article.*","category.name as category_name") ->orderBy("article.id","desc") ->limit($data['pageSize']) ->offset(($data['page']-1)*$data['pageSize'])->get(); $count = Article::where($where)->whereNotIn('article.status',[404]) ->leftJoin('category','article.catid','category.id')->count(); $data = [ 'rows'=>$rep->toArray(), 'count'=>$count ]; if(empty($rep)){ return Result::error("没有信息数据"); } return Result::success($data); } /** * @param array $data * @return array */ public function addArticle(array $data): array { Db::beginTransaction(); try{ $articleData = $data; unset($articleData['content']); $id = Article::insertGetId($articleData); $articleDataContent = [ 'article_id'=>$id, 'content'=>$data['content'] ]; ArticleData::insertGetId($articleDataContent); Db::commit(); } catch(\Throwable $ex){ Db::rollBack(); var_dump($ex->getMessage()); return Result::error("创建失败",0); } return Result::success(['id'=>$id]); } /** * @param array $data * @return array */ public function delArticle(array $data): array { $result = Article::where($data)->update(['status'=>404]); if(!$result){ return Result::error("删除失败"); } return Result::success($result); } /** * @param array $data * @return array */ public function updateArticle(array $data): array { Db::beginTransaction(); try{ $data['cat_arr_id'] = isset($data['cat_arr_id'])?json_encode($data['cat_arr_id']):''; $data['tag'] = isset($data['tag'])?json_encode($data['tag']):''; $articleData = $data; unset($articleData['content']); unset($articleData['status_name']); unset($articleData['name']); unset($articleData['content']); unset($articleData['pid_arr']); unset($articleData['pid']); $id = Article::where(['id'=>$data['id']])->update($articleData); $articleDataContent = [ 'content'=>$data['content'] ]; ArticleData::where(['article_id'=>$data['id']])->update($articleDataContent); } catch(\Throwable $ex){ Db::rollBack(); var_dump($ex->getMessage()); return Result::error("更新失败",0); } return Result::success([]); } /** * 更新资讯状态 * @param array $data * @return array */ public function upArticleStatus(array $data):array { $result = Article::where(['id'=>$data['id']])->update($data); if($result){ return Result::success(); }else{ return Result::error("更新状态失败",0); } } /** * @param array $data * @return array */ public function getArticleInfo(array $data): array { $where = [ 'article.id'=>$data['id'] ]; $result = Article::where($where)->leftJoin("article_data","article.id","article_data.article_id")->first(); if($result){ return Result::success($result->toArray()); }else{ return Result::error("查询失败",0); } } /** * 获取新闻 * @param array $data * @return array */ public function getWebsiteArticlett(array $data): array { $category = WebsiteCategory::where('website_id',$data['website_id'])->select('category_id')->get(); $category = $category->toArray(); $result= []; if($category){ $category_ids = []; foreach($category as $val){ array_push($category_ids,$val['category_id']); } if(isset($data['placeid'])){ $placeid=$data['placeid']-1; $result=Article::where('status',1)->where('level',$data['level'])->whereIn("catid",$category_ids)->orderBy("created_at","desc")->offset($placeid)->limit($data['pageSize'])->get(); }else{ $result=Article::where('status',1)->where('level',$data['level'])->whereIn("catid",$category_ids)->orderBy("created_at","desc")->offset(0)->limit($data['pageSize'])->get(); } if(empty($result)){ return Result::error("暂无头条新闻",0); } return Result::success($result); }else{ return Result::error("本网站下暂无相关栏目",0); } } /** * 获取模块新闻 * @param array $data * @return array */ public function getWebsiteModelArticles(array $data): array { $catid=$data['catid']; $category = WebsiteCategory::where('website_id',$data['website_id'])->where('category_id',$catid)->select('category_id')->get(); $category = $category->toArray(); if(!empty($category)){ $where=[ 'status' => 1, 'catid' => $catid ]; if($data['level']==1){ $level=[ 0=>'1', 1=>'4', 2=>'5' ]; $result = Article::where($where)->whereIn('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get(); }elseif($data['level']==2){ $level='2'; $result = Article::where($where)->where('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get(); }else{ $level='3'; $result = Article::where($where)->where('level',$level)->orderBy("created_at","desc")->limit($data['pagesize'])->get(); } $result= $result->toArray(); if(!empty($result) && isset($data['placeid']) && !empty($data['placeid'])){ $placeid=$data['placeid']-1; if($level==2 || $level==3){ $where =[ 'level' => $level ]; $result = Article::where($where) ->orderBy("created_at","desc") ->offset($placeid) ->limit($data['pagesize'])->get(); }else{ $result = Article::where($where) ->whereIn('level',$level) ->offset($placeid) ->orderBy("created_at","desc") ->limit($data['pagesize'])->get(); } } if(empty($result)){ return Result::error("此栏目暂无相关新闻",0); } }else{ return Result::error("此网站暂无此栏目",0); } return Result::success($result); } }