作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

@@ -13,6 +13,7 @@ use App\Enums\Common\Code; @@ -13,6 +13,7 @@ use App\Enums\Common\Code;
13 use App\Http\Controllers\Api\BaseController; 13 use App\Http\Controllers\Api\BaseController;
14 use App\Models\Ticket\Project5Cate; 14 use App\Models\Ticket\Project5Cate;
15 use App\Models\WorkOrder\TicketProject; 15 use App\Models\WorkOrder\TicketProject;
  16 +use Illuminate\Support\Facades\Http;
16 17
17 class Project5CateController extends BaseController 18 class Project5CateController extends BaseController
18 { 19 {
@@ -26,12 +27,14 @@ class Project5CateController extends BaseController @@ -26,12 +27,14 @@ class Project5CateController extends BaseController
26 public function getProject5Cate(){ 27 public function getProject5Cate(){
27 $this->request->validate([ 28 $this->request->validate([
28 'post_id'=>'required', 29 'post_id'=>'required',
  30 + 'type'=>'required',
29 ],[ 31 ],[
30 'post_id.required' => 'post_id不能为空', 32 'post_id.required' => 'post_id不能为空',
  33 + 'type.required' => '类型不能为空',
31 ]); 34 ]);
32 //查询是否有值 35 //查询是否有值
33 $project5CateModel = new Project5Cate(); 36 $project5CateModel = new Project5Cate();
34 - $cateInfo = $project5CateModel->read(['project_id' => $this->param['post_id'],'updated_at'=>['>', date('Y-m-d H:i:s', strtotime('-48 hours'))]]); 37 + $cateInfo = $project5CateModel->read(['project_id' => $this->param['post_id'],'type'=>$this->param['type'],'updated_at'=>['>', date('Y-m-d H:i:s', strtotime('-48 hours'))]]);
35 if($cateInfo !== false){ 38 if($cateInfo !== false){
36 $resultData = $cateInfo['text']; 39 $resultData = $cateInfo['text'];
37 $this->response('success', Code::SUCCESS, $resultData); 40 $this->response('success', Code::SUCCESS, $resultData);
@@ -42,18 +45,72 @@ class Project5CateController extends BaseController @@ -42,18 +45,72 @@ class Project5CateController extends BaseController
42 if($projectInfo === false){ 45 if($projectInfo === false){
43 $this->response('当前项目不存在或数据未同步',Code::SYSTEM_ERROR); 46 $this->response('当前项目不存在或数据未同步',Code::SYSTEM_ERROR);
44 } 47 }
45 - $url = $projectInfo['website'].'/wp-admin/admin-ajax.php?action=get_products_category'; 48 + //todo::目前写死
  49 + $projectInfo['website'] = 'https://devmark.globalso.com/';
  50 + $action = $project5CateModel->getCateTypeAction($this->param['type']);
  51 + if(empty($action)){
  52 + $this->response('未知请求',Code::SYSTEM_ERROR);
  53 + }
  54 + $url = $projectInfo['website'].'wp-admin/admin-ajax.php?action='.$action;
46 $data = http_get($url); 55 $data = http_get($url);
47 if($data && $data['status'] == 200){ 56 if($data && $data['status'] == 200){
48 $resultData = $data['data']; 57 $resultData = $data['data'];
49 $saveData = [ 58 $saveData = [
50 'project_id' => $projectInfo['post_id'], 59 'project_id' => $projectInfo['post_id'],
51 - 'domain' => $projectInfo['domain'], 60 + 'domain' => $projectInfo['website'],
52 'text'=>json_encode($data['data']), 61 'text'=>json_encode($data['data']),
  62 + 'type' => $this->param['type'],
53 ]; 63 ];
54 $project5CateModel->addReturnId($saveData); 64 $project5CateModel->addReturnId($saveData);
55 $this->response('success', Code::SUCCESS,$resultData); 65 $this->response('success', Code::SUCCESS,$resultData);
56 } 66 }
57 $this->response('success',Code::SUCCESS,$url); 67 $this->response('success',Code::SUCCESS,$url);
58 } 68 }
  69 +
  70 + /**
  71 + * @remark :新增分类
  72 + * @name :addProject5Cate
  73 + * @author :lyh
  74 + * @method :post
  75 + * @time :2025/11/8 10:25
  76 + */
  77 + public function addProject5Cate()
  78 + {
  79 + $this->request->validate([
  80 + 'post_id'=>'required',
  81 + 'type'=>'required',
  82 + 'name'=>'required',
  83 + 'parent'=>'required',
  84 + ],[
  85 + 'post_id.required' => 'post_id不能为空',
  86 + 'type.required' => '类型不能为空',
  87 + 'name.required' => '名称不能为空',
  88 + 'parent.required' => '上级ID不能为空',
  89 + ]);
  90 + //获取域名
  91 + $ticketProjectMdoel = new TicketProject();
  92 + $projectInfo = $ticketProjectMdoel->read(['post_id' => $this->param['post_id']]);
  93 + if($projectInfo === false){
  94 + $this->response('当前项目不存在或数据未同步',Code::SYSTEM_ERROR);
  95 + }
  96 + $project5CateModel = new Project5Cate();
  97 + //todo::目前写死,上线放开
  98 + $projectInfo['website'] = 'https://devmark.globalso.com/';
  99 + $action = $project5CateModel->saveCateTypeAction($this->param['type']);
  100 + $url = $projectInfo['website'].'wp-admin/admin-ajax.php?action='.$action;
  101 + if(empty($action)){
  102 + $this->response('未知请求',Code::SYSTEM_ERROR);
  103 + }
  104 + $response = Http::withHeaders([])->asForm()->post($url, [
  105 + 'name' => $this->param['name'],
  106 + 'parent' => $this->param['parent'] ?? 0,
  107 + ]);
  108 + if ($response->successful()) {
  109 + $result = $response->json(); // 获取 JSON 响应体
  110 + if($result && $result['status'] == 200){
  111 + $this->response('success');
  112 + }
  113 + }
  114 + $this->response('请求失败',Code::SYSTEM_ERROR);
  115 + }
59 } 116 }
@@ -61,11 +61,11 @@ class GeoLogic extends BaseLogic @@ -61,11 +61,11 @@ class GeoLogic extends BaseLogic
61 } 61 }
62 //负责人集合 62 //负责人集合
63 $geo_manage_list = $geoConfModel->geoManage(); 63 $geo_manage_list = $geoConfModel->geoManage();
64 - // geo配置管理员,已经移除管理员列表,补充管理员信息  
65 - if ($geo_conf && isset($geo_conf['manager_id']) && empty($geo_manage_list[$geo_conf['manager_id']])) {  
66 - $manage = ManageHr::where(['id' => $geo_conf['manager_id']])->pluck('name', 'id')->toArray();  
67 - $geo_manage_list = array_merge($geo_manage_list, $manage);  
68 - } 64 +// // geo配置管理员,已经移除管理员列表,补充管理员信息
  65 +// if ($geo_conf && isset($geo_conf['manager_id']) && empty($geo_manage_list[$geo_conf['manager_id']])) {
  66 +// $manage = ManageHr::where(['id' => $geo_conf['manager_id']])->pluck('name', 'id')->toArray();
  67 +// $geo_manage_list = array_merge($geo_manage_list, $manage);
  68 +// }
