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); } $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("template", "template.id", "website.template_id") ->select("website.*", "template.template_name", "template.template_img") ->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); } } /** * 查询网站的广告 * @param array $data * @return array */ public function getWebsiteAdvertisement(array $data): array { $where = [ 'website_id' => 1, 'id' => $data['ad_placeid'], ]; //查询这个广告位是否存在 $ad_place = AdPlace::where($where)->orderBy('id', 'asc')->first(); var_dump("==========", $ad_place); if (empty($ad_place)) { return Result::error("error", 0); } else { $adplaceid = $ad_place['id']; //查找有没有广告 $ad = Ad::where('pid', $adplaceid['id'])->where('status', 1)->orderBy('id', 'asc')->get(); if (empty($ad)) { //若没有生效的广告,则显示默认的缩略图 $result = $adplaceid; return Result::success($result); } else { //查找在生效时间的广告 $today = Carbon::now(); foreach ($ad as $i) { $starttime = Carbon::parse($i['fromtime']); $endtime = Carbon::parse($i['totime']); $time = $today->between($starttime, $endtime); if ($time) { $result = $i; } } if (empty($result)) { $result = $ad; return Result::success($result); } else { return Result::success($result); } } } } /** * * @param array $data * @return array */ /**网站行政职能搜索 */ public function selectWebsiteDepartment(array $data): array { $depart = Department::where('pid', 0)->orderBy('id', 'asc')->limit(10)->get(); if (isset($data['keyword']) && !empty($data['keyword'])) { $departments = Department::where('name', 'like', '%' . $data['keyword'] . '%')->get(); if (empty($departments)) { $result['message'] = "未查询到与此相关职能部门"; } else { $count = Department::where('name', 'like', "%{$data['keyword']}%")->count(); $m = [ 'department' => $depart, 'type' => $departments, 'count' => $count, ]; } $result['sele'] = $m; return Result::success($result['sele']); } $result = $depart; return Result::success($result); } /** * 搜索地区 * @param array $data * @return array */ public function selectWebsiteArea(array $data): array { $provinces = District::where('pid', 0)->where('status', 1)->get(); if (isset($data['province'])) { $province = District::where('pid', 0)->where('status', 1)->where('id', $data['province'])->orderBy('id')->get(); $province = $province->toArray(); if (!empty($province)) { $citys = District::where('pid', $data['province'])->where('status', 1)->orderBy('id')->get(); if (!empty($citys) && isset($data['city']) && !empty($data['city'])) { // $province = $province->toArray(); $province_id = []; foreach ($province as $val) { array_push($province_id, $val['id']); } // var_dump($province_id); $city = District::whereIn('pid', $province_id)->where('status', 1)->where('id', $data['city'])->orderBy('id')->get(); if (!empty($city)) { $city_id = []; foreach ($city as $val) { array_push($city_id, $val['id']); } $regions = District::whereIn('pid', $city_id)->where('status', 1)->orderBy('id')->get(); $result = [ 'province' => $province, 'city' => $city, 'region' => $regions, ]; } else { return Result::error("未查询到此城市", 0); } } else { $result = [ 'province' => $province, 'city' => $citys, 'region' => null, ]; } } else { return Result::error("未查询到此省份", 0); } } else { // $keys = array('data'); $result = $provinces; } return Result::success($result); } /** * 获取栏目 * @param array $data * @return array */ public function getWebsiteModelCategory(array $data): array { $website_id = [ 'website_id' => $data['website_id'], ]; $placeid = $data['placeid'] - 1; $pid = [ 'pid' => $data['pid'], ]; $num = $data['num']; $result = WebsiteCategory::where($website_id)->where($pid)->withCount(['children' => function ($query) use ($website_id) { $query->where($website_id); }])->orderBy('sort')->offset($placeid)->limit($num)->get(); if (!empty($result)) { return Result::success($result); } else { return Result::error("本网站暂无栏目", 0); } } /** * 获取友情链接 * @param array $data * @return array */ public function selectWebsiteLinks(array $data): array { $where = [ 'website_id' => $data['website_id'], 'status' => 1, 'type' => $data['type'], ]; $num = $data['num']; $result = Link::where($where)->orderBy('id')->limit($num)->get(); if (!empty($result)) { return Result::success($result); } else { return Result::error("本网站暂无此类型友情链接", 0); } } /** * 网站首页数据统计, 管理员 * @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'])->orderBy("updated_at", "desc")->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()); } //20250212 网站标识 public function addWebsiteGroup(array $data): array { //添加信息 $result = WebsiteGroup::insertGetId($data); var_dump($result); if (empty($result)) { return Result::error("创建失败", 0); } else { return Result::success($result); } } public function getWebsiteGroupList(array $data): array { $where = []; if (isset($data['name']) && !empty($data['name'])) { array_push($where, ['website_group.name', 'like', '%' . $data['name'] . '%']); } $result = WebsiteGroup::where($where) ->limit($data['pageSize'])->orderBy("id", "desc")->offset(($data['page'] - 1) * $data['pageSize']) ->get(); foreach ($result as $websiteGroup) { $webIds = json_decode($websiteGroup->web_ids, true); $websites = Website::whereIn('id', $webIds)->get(); $websiteNames = $websites->pluck('website_name', 'id')->toArray(); $websiteGroup->website_names = $websiteNames; $websiteGroup->website_names1 = implode(',', array_values($websiteNames)); } $count = WebsiteGroup::where($where)->count(); if (empty($result)) { return Result::error("没有数据", 0); } return Result::success(['list' => $result->toArray(), 'count' => $count]); } public function getWebsiteGroupInfo(array $data): array { $websiteInfo = WebsiteGroup::query()->where('id', $data['id'])->first(); $webIds = json_decode($websiteInfo->web_ids, true); $websites = Website::whereIn('id', $webIds)->get(); $websiteNames = $websites->pluck('website_name', 'id')->toArray(); $websiteInfo->website_names = $websiteNames; $websiteInfo->website_names1 = implode(',', array_values($websiteNames)); if (empty($websiteInfo)) { return Result::error("找不到URL", 0); } return Result::success($websiteInfo->toArray()); } public function updateWebsiteGroup(array $data): array { $where = [ 'id' => $data['id'], ]; $insertData = [ 'name' => $data['name'], 'web_ids' => $data['web_ids'], ]; $result = WebsiteGroup::where($where)->update($insertData); var_dump($result, '------更新'); if (empty($result)) { return Result::error("更新失败", 0); } else { return Result::success(); } } public function deleteWebsiteGroup(array $data): array { $where = [ 'id' => $data['id'], ]; //看看user表是不是有这个id $userGroup = User::query()->where('sszq', $data['id'])->first(); if (!empty($userGroup)) { return Result::error("有用户在使用该网站标识,不能删除", 0); } $result = WebsiteGroup::where($where)->delete(); if (empty($result)) { return Result::error("删除失败", 0); } else { return Result::success(); } } public function getWebsiteNavList(array $data): array { $where = []; if (isset($data['website_id']) && !empty($data['website_id'])) { array_push($where, ['website_id', '=', $data['website_id']]); } if (isset($data['pid']) && !empty($data['pid'])) { array_push($where, ['pid', '=', $data['pid']]); } $list = WebsiteCategory::query()->where($where)->get(); if (empty($list)) { return Result::error("获取失败", 0); } else { return Result::success($list); } } }