OptimizeController.php
3.4 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
<?php
namespace App\Http\Controllers\Aside\Optimize;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Optimize\OptimizeLogic;
use App\Models\Manage\Manage;
use App\Models\Project\Project;
use Illuminate\Support\Facades\DB;
/**
* @remark :优化
* @name :OptimizeController
* @author :lyh
* @time :2023/6/20 14:33
*/
class OptimizeController extends BaseController
{
/**
* @remark :优化中台列表
* @name :middleGroundList
* @author :lyh
* @method :post
* @time :2023/8/18 10:49
*/
public function lists(Project $project){
$query = $project->leftJoin('gl_project_payment', 'gl_project.id', '=', 'gl_project_payment.project_id')
->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id');
$query = $this->searchParam($query);
$lists = $query->paginate($this->row, $this->selectParam(), 'page', $this->page)->toArray();
if(!empty($lists['list'])){
$manager = new Manage();
foreach ($lists['list'] as $k => $v){
$v['plan'] = $project::planMap()[$v['plan']];
$v['optimist_mid_name'] = $manager->read(['id'=>$v['optimist_mid']])['name'];
$v['tech_mid_name'] = $manager->read(['id'=>$v['tech_mid']])['name'];
$v['autologin_code'] = getAutoLoginCode($v['id']);
$lists['list'][$k] = $v;
}
}
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :查询字段处理
* @name :selectParam
* @author :lyh
* @method :post
* @time :2023/8/18 10:59
*/
public function selectParam(){
$select = [
'gl_project.id AS id',
'gl_project.title AS title',
'gl_project.company AS company',
'gl_project.type AS type',
'gl_project_deploy_build.service_duration AS service_duration',
'gl_project_deploy_build.plan AS plan',
'gl_project_payment.amount AS amount',
'gl_project_deploy_optimize.optimist_mid AS optimist_mid',
'gl_project_deploy_optimize.tech_mid AS tech_mid',
'gl_project_deploy_optimize.domain AS domain',
];
return $select;
}
/**
* @remark :搜索参数处理
* @name :searchParam
* @author :lyh
* @method :post
* @time :2023/8/18 10:58
*/
public function searchParam(&$query){
//搜索条件处理
if(isset($this->map['title'])){
$query = $query->where('gl_project.title','like','%'.$this->map['title'].'%');
}
$query = $query->whereIn('gl_project.type',[2,4]);//TODO::2,4代表优化项目
return $query;
}
/**
* @remark :授权域名
* @name :empowerDomain
* @author :lyh
* @method :post
* @time :2023/6/20 15:10
*/
public function empowerDomain(OptimizeLogic $optimizeLogic){
$this->request->validate([
'id'=>'required',
'gsc_id'=>'required'
],[
'id.required' => '审核域名ID不能为空',
'gsc_id.required' => 'GSC账号ID不能为空'
]);
$optimizeLogic->empowerDomain();
$this->response('success');
}
}