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(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; return Result::success($data); } /** * @param array $data * @return array */ public function createWebsite(array $data): array { var_dump("网站数据:",$data); $insertData = [ 'website_name'=>$data['website_name'], 'logo'=>$data['logo']??'', 'website_url'=>$data['website_url']??'', 'city_id'=>$data['city_id']??0, 'website_column_id'=>$data['website_column_id'], 'title'=>$data['title']??'', 'keywords'=>$data['keywords']??'', 'description'=>$data['description']??'', 'status'=>$data['status']??0, 'website_column_arr_id'=>$data['website_column_arr_id'], 'city_arr_id'=>$data['city_arr_id']??[0], 'template_id' =>$data['template_id']??0, ]; $result = Website::insertGetId($insertData); if(empty($result)){ return Result::error("创建失败",0); }else{ return Result::success(["id"=>$result]); } } /** * @param int $id * @param array $data * @return array */ public function updateWebsite(int $id,array $data): array { $insertData = [ 'website_name'=>$data['website_name'], 'logo'=>$data['logo']??'', 'website_url'=>$data['website_url']??'', 'city_id'=>$data['city_id']??0, 'website_column_id'=>$data['website_column_id'], 'title'=>$data['title']??'', 'keywords'=>$data['keywords']??'', 'description'=>$data['description']??'', 'status'=>$data['status']??0, 'website_column_arr_id'=>$data['website_column_arr_id'], 'city_arr_id'=>$data['city_arr_id']??[0], 'template_id' =>$data['template_id']??0, ]; $result = Website::where('id',$id)->update($insertData); var_dump("更新站点",$result); if(empty($result)){ return Result::error("更新失败",0); }else{ return Result::success(); } } /** * @param int $id * @return array */ public function delWebsite(int $id): array { $result = Website::where('id',$id )->delete(); if(empty($result)){ return Result::error("删除失败",0); }else{ return Result::success(); } } /** * @param int $id * @return array */ public function getWebsiteInfo(int $id): array { $where = [ ['website.id','=',$id] ]; $result = Website::where($where ) ->leftJoin("website_template_info","website_template_info.website_id","website.id") ->select("website.*", "website_template_info.template_id", "website_template_info.page_type", "website_template_info.statement", "website_template_info.organizer", "website_template_info.copyright_information", "website_template_info.contact_number", "website_template_info.company_address", "website_template_info.project_logo", "website_template_info.project_name", "website_template_info.project_url", "website_template_info.company_logo", "website_template_info.company_name", "website_template_info.company_url", "website_template_info.record_number", "website_template_info.record_number_url", "website_template_info.icp_number", "website_template_info.icp_number_url", "website_template_info.customer_service_qq", "website_template_info.communications", "website_template_info.status", ) ->first(); if(empty($result)){ return Result::error("数据不存在",0); }else{ return Result::success($result->toArray()); } } /** * 查询所有的站点栏目 * @return array */ public function getWebsiteColumn(array $data): array { $result = WebsiteColumn::where($data)->get(); if(empty($result)){ return Result::error("数据不存在",0); }else{ return Result::success($result->toArray()); } } /** * @param string $keyword * @param int $page * @param int $pageSize * @return array */ public function getWebsiteColumnList(array $data):array { $where = []; if(isset($data['keyword']) && $data['keyword']){ array_push($where,['website_column.column_name','like','%'.$data['keyword'].'%']); } $result = WebsiteColumn::where($where) ->leftJoin("website_column as wc","website_column.pid","wc.id") ->select("website_column.*","wc.column_name as parent_column_name") ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize'])->get(); $count = WebsiteColumn::where($where)->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; return Result::success($data); } /** * @param array $data * @return array */ public function createWebsiteColumn(array $data): array { $insertData = [ 'column_name'=>$data['column_name'], 'pid'=>$data['pid']??'', 'column_arr_id'=>$data['column_arr_id']??[0], 'sort'=>$data['sort']??0, 'remark'=>$data['remark']??'', ]; $result = WebsiteColumn::insertGetId($insertData); if(empty($result)){ return Result::error("创建失败",0); }else{ return Result::success(["id"=>$result]); } } /** * @param int $id * @param array $data * @return array */ public function updateWebsiteColumn(int $id,array $data): array { $insertData = [ 'column_name'=>$data['column_name'], 'pid'=>$data['pid']??'', 'column_arr_id'=>$data['column_arr_id']??[0], 'sort'=>$data['sort']??0, 'remark'=>$data['remark']??'', ]; $result = WebsiteColumn::where('id',$id)->update($insertData); if(empty($result)){ return Result::error("更新失败",0); }else{ return Result::success(); } } /** * @param int $id * @return array */ public function delWebsiteColumn(int $id): array { $list = WebsiteColumn::where(['pid'=>$id])->get(); if($list){ return Result::error("存在子网系,不能删除,请先删除子网系",0); } $result = WebsiteColumn::where('id',$id )->delete(); if(empty($result)){ return Result::error("删除失败",0); }else{ return Result::success(); } } /** * @param string $keyword * @param int $page * @param int $pageSize * @return array */ public function getWebsiteRoleList(string $keyword,int $page,int $pageSize,int $websiteId):array { $where = [ ['role.role_name','like','%'.$keyword.'%'], ['website_role.website_id','=',$websiteId], ]; $result = WebsiteRole::where($where) ->leftJoin("role","role.id","website_role.role_id") ->select("role.*","website_role.type","website_role.role_id","website_role.id as website_role_id","website_role.website_id") ->limit($pageSize)->offset(($page-1)*$pageSize)->get(); $count = WebsiteRole::where($where) ->leftJoin("role","role.id","website_role.role_id")->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; return Result::success($data); } /** * @param array $data * @return array */ public function createWebsiteRole(array $data): array { $insertData = [ 'website_id'=>$data['website_id'], 'role_id'=>$data['role_id']??'' ]; $info = WebsiteRole::where($insertData)->first(); if($info){ return Result::error("不能重复添加角色",0); } $insertData['admin_user_id'] = $data['admin_user_id']??''; $insertData['type'] = $data['type']??''; $result = WebsiteRole::insertGetId($insertData); if(empty($result)){ return Result::error("创建失败",0); }else{ return Result::success(["id"=>$result]); } } /** * 暂时用不上 * @param int $id * @param array $data * @return array */ public function updateWebsiteRole(int $id,array $data): array { $insertData = [ 'website_id'=>$data['website_id'], 'type'=>$data['type']??'', ]; $result = WebsiteRole::where('id',$id)->update($insertData); if(empty($result)){ return Result::error("更新失败",0); }else{ return Result::success(); } } /** * @param int $id * @return array */ public function delWebsiteRole(int $id): array { $result = WebsiteRole::where('id',$id )->delete(); if(empty($result)){ return Result::error("删除失败",0); }else{ return Result::success(); } } /** * @param string $keyword * @param int $page * @param int $pageSize * @return array */ public function getWebsiteRoleUserList(string $keyword,int $page,int $pageSize,int $websiteId,int $roleId):array { $where = [ ['website_role_user.website_id','=',$websiteId], ['website_role_user.role_id','=',$roleId], ]; $count = WebsiteRoleUser::where($where)->count(); $where[] = ['u.user_name','like','%'.$keyword.'%']; $result = WebsiteRoleUser::where($where) ->leftJoin("user as u","website_role_user.user_id","u.id") ->leftJoin("website as w","website_role_user.website_id","u.id") ->leftJoin("role as r","website_role_user.role_id","r.id") ->select("u.*","u.user_name",'w.website_name','r.role_name','website_role_user.id as website_role_user_id','website_role_user.updated_at as user_update_at') ->limit($pageSize)->offset(($page-1)*$pageSize)->get(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; return Result::success($data); } /** * @param array $data * @return array */ public function createWebsiteRoleUser(array $data): array { $insertData = [ 'website_id'=>$data['website_id'], 'user_id'=>$data['user_id']??'', ]; $info = WebsiteRoleUser::where($insertData)->first(); if($info){ return Result::error("不能重复添加角色用户",0); } $insertData['role_id'] = $data['role_id']??''; $insertData['admin_user_id'] = $data['admin_user_id']??''; $insertData['type'] = $data['type']??''; $result = WebsiteRoleUser::insertGetId($insertData); if(empty($result)){ return Result::error("创建失败",0); }else{ return Result::success(["id"=>$result]); } } /** * @param int $id * @param array $data * @return array */ public function updateWebsiteRoleUser(int $id,array $data): array { $insertData = [ 'website_id'=>$data['website_id'], 'type'=>$data['type']??'', 'type_id'=>$data['type_id']??'', 'role_id'=>$data['role_id']??'', ]; $result = WebsiteRoleUser::where('id',$id)->update($insertData); if(empty($result)){ return Result::error("更新失败",0); }else{ return Result::success(); } } /** * @param int $id * @return array */ public function delWebsiteRoleUser(int $id): array { $result = WebsiteRoleUser::where('id',$id )->delete(); if(empty($result)){ return Result::error("删除失败",0); }else{ return Result::success(); } } /** * 根据域名获取网站 站点id * @param array $data * @return array */ public function getWebsiteId(array $data): array { $result = Website::whereJsonContains('website_url',$data['website_url'])->first(); if(empty($result)){ return Result::error("查询站点失败",0); }else{ return Result::success($result); } } /** * 查询网站下面的导航 * @param array $data * @return array */ public function getWebsiteCategory(array $data): array { $where = [ 'website_id'=>$data['website_id'], 'pid'=>0 ]; $result = WebsiteCategory::where($where)->orderBy('sort','asc')->get(); if(empty($result)){ return Result::error("查询站点栏目失败",0); }else{ return Result::success($result); } } /** * 网站首页数据统计, 管理员 * @return void */ public function getAdminIndex(array $data): array { var_dump("用户类型:",$data['type_id']); switch ($data['type_id']){ case 4: $result = Db::select('SELECT DATE(created_at) AS date,COUNT(*) AS total_count FROM letter_of_complaint WHERE created_at >= CURDATE() - INTERVAL 30 DAY GROUP BY DATE(created_at) ORDER BY date ASC;'); return Result::success($result); break; case 10000: $res = []; //网站 $res['website']['count'] = 0; $res['website']['growth_rate'] = 0; //资讯 $res['article']['count'] = 0; $res['article']['growth_rate'] = 0; //导航池 $res['category']['count'] = 0; $res['category']['growth_rate'] = 0; //近一月数据 $res['monthArticle']= []; //用户类型 $res['userType'] = []; $res['website']['count'] = Website::where([])->count(); $res['article']['count'] = Article::whereNotIn('status',['404'])->count(); $res['category']['count'] = Category::where([])->count(); $res['monthArticle'] = Db::select('SELECT DATE(created_at) AS date,COUNT(*) AS total_count FROM article WHERE created_at >= CURDATE() - INTERVAL 30 DAY GROUP BY DATE(created_at) ORDER BY date ASC;'); $res['userType'] = User::where([])->selectRaw("count(*) as counts,type_id")->groupBy('type_id')->get(); return Result::success($res); } return []; } /** * 获取模板类型 * @return void */ public function getTemplateClass(array $data): array { $where = []; if(isset($data['name']) && $data['name']){ array_push($where,['name','like','%'.$data['name'].'%']); } $result = TemplateClass::where($where)->orderBy('sort','asc')->get(); if(empty($result)){ return Result::error("没有模板类型",0); }else{ return Result::success($result); } } /** * 添加模板类型 * @param * @return void */ public function addTemplateClass(array $data): array { $insertData = [ 'name'=>$data['name'] ]; $result = TemplateClass::insertGetId($insertData); if(empty($result)){ return Result::error("创建失败",0); }else{ return Result::success(["id"=>$result]); } } /** * 更新模板 * @param array $data * @return array */ public function upTemplateClass(array $data): array { $where = [ 'id'=>$data['id'] ]; $insertData = [ 'name'=>$data['name'] ]; $result = TemplateClass::where($where)->update($insertData); if(empty($result)){ return Result::error("更新失败",0); }else{ return Result::success(); } } /** * 删除模板 * @param array $data * @return array */ public function delTemplateClass(array $data): array { $where = [ 'id'=>$data['id'] ]; $result = TemplateClass::where($where)->delete(); if(empty($result)){ return Result::error("删除失败",0); }else{ return Result::success(); } } /** * 获取分类下的模板 * @param array $data * @return array */ public function getTemplate(array $data): array { $page = $data['page']; $pageSize = $data['pageSize']; $where = []; if(isset($data['template_class_id']) && $data['template_class_id']){ array_push($where,['template_class_id','=',$data['template_class_id']]); } $result = Template::where($where) ->limit($pageSize)->offset(($page-1)*$pageSize)->get(); $count = Template::where($where)->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; return Result::success($data); } /** * 创建模板 * @param * @return void */ public function addTemplate(array $data): array { $insertData = [ 'template_name'=>$data['template_name'], 'template_img'=>json_encode($data['template_img']), 'template_class_id'=>$data['template_class_id'], ]; $result = Template::insertGetId($insertData); if(empty($result)){ return Result::error("创建模板失败",0); }else{ return Result::success(["id"=>$result]); } } /** * 更新模板 * @param array $data * @return array */ public function upTemplate(array $data): array { $where = [ 'id'=>$data['id'] ]; $insertData = [ 'template_name'=>$data['template_name'], 'template_img'=>json_encode($data['template_img']), 'template_class_id'=>$data['template_class_id'], ]; $result = Template::where($where)->update($insertData); if(empty($result)){ return Result::error("更新模板失败",0); }else{ return Result::success(); } } /** * 删除模板 * @param array $data * @return array */ public function delTemplate(array $data): array { $where = [ 'id'=>$data['id'] ]; $result = Template::where($where)->delete(); if(empty($result)){ return Result::error("删除模板失败",0); }else{ return Result::success(); } } /** * 搜索网站 * @param array $data * @return array */ public function websiteList(array $data): array { $where = []; if(isset($data['keyword']) && !empty($data['keyword'])){ array_push($where,['website.website_name','like','%'.$data['keyword'].'%']); } $result = Website::where($where)->get(); if($result){ return Result::success($result); }else{ return Result::error("没有网站",0); } } public function addWebsiteCategory(array $data): array { $website_id = $data['website_id']; $category_arr_id = $data['category_arr_id']; $categoryList = Category::whereIn('id',$category_arr_id)->get(); $categoryListIds = []; if($categoryList){ foreach ($categoryList->toArray() as $val){ array_push($categoryListIds,$val['id']); } } $arr = []; if($categoryListIds){ foreach ($categoryListIds as $v){ $ids = $this->getUnderlingUIds(intval($v)); $ids_arr = explode(",", $ids); array_push($arr,$ids_arr); } } $mergedArray = []; foreach ($arr as $subarray) { $mergedArray = array_merge($mergedArray, $subarray); } var_dump("所有:",$arr,$mergedArray); //查询出所有的分类进行分割插入 组装数据 $categoryListData = Category::whereIn('id',$mergedArray)->get(); $categoryListData = $categoryListData->toArray(); $insertData = []; if($categoryListData){ foreach ($categoryListData as $key=>$value){ $insertData[$key]['website_id'] = $website_id; $insertData[$key]['name'] = $value['name']; $insertData[$key]['sort'] = $value['sort']; $insertData[$key]['pid'] = $value['pid']; $insertData[$key]['pid_arr'] = $value['pid_arr']; $insertData[$key]['seo_title'] = $value['seo_title']; $insertData[$key]['seo_keywords'] = $value['seo_keywords']; $insertData[$key]['seo_description'] = $value['seo_description']; $insertData[$key]['alias'] = $value['name']; $insertData[$key]['category_id'] = $value['id']; } } $result = WebsiteCategory::insert($insertData); var_dump("插入数据状态:",$result); if($result){ return Result::success($result); }else{ return Result::error("创建失败",0); } } /** * 删除网站导航 * @param array $data * @return array */ public function delWebsiteCategory(array $data): array { $website_id = $data['website_id']??0; $category_id = $data['category_id']??0; $ids = $this->getUnderlingUIds(intval($category_id)); $ids_arr = explode(",", $ids); $result = WebsiteCategory::where(['website_id'=>$website_id])->whereIn("category_id",$ids_arr)->delete(); if($result){ return Result::success($result); }else{ return Result::error("删除失败",0); } } /** * 获取网站导航 * @param array $data * @return array */ public function getAdminWebsiteCategory(array $data): array { $where = [ 'website_id'=>$data['website_id'], 'pid'=>0 ]; $result = WebsiteCategory::where($where)->get(); if($result){ return Result::success($result); }else{ return Result::error("查询失败",0); } } /** * 更新网站导航 * @param array $data * @return array */ public function upWebsiteCategory(array $data): array { Db::beginTransaction(); try{ //合并栏目id $reqIds = array_merge($data['old_category_arr_id'],$data['new_category_arr_id']); //对比old 数组差异化,把差异化的删除 $result = WebsiteCategory::where(['website_id'=>$data['website_id'],'pid'=>0])->get(); $result = $result->toArray(); $categoryIds = []; if($result){ foreach ($result as $val){ array_push($categoryIds,$val['category_id']); } } //和原始数据对比取交际 $reqidsIntersect = array_intersect($reqIds,$categoryIds); //再取差集 进行对比 $differenceIDS = array_merge(array_diff($reqidsIntersect, $categoryIds),array_diff($categoryIds,$reqidsIntersect)); var_dump("差集:",$differenceIDS); $arr_ids = []; if(count($differenceIDS)>0){ foreach ($differenceIDS as $vv){ $idV = $this->getUnderlingUIds(intval($vv)); $ids_arrV = explode(",", $idV); array_push($arr_ids,$ids_arrV); } } $del_ids = array_reduce($arr_ids, 'array_merge', array()); //有差异 删除 if(count($del_ids)>0){ WebsiteCategory::where(['website_id'=>$data['website_id']])->whereIn("category_id",$del_ids)->delete(); } //传过来的值 和 交际 对比,选出要添加的值 进行插入 $insertIDS = array_merge(array_diff($reqIds, $reqidsIntersect),array_diff($reqidsIntersect,$reqIds)); var_dump("要存储的:",$insertIDS); //新的数组重新创建 if(count($insertIDS)>0){ $arr = []; $categoryListIds = $insertIDS; if($categoryListIds){ foreach ($categoryListIds as $v){ $ids = $this->getUnderlingUIds(intval($v)); $ids_arr = explode(",", $ids); array_push($arr,$ids_arr); } } $mergedArray = []; foreach ($arr as $subarray) { $mergedArray = array_merge($mergedArray, $subarray); } var_dump("要插入的ID:",$mergedArray); //查询出所有的分类进行分割插入 组装数据 $categoryListData = Category::whereIn('id',$mergedArray)->get(); $categoryListData = $categoryListData->toArray(); $insertData = []; if($categoryListData){ foreach ($categoryListData as $key=>$value){ $insertData[$key]['website_id'] = $data['website_id']; $insertData[$key]['name'] = $value['name']; $insertData[$key]['sort'] = $value['sort']; $insertData[$key]['pid'] = $value['pid']; $insertData[$key]['pid_arr'] = $value['pid_arr']; $insertData[$key]['seo_title'] = $value['seo_title']; $insertData[$key]['seo_keywords'] = $value['seo_keywords']; $insertData[$key]['seo_description'] = $value['seo_description']; $insertData[$key]['alias'] = $value['name']; $insertData[$key]['category_id'] = $value['id']; } } WebsiteCategory::insert($insertData); } Db::commit(); } catch(\Throwable $ex){ Db::rollBack(); var_dump($ex->getMessage()); return Result::error("修改失败",0); } return Result::success(); } /** * 获取网站列表 * @param array $data * @return array */ public function getWebsiteCategoryList(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']]); } $result = Website::where($where) ->with(["websiteCategory"=>function ($query) { $query->where(['pid'=>0])->select('website_id','name','alias','category_id'); }]) ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize']) ->get(); $count = Website::where($where)->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; if($result){ return Result::success($data); }else{ return Result::error("查询失败",0); } } /** * 删除网站下的所有导航 * @param array $data * @return array */ public function delWebsiteAllCategory(array $data): array { $website_id = $data['website_id']; $result = WebsiteCategory::where(['website_id'=>$website_id])->delete(); if($result){ return Result::success($result); }else{ return Result::error("删除失败",0); } } /** * 获取网站下的某一个导航 * @param array $data * @return array */ public function getWebsiteCategoryOnes(array $data): array { $website_id = $data['website_id']; $category_id = $data['category_id']; $result = WebsiteCategory::where(['website_category.website_id'=>$website_id,'website_category.category_id'=>$category_id]) ->first(); if($result){ return Result::success($result); }else{ return Result::error("查询失败",0); } } /** * 更新网闸下的某一个导航 * @param array $data * @return array */ public function upWebsiteCategoryones(array $data): array { $where = [ 'website_id'=>$data['website_id'], 'category_id'=>$data['category_id'], ]; $result = WebsiteCategory::where($where)->update($data); if($result){ return Result::success($result); }else{ return Result::error("更新失败",0); } } /** * 获取网站下的所有导航(包含子导航) * @param array $data * @return array */ public function getWebsiteAllCategory(array $data): array { $where = []; if(isset($data['website_id']) && !empty($data['website_id'])){ array_push($where,['website_category.website_id','=',$data['website_id']]); } if(isset($data['name']) && !empty($data['name'])){ array_push($where,['website_category.name','like','%'.$data['name'].'%']); } if(isset($data['alias']) && !empty($data['alias'])){ array_push($where,['website_category.alias','like','%'.$data['alias'].'%']); } if(isset($data['department_id']) && !empty($data['department_id'])){ array_push($where,['category.department_id','=',$data['department_id']]); } if(isset($data['city_id']) && !empty($data['city_id'])){ array_push($where,['category.city_id','=',$data['city_id']]); } $result = WebsiteCategory::where($where) ->leftJoin("category",'website_category.category_id','category.id') ->leftJoin("department",'category.department_id','department.id') ->leftJoin("district",'category.city_id','district.id') ->select("website_category.*","department.name as department_name","district.name as city_name") ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize']) ->get(); $count = WebsiteCategory::where($where) ->leftJoin("category",'website_category.category_id','category.id') ->leftJoin("department",'category.department_id','department.id') ->leftJoin("district",'category.city_id','district.id') ->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; if($result){ return Result::success($data); }else{ return Result::error("查询失败",0); } if($result){ return Result::success($result); }else{ return Result::error("查询失败",0); } } /** * 递归查询数据 * @param $id * @param $ids * @return string */ public function getUnderlingUIds($id, $ids='') { $back = Category::where(['pid'=>$id])->get(); $back = $back->toArray(); if (!empty($back) && is_array($back)) { foreach ($back as $v) { //防止当前人的ID重复去查询,形成恶性循环 if ($v['id'] == $id) { continue; } $back2 = Category::where(['pid'=>$id])->count('id'); if ($back2 > 0) { $ids = $this->getUnderlingUIds($v['id'],$ids); } else { $ids .= ','.$v['id']; } } } $ids = $id.','.$ids.','; $ids = str_replace(',,', ",", $ids); $ids = trim($ids, ','); return $ids; } /** * 检测网站名称是否重复 * @param array $data * @return array */ public function checkWebsiteName(array $data): array { if(isset($data['id'])){ $data[] = ['id',"!=",$data['id']]; unset($data['id']); } $websiteInfo = Website::query()->where($data)->first(); if (empty($websiteInfo)) { return Result::error("找不到网站",0); } return Result::success($websiteInfo->toArray()); } /** * 检测网站url是否重复 * @param array $data * @return array */ public function checkWebsiteUrl(array $data): array { $whereData = []; if(isset($data['id'])){ $whereData = [['id',"!=",$data['id']]]; unset($data['id']); } $websiteInfo = Website::query()->where($whereData)->whereJsonContains('website_url', $data['website_url'])->first(); if (empty($websiteInfo)) { return Result::error("找不到URL",0); } return Result::success($websiteInfo->toArray()); } /** * 风格下的板块 * @return void */ public function templateSectorList(array $data): array { $where = [ 'template_id'=>$data['template_id'] ]; $result = Sector::where($where)->whereJsonContains("page_type",$data['page_type']) ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize']) ->get(); $count = Sector::where($where)->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; if (empty($result)) { return Result::error("没有数据",0); } return Result::success($data); } /** * 板块下的组件 * @param array $data * @return array */ public function sectorComponentList(array $data): array { $where = [ 'template_id'=>$data['template_id'], 'sector_id'=>$data['sector_id'], ]; $result = Component::where($where) ->select("*") ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize']) ->get(); $count = Component::where($where)->count(); if (empty($result)) { return Result::error("没有数据",0); } $data = [ 'rows'=>$result->toArray(), 'count'=>$count ]; if (empty($result)) { return Result::error("没有数据",0); } return Result::success($data); } /** * 获取模板内容 * @return void */ public function getWebsiteTemplateInfo(array $data): array //丢了 { $wehre = [ "website_id" =>$data['website_id'] ]; $result = WebsiteTemplate::where($wehre)->first(); if($result){ return Result::success($result); }else{ return Result::error("没有数据",0); } } /** * 保存网站模板 * @param array $data * @return array */ public function addWebsiteTemplate(array $data): array { // var_dump("接收参数:",$data['webSiteData']['base']); Db::beginTransaction(); try{ $websiteTemplateInfo = WebsiteTemplate::where(['website_id'=>$data['webSiteData']['base']['websiteId']])->first(); // var_dump($websiteTemplateInfo); //原始数据 $templateList = $data['webSiteData']['template']; if($websiteTemplateInfo){ //模板存在-更新广告 }else{ //创建广告 $adList = $this->getAdlist($templateList); if(!empty($adList)){ AdPlace::insert($adList); } } // $result = WebsiteTemplate::updateOrInsert(['website_id'=>$data['webSiteData']['base']['websiteId']],['template_data'=>json_encode($data['webSiteData']),'updated_at'=>date("Y-m-d H:i:s",time())]); Db::commit(); } catch(\Throwable $ex){ Db::rollBack(); var_dump($ex->getMessage()); return Result::error("创建失败",0); } return Result::success(); } //获取传过来的广告列表 public function getAdlist($templateList) { if($templateList){ $adList = []; foreach ($templateList as $val){ if($val){ foreach ($val as $v){ if($v['componentList']){ foreach ($v['componentList'] as $p){ if($p['component_type']==3){ // var_dump("ppppppppppppp:",$p); $adSizeInfo = AdSize::where(['width'=>$p['componentData']['width'],'height'=>$p['componentData']['height']])->first(); $adSizeInfo = $adSizeInfo->toArray(); $adData = [ 'website_id'=> $data['webSiteData']['base']['websiteId'], 'status'=>1, 'name'=>$p['componentData']['text'], 'ad_id'=>$p['componentData']['ad_id'], 'ad_size_id'=>$adSizeInfo['id'], ]; array_push($adList,$adData); } } } } } } if(count($adList)>0){ return $adList; } } } /** * 预览网站首页模板数据 * @param array $data * @return array */ public function getWebsiteTemplateData(array $data): array { $wehre = [ "website_id" =>$data['website_id'] ]; $result = WebsiteTemplate::where($wehre)->first(); if($result){ $templateData = json_decode($result['template_data'],true); // var_dump("数据:",$templateData[1]); $templateData[1] = $this->getNewsList($templateData[1]); return Result::success($templateData); }else{ return Result::error("没有数据",0); } } /** * 获取列表数据 * @return void */ public function getNewsList(array $data): array { if($data){ foreach ($data as $key=>$val){ if($val){ foreach ($val['data'] as $k=>$item){ if($item['isReturn'] && intval($item['isReturn'])==1){ $imgList = []; if($item['data']['imgNum'] && intval($item['data']['imgNum'])>0){ $imgList = Article::where('imgurl',"!=","") ->where('catid',$item['data']['category_id']) ->select($item['data']['selectField']) ->orderBy("created_at","desc") ->offset(0) ->limit(intval($item['data']['imgNum'])) ->get(); $imgList = $imgList->toArray(); $listIds = []; if ($imgList){ $listIds = array_column($imgList, 'id'); } $dataList = Article::whereNotIn('id',$listIds) ->where('catid',$item['data']['category_id']) ->select($item['data']['selectField']) ->orderBy("created_at","desc") ->offset(0) ->limit(intval($item['data']['pageSize'])-intval($item['data']['imgNum'])) ->get(); $dataList = $dataList->toArray(); var_dump("图片列表:",$imgList,"数据列表:",$dataList); $datas = array_merge($imgList,$dataList); // return $datas; var_dump("合并列表:",$datas); $data[$key]['data'][$k]['dataList'] = $datas; }else{ $dataList = Article::where('catid',$item['data']['category_id']) ->select($item['data']['selectField']) ->orderBy("created_at","desc") ->offset(0) ->limit(intval($item['data']['pageSize'])) ->get(); $dataList = $dataList->toArray(); var_dump("数据列表:",$dataList); } } } } } } return $data; } /** * 获取底部导航列表 * @param array $data * @return array */ public function getFooterCategoryList(array $data): array { $where = [ "website_id"=>$data['website_id'] ]; $result = FooterCategory::where($where)->get(); if($result){ return Result::success($result); }else{ return Result::error("没有数据"); } } //获取底部导航内容列表 public function getFooterContentList(array $data): array { $where = [ "fcat_id"=>$data['fcat_id'], ]; switch (intval($data['type'])){ case 0: $result = FooterContent::where($where)->first(); break; case 1: $result = FooterContent::where($where)->get(); break; } if($result){ return Result::success($result); }else{ return Result::error("没有数据"); } } //获取底部导航内容详情 public function getFooterContentInfo(array $data): array { $where = [ "id"=>$data['content_id'] ]; $result = FooterContent::where($where)->first(); if($result){ return Result::success($result); }else{ return Result::error("没有数据"); } } }