ProcessRecordsLogic.php
6.5 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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?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;
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]);
$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){
//优化项目 默认在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){
if($project['remain_day'] == 0){
$data['optimize_record'] = 4;
}
}else{
if($project['seo_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');
}
}else{
$data['date_project_record'] = Project::projectProgress('build');
}
return $this->success($data);
}
/**
* @remark :工单中获取建站进程
* @name :getRecordInfo
* @author :lyh
* @method :post
* @time :2025/9/9 15:30
*/
public function getRecordInfo($project_id)
{
$data = $this->model->read(['project_id'=>$project_id]);
$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['record'] = array_filter($data['record'], function($item) {
return $item['date'] > '2025-09-01';
});
if($project['type'] == 2){
//优化项目 默认在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){
if($project['remain_day'] == 0){
$data['optimize_record'] = 4;
}
}else{
if($project['seo_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');
}
}else{
$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();
}
}