作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

@@ -31,7 +31,7 @@ class countProject extends Command @@ -31,7 +31,7 @@ class countProject extends Command
31 protected $description = '项目数据统计生成文件'; 31 protected $description = '项目数据统计生成文件';
32 32
33 public function handle(){ 33 public function handle(){
34 - $start = '2024-01'; 34 + $start = '2023-10';
35 $end = '2024-09'; 35 $end = '2024-09';
36 $data = $this->exportDataProject($start,$end); 36 $data = $this->exportDataProject($start,$end);
37 $result = $this->exportData($data); 37 $result = $this->exportData($data);
@@ -61,7 +61,7 @@ class countProject extends Command @@ -61,7 +61,7 @@ class countProject extends Command
61 $sheet->setCellValue('N1', '上线最慢'); 61 $sheet->setCellValue('N1', '上线最慢');
62 $sheet->setCellValue('O1', '平均上线天数'); 62 $sheet->setCellValue('O1', '平均上线天数');
63 $rowCount = 2; 63 $rowCount = 2;
64 - $allData = $this->countAll(); 64 +// $allData = $this->countAll();
65 foreach ($data as $v) { 65 foreach ($data as $v) {
66 $sheet->setCellValue('A' . $rowCount, $v['month']); 66 $sheet->setCellValue('A' . $rowCount, $v['month']);
67 $sheet->setCellValue('B' . $rowCount, $v['start']); 67 $sheet->setCellValue('B' . $rowCount, $v['start']);
@@ -69,15 +69,15 @@ class countProject extends Command @@ -69,15 +69,15 @@ class countProject extends Command
69 $sheet->setCellValue('D' . $rowCount, $v['month_create_project_count']); 69 $sheet->setCellValue('D' . $rowCount, $v['month_create_project_count']);
70 $sheet->setCellValue('E' . $rowCount, $v['month_project_go_online_count']); 70 $sheet->setCellValue('E' . $rowCount, $v['month_project_go_online_count']);
71 $sheet->setCellValue('F' . $rowCount, $v['month_project_online_rate']); 71 $sheet->setCellValue('F' . $rowCount, $v['month_project_online_rate']);
72 - $sheet->setCellValue('G' . $rowCount, $allData['count']);  
73 - $sheet->setCellValue('H' . $rowCount, $allData['go_online_count']);  
74 - $sheet->setCellValue('I' . $rowCount, $allData['promotion_web_count']);  
75 - $sheet->setCellValue('J' . $rowCount, $allData['create_web_count']);  
76 - $sheet->setCellValue('K' . $rowCount, $allData['no_go_oline_count']);  
77 - $sheet->setCellValue('L' . $rowCount, $allData['delete_project_count']);  
78 - $sheet->setCellValue('M' . $rowCount, $allData['min_project_count']);  
79 - $sheet->setCellValue('N' . $rowCount, $allData['max_project_count']);  
80 - $sheet->setCellValue('O' . $rowCount, $allData['average']); 72 + $sheet->setCellValue('G' . $rowCount, $v['count']);
  73 + $sheet->setCellValue('H' . $rowCount, $v['go_online_count']);
  74 + $sheet->setCellValue('I' . $rowCount, $v['promotion_web_count']);
  75 + $sheet->setCellValue('J' . $rowCount, $v['create_web_count']);
  76 + $sheet->setCellValue('K' . $rowCount, $v['no_go_oline_count']);
  77 + $sheet->setCellValue('L' . $rowCount, $v['delete_project_count']);
  78 + $sheet->setCellValue('M' . $rowCount, $v['min_project_count']);
  79 + $sheet->setCellValue('N' . $rowCount, $v['max_project_count']);
  80 + $sheet->setCellValue('O' . $rowCount, $v['average']);
81 $rowCount++; 81 $rowCount++;
82 } 82 }
83 // 创建一个新的 Excel Writer 对象 83 // 创建一个新的 Excel Writer 对象
@@ -159,19 +159,30 @@ class countProject extends Command @@ -159,19 +159,30 @@ class countProject extends Command
159 $data[$v]['month_project_go_online_count'] = $projectModel->counts(['uptime'=>['between',[$start_time,$end_time]],'deleted_at'=>0]);//当月上线项目数量 159 $data[$v]['month_project_go_online_count'] = $projectModel->counts(['uptime'=>['between',[$start_time,$end_time]],'deleted_at'=>0]);//当月上线项目数量
160 $data[$v]['month_project_online_rate'] = 0; 160 $data[$v]['month_project_online_rate'] = 0;
161 if($data[$v]['month_create_project_count'] != 0){ 161 if($data[$v]['month_create_project_count'] != 0){
162 - $data[$v]['month_project_online_rate'] = $data[$v]['month_project_go_online_count'] / $data[$v]['month_create_project_count'];//比例 162 + $data[$v]['month_project_online_rate'] = round($data[$v]['month_project_go_online_count'] / $data[$v]['month_create_project_count'],2);//比例
163 } 163 }
164 -// $data[$v]['count'] = $projectModel->count(['deleted_at'=>0]);//所有项目总数  
165 -// $data[$v]['go_online_count'] = $projectModel->count(['uptime'=>['!=',null],'deleted_at'=>0]);//上线项目总数  
166 -// $data[$v]['promotion_web_count'] = $projectModel->count(['type'=>3,'deleted_at'=>0]);//推广项目总数  
167 -// $data[$v]['create_web_count'] = $projectModel->count(['type'=>2,'deleted_at'=>0]);//建站项目总数  
168 -// $data[$v]['no_go_oline_count'] = $projectModel->count(['uptime'=>null,'deleted_at'=>0]);//未上线项目数量  
169 -// $data[$v]['delete_project_count'] = $projectModel->count(['deleted_at'=>1]);//未上线项目数量  
170 -// $min_info = $projectModel->select('diff')->selectRaw('(uptime - created_at) as diff')->where('uptime','!=',null)->orderByRaw('diff ASC')->first();  
171 -// $data[$v]['min_project_count'] = $min_info['diff'];  
172 -// $max_info = $projectModel->select('diff')->selectRaw('(uptime - created_at) as diff')->where('uptime','!=',null)->orderByRaw('diff Desc')->first();  
173 -// $data[$v]['max_project_count'] = $max_info['diff'];  
174 -// $data[$v]['average'] = ceil(($max_info['diff'] + $min_info['diff']) / 2); 164 + $data[$v]['count'] = $projectModel->counts(['delete_status'=>0]);//所有项目总数
  165 + $data[$v]['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'delete_status'=>0]);//上线项目总数
  166 + $data[$v]['promotion_web_count'] = $projectModel->counts(['type'=>3,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//推广项目总数
  167 + $data[$v]['create_web_count'] = $projectModel->counts(['type'=>2,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//建站项目总数
  168 + $data[$v]['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//未上线项目数量
  169 + $data[$v]['delete_project_count'] = $projectModel->counts(['delete_status'=>1,'created_at'=>['between',[$start_time,$end_time]]]);//删除
  170 + $min_info = $projectModel->select('*')
  171 + ->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
  172 + ->whereNotNull('uptime') // 确保 uptime 字段不为空
  173 + ->where('created_at','<=',$end_time)
  174 + ->whereBetween('created_at', [$start_time,$end_time])
  175 + ->orderByRaw('diff ASC')
  176 + ->first();
  177 + $data[$v]['min_project_count'] = $min_info['diff'];
  178 + $max_info = $projectModel->select('*')
  179 + ->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
  180 + ->whereNotNull('uptime') // 确保 uptime 字段不为空
  181 + ->whereBetween('created_at', [$start_time,$end_time])
  182 + ->orderByRaw('diff DESC')
  183 + ->first();
  184 + $data[$v]['max_project_count'] = $max_info['diff'];
  185 + $data[$v]['average'] = ceil(($max_info['diff'] + $min_info['diff']) / 2);
175 } 186 }
176 return $data; 187 return $data;
177 } 188 }
@@ -185,12 +196,12 @@ class countProject extends Command @@ -185,12 +196,12 @@ class countProject extends Command
185 */ 196 */
186 public function countAll(){ 197 public function countAll(){
187 $projectModel = new Project(); 198 $projectModel = new Project();
188 - $data['count'] = $projectModel->count(['deleted_at'=>0]);//所有项目总数  
189 - $data['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'deleted_at'=>0]);//上线项目总数  
190 - $data['promotion_web_count'] = $projectModel->counts(['type'=>3,'deleted_at'=>0]);//推广项目总数  
191 - $data['create_web_count'] = $projectModel->counts(['type'=>2,'deleted_at'=>0]);//建站项目总数  
192 - $data['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'deleted_at'=>0]);//未上线项目数量  
193 - $data['delete_project_count'] = $projectModel->counts(['deleted_at'=>1]);//删除项目数量 199 + $data['count'] = $projectModel->counts(['deleted_at'=>0]);//所有项目总数
  200 + $data['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'delete_status'=>0]);//上线项目总数
  201 + $data['promotion_web_count'] = $projectModel->counts(['type'=>3,'delete_status'=>0]);//推广项目总数
  202 + $data['create_web_count'] = $projectModel->counts(['type'=>2,'delete_status'=>0]);//建站项目总数
  203 + $data['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'delete_status'=>0]);//未上线项目数量
  204 + $data['delete_project_count'] = $projectModel->counts(['delete_status'=>1]);//删除项目数量
194 $min_info = $projectModel->select('*') 205 $min_info = $projectModel->select('*')
195 ->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff') 206 ->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
196 ->whereNotNull('uptime') // 确保 uptime 字段不为空 207 ->whereNotNull('uptime') // 确保 uptime 字段不为空
@@ -608,9 +608,6 @@ class ProjectController extends BaseController @@ -608,9 +608,6 @@ class ProjectController extends BaseController
608 */ 608 */
609 public function getManagerList(){ 609 public function getManagerList(){
610 $hrManagerModel = new ManageHr(); 610 $hrManagerModel = new ManageHr();
611 - if(!isset($this->param['name']) || empty($this->param['name'])){  
612 - $this->map['status'] = $hrManagerModel::STATUS_ONE;  
613 - }  
614 if(isset($this->map['entry_position']) && !empty($this->map['entry_position'])){ 611 if(isset($this->map['entry_position']) && !empty($this->map['entry_position'])){
615 $this->map['entry_position'] = ['in',$this->map['entry_position']]; 612 $this->map['entry_position'] = ['in',$this->map['entry_position']];
616 } 613 }
@@ -173,16 +173,15 @@ class FileManageController extends BaseController @@ -173,16 +173,15 @@ class FileManageController extends BaseController
173 173
174 public function delete(Request $request){ 174 public function delete(Request $request){
175 $request->validate([ 175 $request->validate([
176 - 'id'=>'required', 176 + 'id'=>'required | array',
177 ],[ 177 ],[
178 'id.required' => 'ID不能为空', 178 'id.required' => 'ID不能为空',
179 ]); 179 ]);
180 - $fileManage = FileManage::find($this->param['id']);  
181 - if(!$fileManage){  
182 - $this->response('数据不存在或者已经删除'); 180 + if(!is_array($this->param['id'])){
  181 + $this->param['id'] = [$this->param['id']];
183 } 182 }
184 - $fileManage->delete();  
185 - 183 + $fileManage = new FileManage();
  184 + $fileManage->del(['id'=>['in',$this->param['id']]]);
186 $this->response('success'); 185 $this->response('success');
187 } 186 }
188 } 187 }