|
...
|
...
|
@@ -10,7 +10,6 @@ use App\Http\Logic\Aside\Project\OnlineCheckLogic; |
|
|
|
use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
|
|
|
|
use App\Http\Logic\Aside\Project\ProjectLogic;
|
|
|
|
use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
|
|
|
|
use App\Models\Ai\AiVideo;
|
|
|
|
use App\Models\ASide\APublicModel;
|
|
|
|
use App\Models\Channel\Channel;
|
|
|
|
use App\Models\Channel\User;
|
|
...
|
...
|
@@ -21,9 +20,11 @@ use App\Models\Com\UpdateLog; |
|
|
|
use App\Models\Devops\ServerConfig;
|
|
|
|
use App\Models\Devops\ServersIp;
|
|
|
|
use App\Models\Domain\DomainCreateTask;
|
|
|
|
use App\Models\Domain\DomainInfo;
|
|
|
|
use App\Models\Domain\DomainInfo as DomainInfoModel;
|
|
|
|
use App\Models\Geo\GeoArticle;
|
|
|
|
use App\Models\Geo\GeoConf;
|
|
|
|
use App\Models\Geo\GeoLink;
|
|
|
|
use App\Models\Geo\GeoQuestionResult;
|
|
|
|
use App\Models\HomeCount\Count;
|
|
|
|
use App\Models\Industry\ProjectIndustry;
|
|
|
|
use App\Models\Inquiry\InquirySet;
|
|
...
|
...
|
@@ -31,7 +32,6 @@ use App\Models\Manage\BelongingGroup; |
|
|
|
use App\Models\Manage\ManageHr;
|
|
|
|
use App\Models\Project\AiVideoTask;
|
|
|
|
use App\Models\Project\DeployBuild;
|
|
|
|
use App\Models\Project\DeployOptimize;
|
|
|
|
use App\Models\Project\Payment;
|
|
|
|
use App\Models\Project\ProcessRecords;
|
|
|
|
use App\Models\Project\Project;
|
|
...
|
...
|
@@ -43,7 +43,6 @@ use App\Models\Task\Task; |
|
|
|
use App\Models\WebSetting\WebLanguage;
|
|
|
|
use App\Models\WorkOrder\TicketProject;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
|
|
|
|
/**
|
|
...
|
...
|
@@ -448,33 +447,47 @@ class ProjectController extends BaseController |
|
|
|
if(!empty($item['extend_type'])){
|
|
|
|
$item['type'] = $item['extend_type'];
|
|
|
|
}
|
|
|
|
$manageModel = new ManageHr();
|
|
|
|
$item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
|
|
|
|
$item['build_leader'] = $manageModel->getName($item['leader_mid']);
|
|
|
|
$item['build_manager'] = $manageModel->getName($item['manager_mid']);
|
|
|
|
$item['build_designer'] = $manageModel->getName($item['designer_mid']);
|
|
|
|
$item['build_tech'] = $manageModel->getName($item['tech_mid']);
|
|
|
|
$item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
|
|
|
|
$item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
|
|
|
|
$item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
|
|
|
|
$item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
|
|
|
|
$item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
|
|
|
|
$domainModel = new DomainInfoModel();
|
|
|
|
$item['domain'] = !empty($item['domain']) ? $domainModel->getDomain($item['domain']) : '';
|
|
|
|
$item['uuid'] = TicketProject::where('table_id', $item['id'])->where('project_cate', 2)->value('uuid') ?? null;
|
|
|
|
$item['friend_id'] = ProjectAssociation::where('project_id', $item['id'])->where('status', ProjectAssociation::STATUS_NORMAL)->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)->value('friend_id') ?? null;
|
|
|
|
$planMap = Project::planMap();
|
|
|
|
$seoPlanMap = Project::seoMap();
|
|
|
|
$item['plan'] = $planMap[$item['plan']] ?? '';
|
|
|
|
$item['seo_plan'] = $seoPlanMap[$item['seo_plan']] ?? '';
|
|
|
|
$item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
|
|
|
|
$item['autologin_code'] = getAutoLoginCode($item['id']);
|
|
|
|
$domainModel = new DomainInfo();
|
|
|
|
$item['domain'] = !empty($item['domain']) ? $domainModel->getDomain($item['domain']) : '';
|
|
|
|
$item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
|
|
|
|
$item['product_num'] = $data['product'] ?? 0;
|
|
|
|
$item['keyword_num'] = $data['key'] ?? 0;
|
|
|
|
$item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0);
|
|
|
|
$item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN);
|
|
|
|
$item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]);
|
|
|
|
$item['collect_time'] = $item['is_upgrade'] ? UpdateLog::getProjectUpdate($item['id']) : '';
|
|
|
|
$item['uuid'] = TicketProject::where('table_id', $item['id'])->where('project_cate', 2)->value('uuid') ?? null;
|
|
|
|
$item['friend_id'] = ProjectAssociation::where('project_id', $item['id'])->where('status', ProjectAssociation::STATUS_NORMAL)->where('binding_app', ProjectAssociation::ENTERPRISE_WECHAT)->value('friend_id') ?? null;
|
|
|
|
$item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
|
|
|
|
$manageModel = new ManageHr();
|
|
|
|
//geo项目
|
|
|
|
if(($item['plan'] == 0) && ($item['seo_plan'] != 0)){
|
|
|
|
//geo项目负责人
|
|
|
|
$geoConfModel = new GeoConf();
|
|
|
|
$manage_id = $geoConfModel->getValue(['project_id'=>$item['id']],'manager_id');
|
|
|
|
$item['geo_manage_name'] = $manageModel->getName($manage_id);
|
|
|
|
$geoArticleModel = new GeoArticle();
|
|
|
|
$item['geo_article_num'] = $geoArticleModel->counts(['project_id'=>$item['id']]);//文章数量
|
|
|
|
$geoLinkModel = new GeoLink();
|
|
|
|
$item['geo_link_num'] = $geoLinkModel->counts(['project_id'=>$item['id']]);//权威新闻数量
|
|
|
|
$questionResModel = new GeoQuestionResult();
|
|
|
|
$item['geo_qualify_num'] = $questionResModel->counts(['project_id'=>$item['id'],'hit'=>['!=',0],'platform'=>['in',['openai', 'gemini','google_ai_overview']]]);//排名
|
|
|
|
}else{
|
|
|
|
$item['build_leader'] = $manageModel->getName($item['leader_mid']);
|
|
|
|
$item['build_manager'] = $manageModel->getName($item['manager_mid']);
|
|
|
|
$item['build_designer'] = $manageModel->getName($item['designer_mid']);
|
|
|
|
$item['build_tech'] = $manageModel->getName($item['tech_mid']);
|
|
|
|
$item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
|
|
|
|
$item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
|
|
|
|
$item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
|
|
|
|
$item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
|
|
|
|
$item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
|
|
|
|
}
|
|
|
|
return $item;
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -797,7 +810,6 @@ class ProjectController extends BaseController |
|
|
|
$order_by_sort = $request->input('order_by_sort', 'desc');
|
|
|
|
$start_time = $this->param['start_time'] ?? '';
|
|
|
|
$end_time = $this->param['end_time'] ?? '';
|
|
|
|
|
|
|
|
if(!$source_id && !$id){
|
|
|
|
$this->response('参数异常',Code::SYSTEM_ERROR);
|
|
|
|
}
|
|
...
|
...
|
@@ -891,7 +903,6 @@ class ProjectController extends BaseController |
|
|
|
$param['yesterday_ip_count'] = $yesterday_count['ip_num'] ?? 0;
|
|
|
|
$param['today_ip_count'] = $today_count['ip_num'] ?? 0;
|
|
|
|
$param['inquiry_num'] = $today_count['inquiry_num'] ?? 0;
|
|
|
|
|
|
|
|
$list[] = $param;
|
|
|
|
}
|
|
|
|
$data['list'] = $list;
|
|
...
|
...
|
@@ -1182,7 +1193,6 @@ class ProjectController extends BaseController |
|
|
|
'id.required' => '项目id不能为空',
|
|
|
|
'site_status.required' => '状态不能为空',
|
|
|
|
]);
|
|
|
|
|
|
|
|
//获取项目数据
|
|
|
|
$projectModel = new Project();
|
|
|
|
$projectInfo = $projectModel->read(['id'=>$this->param['id']],['project_type','serve_id','site_status','site_token']);
|
|
...
|
...
|
@@ -1192,14 +1202,12 @@ class ProjectController extends BaseController |
|
|
|
if($projectInfo['site_status'] == $this->param['site_status']){
|
|
|
|
$this->response('success');
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取服务器数据
|
|
|
|
$serverIpModel = new ServersIp();
|
|
|
|
$serversIpInfo = $serverIpModel->read(['id' => $projectInfo['serve_id']], ['servers_id']);
|
|
|
|
if(!$serversIpInfo){
|
|
|
|
$this->fail('获取项目所属服务器失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
if($serversIpInfo['servers_id'] == ServerConfig::SELF_SITE_ID){
|
|
|
|
//自建站项目
|
|
|
|
if($this->param['site_status'] == 1){
|
|
...
|
...
|
@@ -1209,7 +1217,6 @@ class ProjectController extends BaseController |
|
|
|
//开启站点
|
|
|
|
$site_token = str_replace('_expired','',$projectInfo['site_token']);
|
|
|
|
}
|
|
|
|
|
|
|
|
$projectModel->edit(['site_status'=>$this->param['site_status'],'site_token'=>$site_token],['id'=>$this->param['id']]);
|
|
|
|
}else{
|
|
|
|
//普通项目
|
|
...
|
...
|
@@ -1219,7 +1226,6 @@ class ProjectController extends BaseController |
|
|
|
if(!$domainInfo){
|
|
|
|
$this->fail('获取域名数据失败');
|
|
|
|
}
|
|
|
|
|
|
|
|
if($this->param['site_status'] == 1){
|
|
|
|
//关闭站点:通知C端
|
|
|
|
$re = curl_get('https://'.$domainInfo['domain'].'/api/stop_or_start_website');
|
|
...
|
...
|
@@ -1260,10 +1266,8 @@ class ProjectController extends BaseController |
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$projectModel->edit(['site_status'=>$this->param['site_status']],['id'=>$this->param['id']]);
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->response('success');
|
|
|
|
}
|
|
|
|
|
...
|
...
|
|