|
|
|
1
|
+<?php
|
|
|
|
2
|
+/**
|
|
|
|
3
|
+ * @remark :
|
|
|
|
4
|
+ * @name :CountAllProject.php
|
|
|
|
5
|
+ * @author :lyh
|
|
|
|
6
|
+ * @method :post
|
|
|
|
7
|
+ * @time :2024/11/9 10:03
|
|
|
|
8
|
+ */
|
|
|
|
9
|
+
|
|
|
|
10
|
+namespace App\Console\Commands\Project;
|
|
|
|
11
|
+
|
|
|
|
12
|
+use App\Models\Channel\Channel;
|
|
|
|
13
|
+use App\Models\Domain\DomainInfo;
|
|
|
|
14
|
+use App\Models\Manage\ManageHr;
|
|
|
|
15
|
+use App\Models\Project\Project;
|
|
|
|
16
|
+use Illuminate\Console\Command;
|
|
|
|
17
|
+
|
|
|
|
18
|
+class CountAllProject extends Command
|
|
|
|
19
|
+{
|
|
|
|
20
|
+ /**
|
|
|
|
21
|
+ * The name and signature of the console command.
|
|
|
|
22
|
+ *
|
|
|
|
23
|
+ * @var string
|
|
|
|
24
|
+ */
|
|
|
|
25
|
+ protected $signature = 'count_all_project';
|
|
|
|
26
|
+
|
|
|
|
27
|
+ /**
|
|
|
|
28
|
+ * The console command description.
|
|
|
|
29
|
+ *
|
|
|
|
30
|
+ * @var string
|
|
|
|
31
|
+ */
|
|
|
|
32
|
+ protected $description = '统计所有项目设置';
|
|
|
|
33
|
+
|
|
|
|
34
|
+
|
|
|
|
35
|
+ public function handle(){
|
|
|
|
36
|
+ $projectModel = new Project();
|
|
|
|
37
|
+ $query = $projectModel->leftJoin('gl_project_payment', 'gl_project.id', '=', 'gl_project_payment.project_id')
|
|
|
|
38
|
+ ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
|
|
|
|
39
|
+ ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
|
|
|
|
40
|
+ ->where('gl_project.delete_status',Project::TYPE_ZERO);
|
|
|
|
41
|
+ $lists = $query->paginate(100000, $this->selectParam(), 'page', 1)->toArray();
|
|
|
|
42
|
+ $manageModel = new ManageHr();
|
|
|
|
43
|
+ foreach ($lists as $k => $v){
|
|
|
|
44
|
+
|
|
|
|
45
|
+ $data[] = [
|
|
|
|
46
|
+ 'project_id'=>$v['id'],
|
|
|
|
47
|
+ 'version'=>1,//代表6.0
|
|
|
|
48
|
+ 'is_upgrade'=>$v['is_upgrade'],
|
|
|
|
49
|
+ 'title'=>$v['title'],
|
|
|
|
50
|
+ 'company'=>$v['company'],
|
|
|
|
51
|
+ 'channel'=>Channel::getChannelText($v['channel']['user_id'] ?? 0),
|
|
|
|
52
|
+ 'join_date'=>$v['cooperate_date'],
|
|
|
|
53
|
+ 'online_date'=>$v['uptime'],
|
|
|
|
54
|
+ 'keywords_num'=>$v['key'],
|
|
|
|
55
|
+ 'service_num'=>$v['day'],
|
|
|
|
56
|
+ 'production_num'=>intval(abs(strtotime((empty($v['uptime']) ? date('Y-m-d H:i:s') : $v['uptime'])) - $v['created_at']) / 86400),
|
|
|
|
57
|
+ 'plan'=>Project::planMap()[$v['plan']],
|
|
|
|
58
|
+ 'status'=>$v['status'],
|
|
|
|
59
|
+ 'test_domain'=>$v['test_domain'],
|
|
|
|
60
|
+ 'product_domain'=>!empty($v['domain']) ? (new DomainInfo())->getDomain($v['domain']) : '',
|
|
|
|
61
|
+ 'project_manager'=>$manageModel->getName($v['manager_mid'] ?? ''),
|
|
|
|
62
|
+ 'project_group'=>$manageModel->getName($v['leader_mid'] ?? ''),
|
|
|
|
63
|
+ 'project_design'=>$manageModel->getName($v['designer_mid'] ?? ''),
|
|
|
|
64
|
+ 'project_assistant'=>$manageModel->getName($v['tech_mid'] ?? ''),
|
|
|
|
65
|
+ 'service_manager'=>$manageModel->getName($v['optimize_manager_mid'] ??''),
|
|
|
|
66
|
+ 'service_optimize'=>$manageModel->getName($v['optimize_optimist_mid'] ??''),
|
|
|
|
67
|
+ 'service_assistant'=>$manageModel->getName($v['optimize_assist_mid'] ??''),
|
|
|
|
68
|
+ 'qa'=>$manageModel->getName($v['quality_mid'] ??''),
|
|
|
|
69
|
+ 'created_at'=>date('Y-m-d H:i:s'),
|
|
|
|
70
|
+ 'updated_at'=>date('Y-m-d H:i:s'),
|
|
|
|
71
|
+ ];
|
|
|
|
72
|
+ }
|
|
|
|
73
|
+ }
|
|
|
|
74
|
+
|
|
|
|
75
|
+ /**
|
|
|
|
76
|
+ * 需要查询的字段
|
|
|
|
77
|
+ * @return array
|
|
|
|
78
|
+ */
|
|
|
|
79
|
+ public function selectParam(){
|
|
|
|
80
|
+ $select = [
|
|
|
|
81
|
+ 'gl_project.id AS id',
|
|
|
|
82
|
+ 'gl_project.title AS title',
|
|
|
|
83
|
+ 'gl_project.channel AS channel',
|
|
|
|
84
|
+ 'gl_project.company AS company',
|
|
|
|
85
|
+ 'gl_project.type AS type',
|
|
|
|
86
|
+ 'gl_project.extend_type AS extend_type',
|
|
|
|
87
|
+ 'gl_project.uptime AS uptime',
|
|
|
|
88
|
+ 'gl_project.is_upgrade AS is_upgrade',
|
|
|
|
89
|
+ 'gl_project.created_at AS created_at',
|
|
|
|
90
|
+ 'gl_project.cooperate_date AS cooperate_date',
|
|
|
|
91
|
+ 'gl_project.site_status AS site_status',
|
|
|
|
92
|
+ 'gl_project_deploy_build.keyword_num AS key',
|
|
|
|
93
|
+ 'gl_project_deploy_build.service_duration AS day',
|
|
|
|
94
|
+ 'gl_project_deploy_build.is_comment AS is_comment',
|
|
|
|
95
|
+ 'gl_project_deploy_build.leader_mid AS leader_mid',
|
|
|
|
96
|
+ 'gl_project_deploy_build.manager_mid AS manager_mid',
|
|
|
|
97
|
+ 'gl_project_deploy_build.designer_mid AS designer_mid',
|
|
|
|
98
|
+ 'gl_project_deploy_build.tech_mid AS tech_mid',
|
|
|
|
99
|
+ 'gl_project_deploy_build.test_domain AS test_domain',
|
|
|
|
100
|
+ 'gl_project_deploy_build.plan AS plan',
|
|
|
|
101
|
+ 'gl_project_deploy_optimize.dept_id AS optimize_dept_id',
|
|
|
|
102
|
+ 'gl_project_deploy_optimize.manager_mid AS optimize_manager_mid',
|
|
|
|
103
|
+ 'gl_project_deploy_optimize.optimist_mid AS optimize_optimist_mid',
|
|
|
|
104
|
+ 'gl_project_deploy_optimize.assist_mid AS optimize_assist_mid',
|
|
|
|
105
|
+ 'gl_project_deploy_optimize.tech_mid AS optimize_tech_mid',
|
|
|
|
106
|
+ 'gl_project_deploy_optimize.tech_leader AS tech_leader',
|
|
|
|
107
|
+ 'gl_project_deploy_optimize.domain AS domain',
|
|
|
|
108
|
+ 'gl_project_deploy_optimize.api_no AS api_no',
|
|
|
|
109
|
+ ];
|
|
|
|
110
|
+ return $select;
|
|
|
|
111
|
+ }
|
|
|
|
112
|
+} |