69 $result = [ 69 $result = [
70 'project_geo_conf' => $project_geo_conf, 70 'project_geo_conf' => $project_geo_conf,
71 'geo_conf' => $geo_conf, 71 'geo_conf' => $geo_conf,
@@ -563,7 +563,7 @@ class RankDataLogic extends BaseLogic @@ -563,7 +563,7 @@ class RankDataLogic extends BaseLogic
563 $without_project_ids = []; //不用处理排名的项目 563 $without_project_ids = []; //不用处理排名的项目
564 $without_extension_project_ids = [658]; //是否达标只统计主词的 564 $without_extension_project_ids = [658]; //是否达标只统计主词的
565 $extension_project_ids = [354]; //扩展词也到达标的 565 $extension_project_ids = [354]; //扩展词也到达标的
566 - $compliance_project_ids = [2163,257,823,1750,497,1006,2663]; //直接达标处理的 566 + $compliance_project_ids = [2163,257,823,1750,497,1006,2663,255]; //直接达标处理的
567 $ceaseProjectId = [354, 378, 649, 1226, 1283, 1703, 1893, 2066, 2250,2193,2399,1685, 3931,2273,3647,1934];//暂停的项目 567 $ceaseProjectId = [354, 378, 649, 1226, 1283, 1703, 1893, 2066, 2250,2193,2399,1685, 3931,2273,3647,1934];//暂停的项目
568 $uptimeProjectId = [1434,1812,276,2414,2974];//按上线时间统计的项目 568 $uptimeProjectId = [1434,1812,276,2414,2974];//按上线时间统计的项目
569 //一个项目多个api_no 569 //一个项目多个api_no
@@ -39,7 +39,7 @@ class GeoConf extends Base @@ -39,7 +39,7 @@ class GeoConf extends Base
39 return $optimize; 39 return $optimize;
40 } 40 }
41 // 没有搜索条件时使用缓存 41 // 没有搜索条件时使用缓存
42 - $key = 'geo_manage_list_' . date('Ymd'); 42 + $key = 'geo_manage_list';
43 $optimize = Cache::get($key); 43 $optimize = Cache::get($key);
44 if (empty($optimize)) { 44 if (empty($optimize)) {
45 $optimize = ManageHr::where(function($query) { 45 $optimize = ManageHr::where(function($query) {
@@ -29,4 +29,35 @@ class Project5Cate extends Base @@ -29,4 +29,35 @@ class Project5Cate extends Base
29 } 29 }
30 return $value; 30 return $value;
31 } 31 }
  32 +
  33 + /**
  34 + * @remark :请求的方法
  35 + * @name :getCateType
  36 + * @author :lyh
  37 + * @method :post
  38 + * @time :2025/11/8 10:22
  39 + */
  40 + public function getCateTypeAction($type = '')
  41 + {
  42 + $data = [
  43 + 1 => 'get_products_category',
  44 + 3 => 'get_news_category',
  45 + ];
  46 + if(!empty($type)){
  47 + return $data[$type];
  48 + }
  49 + return '';
  50 + }
  51 +
  52 + public function saveCateTypeAction($type = '')
  53 + {
  54 + $data = [
  55 + 1 => 'add_products_category',
  56 + 3 => 'add_news_category',
  57 + ];
  58 + if(!empty($type)){
  59 + return $data[$type];
  60 + }
  61 + return '';
  62 + }
32 } 63 }
@@ -111,6 +111,8 @@ Route::prefix('ticket_upload')->group(function () { @@ -111,6 +111,8 @@ Route::prefix('ticket_upload')->group(function () {
111 Route::any('/getLayoutDesignInfo', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'getLayoutDesignInfo'])->name('ticket_upload.getLayoutDesignInfo'); 111 Route::any('/getLayoutDesignInfo', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'getLayoutDesignInfo'])->name('ticket_upload.getLayoutDesignInfo');
112 //5.0获取分类 112 //5.0获取分类
113 Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate'); 113 Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate');
  114 + Route::any('/addProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'addProject5Cate'])->name('ticket_upload.addProject5Cate');
  115 +
114 }); 116 });
115 //geo设置 117 //geo设置
116 Route::prefix('geo')->group(function () { 118 Route::prefix('geo')->group(function () {