ProcessRecordsLogic.php
5.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
namespace App\Http\Logic\Aside\Project;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Domain\DomainInfo;
use App\Models\Project\ProcessRecords;
use App\Models\Project\Project;
use App\Models\ProjectAssociation\ProjectAssociation;
class ProcessRecordsLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->param = $this->requestAll;
$this->model = new ProcessRecords();
}
public function getInfo($project_id)
{
$data = $this->model->read(['project_id'=>$project_id]);
$info = $data;
$project = ProjectLogic::instance()->getProjectInfo($project_id);
if(!$data){
$data = [
'project_id' => $project_id,
'record' => [],
'remark' => '',
'project_record'=>0,
'optimize_record'=>0,
'type'=>$project['type']
];
}
$data['type'] = $project['type'] ?? '';
$data['project_company'] = $project['company'] ?? '';
$plan = Project::planMap();
$seo_plan = Project::seoMap();
$data['project_plan'] = $plan[$project['deploy_build']['plan']] ?? 0;
$data['project_seo_plan'] = $seo_plan[$project['deploy_build']['seo_plan']] ?? 0;
$data['project_service_duration'] = $project['deploy_build']['service_duration'] ?? '';
$data['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');;
$data['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$data['login_mobile'] = $project['deploy_build']['login_mobile'] ?? '';
$data['data_source'] = [
[
'type' => '基础资料',
'item' => ['Logo', 'banner素材', '基本信息', '公司介绍', '新闻']
],
[
'type' => '产品资料',
'item' => ['都未准备', '不足10款', '描述较少', '重复度过高']
],
[
'type' => '关键词/域名',
'item' => ['未提供', '筛选中', '未盖章', '域名未确认']
],
[
'type' => '建站进度',
'item' => ['资料上传', '网站修改中', '网站搭建完成,客户确认中', '等待网站品控审核后上线']
]
];
// $data['record'] = array_filter($data['record'], function($item) {
// return $item['date'] > '2025-09-01';
// });
if($project['type'] == 2 || $project['deploy_build']['seo_plan'] > 0){
//优化项目 默认在seo优化中
if($data['optimize_record'] == 0) {
$data['optimize_record'] = 1;
}
//时间大于优化时间,默认
if(date('Y-m-d') > $project['deploy_optimize']['start_date']){
$data['optimize_record'] = 2;
}
//首次达标时间
if(!empty($project['deploy_optimize']['first_compliance_time'])){
$data['optimize_record'] = 3;
}
//无剩余时间
if($project['project_type'] == 1){
$remain_day = $project['seo_remain_day'];
if($project['seo_remain_day'] == 0){$data['optimize_record'] = 4;}
}else{
$remain_day = $project['remain_day'];
if($project['remain_day'] == 0){$data['optimize_record'] = 4;}
}
if(in_array(2,$project['level'])){
$data['date_project_record'] = ['暂停优化'];
}else{
$data['date_project_record'] = Project::projectProgress('optimize');
$data['date_project_record'][4] .= (': '.$remain_day.'天');
}
}else{
//查看是否绑定微信群
$projectAss = new ProjectAssociation();
$count = $projectAss->counts(['project_id'=>$project_id]);
if(($count > 0) && ($data['project_record'] == 0)){
$data['project_record'] = 1;
}
$data['date_project_record'] = Project::projectProgress('build');
}
return $this->success($data);
}
/**
* @remark :保存数据
* @name :recordSave
* @author :lyh
* @method :post
* @time :2023/8/30 9:25
*/
public function recordSave(){
$info = $this->model->read(['project_id'=>$this->param['project_id']]);
$this->param['operator_id'] = $this->manager['id'];
$this->param['date'] = $this->param['record'][0]['date'] ?? null;
$this->param['record'] = json_encode($this->param['record']);
if($info === false){
$res = $this->model->add($this->param);
}else{
$res = $this->model->edit($this->param,['id'=>$info['id']]);
}
if($res === false){
$this->fail('保存失败');
}
return $this->success();
}
}