|
@@ -10,7 +10,6 @@ use App\Http\Logic\Aside\Project\OnlineCheckLogic; |
|
@@ -10,7 +10,6 @@ use App\Http\Logic\Aside\Project\OnlineCheckLogic; |
|
10
|
use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
|
10
|
use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
|
|
11
|
use App\Http\Logic\Aside\Project\ProjectLogic;
|
11
|
use App\Http\Logic\Aside\Project\ProjectLogic;
|
|
12
|
use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
|
12
|
use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
|
|
13
|
-use App\Models\Ai\AiVideo;
|
|
|
|
14
|
use App\Models\ASide\APublicModel;
|
13
|
use App\Models\ASide\APublicModel;
|
|
15
|
use App\Models\Channel\Channel;
|
14
|
use App\Models\Channel\Channel;
|
|
16
|
use App\Models\Channel\User;
|
15
|
use App\Models\Channel\User;
|
|
@@ -21,9 +20,11 @@ use App\Models\Com\UpdateLog; |
|
@@ -21,9 +20,11 @@ use App\Models\Com\UpdateLog; |
|
21
|
use App\Models\Devops\ServerConfig;
|
20
|
use App\Models\Devops\ServerConfig;
|
|
22
|
use App\Models\Devops\ServersIp;
|
21
|
use App\Models\Devops\ServersIp;
|
|
23
|
use App\Models\Domain\DomainCreateTask;
|
22
|
use App\Models\Domain\DomainCreateTask;
|
|
24
|
-use App\Models\Domain\DomainInfo;
|
|
|
|
25
|
use App\Models\Domain\DomainInfo as DomainInfoModel;
|
23
|
use App\Models\Domain\DomainInfo as DomainInfoModel;
|
|
|
|
24
|
+use App\Models\Geo\GeoArticle;
|
|
|
|
25
|
+use App\Models\Geo\GeoConf;
|
|
26
|
use App\Models\Geo\GeoLink;
|
26
|
use App\Models\Geo\GeoLink;
|
|
|
|
27
|
+use App\Models\Geo\GeoQuestionResult;
|
|
27
|
use App\Models\HomeCount\Count;
|
28
|
use App\Models\HomeCount\Count;
|
|
28
|
use App\Models\Industry\ProjectIndustry;
|
29
|
use App\Models\Industry\ProjectIndustry;
|
|
29
|
use App\Models\Inquiry\InquirySet;
|
30
|
use App\Models\Inquiry\InquirySet;
|
|
@@ -31,7 +32,6 @@ use App\Models\Manage\BelongingGroup; |
|
@@ -31,7 +32,6 @@ use App\Models\Manage\BelongingGroup; |
|
31
|
use App\Models\Manage\ManageHr;
|
32
|
use App\Models\Manage\ManageHr;
|
|
32
|
use App\Models\Project\AiVideoTask;
|
33
|
use App\Models\Project\AiVideoTask;
|
|
33
|
use App\Models\Project\DeployBuild;
|
34
|
use App\Models\Project\DeployBuild;
|
|
34
|
-use App\Models\Project\DeployOptimize;
|
|
|
|
35
|
use App\Models\Project\Payment;
|
35
|
use App\Models\Project\Payment;
|
|
36
|
use App\Models\Project\ProcessRecords;
|
36
|
use App\Models\Project\ProcessRecords;
|
|
37
|
use App\Models\Project\Project;
|
37
|
use App\Models\Project\Project;
|
|
@@ -43,7 +43,6 @@ use App\Models\Task\Task; |
|
@@ -43,7 +43,6 @@ use App\Models\Task\Task; |
|
43
|
use App\Models\WebSetting\WebLanguage;
|
43
|
use App\Models\WebSetting\WebLanguage;
|
|
44
|
use App\Models\WorkOrder\TicketProject;
|
44
|
use App\Models\WorkOrder\TicketProject;
|
|
45
|
use Illuminate\Http\Request;
|
45
|
use Illuminate\Http\Request;
|
|
46
|
-use Illuminate\Support\Facades\DB;
|
|
|
|
47
|
use Illuminate\Support\Facades\Http;
|
46
|
use Illuminate\Support\Facades\Http;
|
|
48
|
|
47
|
|
|
49
|
/**
|
48
|
/**
|
|
@@ -448,33 +447,46 @@ class ProjectController extends BaseController |
|
@@ -448,33 +447,46 @@ class ProjectController extends BaseController |
|
448
|
if(!empty($item['extend_type'])){
|
447
|
if(!empty($item['extend_type'])){
|
|
449
|
$item['type'] = $item['extend_type'];
|
448
|
$item['type'] = $item['extend_type'];
|
|
450
|
}
|
449
|
}
|
|
451
|
- $manageModel = new ManageHr();
|
|
|
|
452
|
- $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
|
|
|
|
453
|
- $item['build_leader'] = $manageModel->getName($item['leader_mid']);
|
|
|
|
454
|
- $item['build_manager'] = $manageModel->getName($item['manager_mid']);
|
|
|
|
455
|
- $item['build_designer'] = $manageModel->getName($item['designer_mid']);
|
|
|
|
456
|
- $item['build_tech'] = $manageModel->getName($item['tech_mid']);
|
|
|
|
457
|
- $item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
|
|
|
|
458
|
- $item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
|
|
|
|
459
|
- $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
|
|
|
|
460
|
- $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
|
|
|
|
461
|
- $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
|
450
|
+ $domainModel = new DomainInfoModel();
|
|
|
|
451
|
+ $item['domain'] = !empty($item['domain']) ? $domainModel->getDomain($item['domain']) : '';
|
|
|
|
452
|
+ $item['uuid'] = TicketProject::where('table_id', $item['id'])->where('project_cate', 2)->value('uuid') ?? null;
|
|
|
|
453
|
+ $item['friend_id'] = ProjectAssociation::where('project_id', $item['id'])->where('status', ProjectAssociation::STATUS_NORMAL)->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)->value('friend_id') ?? null;
|
|
462
|
$planMap = Project::planMap();
|
454
|
$planMap = Project::planMap();
|
|
463
|
$seoPlanMap = Project::seoMap();
|
455
|
$seoPlanMap = Project::seoMap();
|
|
464
|
$item['plan'] = $planMap[$item['plan']] ?? '';
|
456
|
$item['plan'] = $planMap[$item['plan']] ?? '';
|
|
465
|
$item['seo_plan'] = $seoPlanMap[$item['seo_plan']] ?? '';
|
457
|
$item['seo_plan'] = $seoPlanMap[$item['seo_plan']] ?? '';
|
|
466
|
- $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
|
|
|
|
467
|
$item['autologin_code'] = getAutoLoginCode($item['id']);
|
458
|
$item['autologin_code'] = getAutoLoginCode($item['id']);
|
|
468
|
- $domainModel = new DomainInfo();
|
|
|
|
469
|
- $item['domain'] = !empty($item['domain']) ? $domainModel->getDomain($item['domain']) : '';
|
459
|
+ $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
|
|
470
|
$item['product_num'] = $data['product'] ?? 0;
|
460
|
$item['product_num'] = $data['product'] ?? 0;
|
|
471
|
$item['keyword_num'] = $data['key'] ?? 0;
|
461
|
$item['keyword_num'] = $data['key'] ?? 0;
|
|
472
|
$item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0);
|
462
|
$item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0);
|
|
473
|
$item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN);
|
463
|
$item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN);
|
|
474
|
$item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]);
|
464
|
$item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]);
|
|
475
|
$item['collect_time'] = $item['is_upgrade'] ? UpdateLog::getProjectUpdate($item['id']) : '';
|
465
|
$item['collect_time'] = $item['is_upgrade'] ? UpdateLog::getProjectUpdate($item['id']) : '';
|
|
476
|
- $item['uuid'] = TicketProject::where('table_id', $item['id'])->where('project_cate', 2)->value('uuid') ?? null;
|
|
|
|
477
|
- $item['friend_id'] = ProjectAssociation::where('project_id', $item['id'])->where('status', ProjectAssociation::STATUS_NORMAL)->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)->value('friend_id') ?? null;
|
466
|
+ $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
|
|
|
|
467
|
+ $manageModel = new ManageHr();
|
|
|
|
468
|
+ //geo项目
|
|
|
|
469
|
+ if(($item['plan'] == 0) && ($item['seo_plan'] != 0)){
|
|
|
|
470
|
+ //geo项目负责人
|
|
|
|
471
|
+ $geoConfModel = new GeoConf();
|
|
|
|
472
|
+ $manage_id = $geoConfModel->getValue(['project_id'=>$item['id']],'manager_id');
|
|
|
|
473
|
+ $item['geo_manage_name'] = $manageModel->getName($manage_id);
|
|
|
|
474
|
+ $geoArticleModel = new GeoArticle();
|
|
|
|
475
|
+ $item['geo_article_num'] = $geoArticleModel->counts(['project_id'=>$item['id']]);//文章数量
|
|
|
|
476
|
+ $geoLinkModel = new GeoLink();
|
|
|
|
477
|
+ $item['geo_link_num'] = $geoLinkModel->counts(['project_id'=>$item['id']]);//权威新闻数量
|
|
|
|
478
|
+ $questionResModel = new GeoQuestionResult();
|
|
|
|
479
|
+ $item['geo_qualify_num'] = $questionResModel->counts(['project_id'=>$item['id'],'hit'=>['!=',0],'platform'=>['in',['openai', 'gemini','google_ai_overview']]]);//排名
|
|
|
|
480
|
+ }
|
|
|
|
481
|
+ $item['build_leader'] = $manageModel->getName($item['leader_mid']);
|
|
|
|
482
|
+ $item['build_manager'] = $manageModel->getName($item['manager_mid']);
|
|
|
|
483
|
+ $item['build_designer'] = $manageModel->getName($item['designer_mid']);
|
|
|
|
484
|
+ $item['build_tech'] = $manageModel->getName($item['tech_mid']);
|
|
|
|
485
|
+ $item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
|
|
|
|
486
|
+ $item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
|
|
|
|
487
|
+ $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
|
|
|
|
488
|
+ $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
|
|
|
|
489
|
+ $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
|
|
478
|
return $item;
|
490
|
return $item;
|
|
479
|
}
|
491
|
}
|
|
480
|
|
492
|
|
|
@@ -797,7 +809,6 @@ class ProjectController extends BaseController |
|
@@ -797,7 +809,6 @@ class ProjectController extends BaseController |
|
797
|
$order_by_sort = $request->input('order_by_sort', 'desc');
|
809
|
$order_by_sort = $request->input('order_by_sort', 'desc');
|
|
798
|
$start_time = $this->param['start_time'] ?? '';
|
810
|
$start_time = $this->param['start_time'] ?? '';
|
|
799
|
$end_time = $this->param['end_time'] ?? '';
|
811
|
$end_time = $this->param['end_time'] ?? '';
|
|
800
|
-
|
|
|
|
801
|
if(!$source_id && !$id){
|
812
|
if(!$source_id && !$id){
|
|
802
|
$this->response('参数异常',Code::SYSTEM_ERROR);
|
813
|
$this->response('参数异常',Code::SYSTEM_ERROR);
|
|
803
|
}
|
814
|
}
|
|
@@ -891,7 +902,6 @@ class ProjectController extends BaseController |
|
@@ -891,7 +902,6 @@ class ProjectController extends BaseController |
|
891
|
$param['yesterday_ip_count'] = $yesterday_count['ip_num'] ?? 0;
|
902
|
$param['yesterday_ip_count'] = $yesterday_count['ip_num'] ?? 0;
|
|
892
|
$param['today_ip_count'] = $today_count['ip_num'] ?? 0;
|
903
|
$param['today_ip_count'] = $today_count['ip_num'] ?? 0;
|
|
893
|
$param['inquiry_num'] = $today_count['inquiry_num'] ?? 0;
|
904
|
$param['inquiry_num'] = $today_count['inquiry_num'] ?? 0;
|
|
894
|
-
|
|
|
|
895
|
$list[] = $param;
|
905
|
$list[] = $param;
|
|
896
|
}
|
906
|
}
|
|
897
|
$data['list'] = $list;
|
907
|
$data['list'] = $list;
|
|
@@ -1182,7 +1192,6 @@ class ProjectController extends BaseController |
|
@@ -1182,7 +1192,6 @@ class ProjectController extends BaseController |
|
1182
|
'id.required' => '项目id不能为空',
|
1192
|
'id.required' => '项目id不能为空',
|
|
1183
|
'site_status.required' => '状态不能为空',
|
1193
|
'site_status.required' => '状态不能为空',
|
|
1184
|
]);
|
1194
|
]);
|
|
1185
|
-
|
|
|
|
1186
|
//获取项目数据
|
1195
|
//获取项目数据
|
|
1187
|
$projectModel = new Project();
|
1196
|
$projectModel = new Project();
|
|
1188
|
$projectInfo = $projectModel->read(['id'=>$this->param['id']],['project_type','serve_id','site_status','site_token']);
|
1197
|
$projectInfo = $projectModel->read(['id'=>$this->param['id']],['project_type','serve_id','site_status','site_token']);
|
|
@@ -1192,14 +1201,12 @@ class ProjectController extends BaseController |
|
@@ -1192,14 +1201,12 @@ class ProjectController extends BaseController |
|
1192
|
if($projectInfo['site_status'] == $this->param['site_status']){
|
1201
|
if($projectInfo['site_status'] == $this->param['site_status']){
|
|
1193
|
$this->response('success');
|
1202
|
$this->response('success');
|
|
1194
|
}
|
1203
|
}
|
|
1195
|
-
|
|
|
|
1196
|
//获取服务器数据
|
1204
|
//获取服务器数据
|
|
1197
|
$serverIpModel = new ServersIp();
|
1205
|
$serverIpModel = new ServersIp();
|
|
1198
|
$serversIpInfo = $serverIpModel->read(['id' => $projectInfo['serve_id']], ['servers_id']);
|
1206
|
$serversIpInfo = $serverIpModel->read(['id' => $projectInfo['serve_id']], ['servers_id']);
|
|
1199
|
if(!$serversIpInfo){
|
1207
|
if(!$serversIpInfo){
|
|
1200
|
$this->fail('获取项目所属服务器失败');
|
1208
|
$this->fail('获取项目所属服务器失败');
|
|
1201
|
}
|
1209
|
}
|
|
1202
|
-
|
|
|
|
1203
|
if($serversIpInfo['servers_id'] == ServerConfig::SELF_SITE_ID){
|
1210
|
if($serversIpInfo['servers_id'] == ServerConfig::SELF_SITE_ID){
|
|
1204
|
//自建站项目
|
1211
|
//自建站项目
|
|
1205
|
if($this->param['site_status'] == 1){
|
1212
|
if($this->param['site_status'] == 1){
|
|
@@ -1209,7 +1216,6 @@ class ProjectController extends BaseController |
|
@@ -1209,7 +1216,6 @@ class ProjectController extends BaseController |
|
1209
|
//开启站点
|
1216
|
//开启站点
|
|
1210
|
$site_token = str_replace('_expired','',$projectInfo['site_token']);
|
1217
|
$site_token = str_replace('_expired','',$projectInfo['site_token']);
|
|
1211
|
}
|
1218
|
}
|
|
1212
|
-
|
|
|
|
1213
|
$projectModel->edit(['site_status'=>$this->param['site_status'],'site_token'=>$site_token],['id'=>$this->param['id']]);
|
1219
|
$projectModel->edit(['site_status'=>$this->param['site_status'],'site_token'=>$site_token],['id'=>$this->param['id']]);
|
|
1214
|
}else{
|
1220
|
}else{
|
|
1215
|
//普通项目
|
1221
|
//普通项目
|
|
@@ -1219,7 +1225,6 @@ class ProjectController extends BaseController |
|
@@ -1219,7 +1225,6 @@ class ProjectController extends BaseController |
|
1219
|
if(!$domainInfo){
|
1225
|
if(!$domainInfo){
|
|
1220
|
$this->fail('获取域名数据失败');
|
1226
|
$this->fail('获取域名数据失败');
|
|
1221
|
}
|
1227
|
}
|
|
1222
|
-
|
|
|
|
1223
|
if($this->param['site_status'] == 1){
|
1228
|
if($this->param['site_status'] == 1){
|
|
1224
|
//关闭站点:通知C端
|
1229
|
//关闭站点:通知C端
|
|
1225
|
$re = curl_get('https://'.$domainInfo['domain'].'/api/stop_or_start_website');
|
1230
|
$re = curl_get('https://'.$domainInfo['domain'].'/api/stop_or_start_website');
|
|
@@ -1260,10 +1265,8 @@ class ProjectController extends BaseController |
|
@@ -1260,10 +1265,8 @@ class ProjectController extends BaseController |
|
1260
|
}
|
1265
|
}
|
|
1261
|
}
|
1266
|
}
|
|
1262
|
}
|
1267
|
}
|
|
1263
|
-
|
|
|
|
1264
|
$projectModel->edit(['site_status'=>$this->param['site_status']],['id'=>$this->param['id']]);
|
1268
|
$projectModel->edit(['site_status'=>$this->param['site_status']],['id'=>$this->param['id']]);
|
|
1265
|
}
|
1269
|
}
|
|
1266
|
-
|
|
|
|
1267
|
$this->response('success');
|
1270
|
$this->response('success');
|
|
1268
|
}
|
1271
|
}
|
|
1269
|
|
1272
|
|