作者 刘锟

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

... ... @@ -31,7 +31,7 @@ class countProject extends Command
protected $description = '项目数据统计生成文件';
public function handle(){
$start = '2024-01';
$start = '2023-10';
$end = '2024-09';
$data = $this->exportDataProject($start,$end);
$result = $this->exportData($data);
... ... @@ -61,7 +61,7 @@ class countProject extends Command
$sheet->setCellValue('N1', '上线最慢');
$sheet->setCellValue('O1', '平均上线天数');
$rowCount = 2;
$allData = $this->countAll();
// $allData = $this->countAll();
foreach ($data as $v) {
$sheet->setCellValue('A' . $rowCount, $v['month']);
$sheet->setCellValue('B' . $rowCount, $v['start']);
... ... @@ -69,15 +69,15 @@ class countProject extends Command
$sheet->setCellValue('D' . $rowCount, $v['month_create_project_count']);
$sheet->setCellValue('E' . $rowCount, $v['month_project_go_online_count']);
$sheet->setCellValue('F' . $rowCount, $v['month_project_online_rate']);
$sheet->setCellValue('G' . $rowCount, $allData['count']);
$sheet->setCellValue('H' . $rowCount, $allData['go_online_count']);
$sheet->setCellValue('I' . $rowCount, $allData['promotion_web_count']);
$sheet->setCellValue('J' . $rowCount, $allData['create_web_count']);
$sheet->setCellValue('K' . $rowCount, $allData['no_go_oline_count']);
$sheet->setCellValue('L' . $rowCount, $allData['delete_project_count']);
$sheet->setCellValue('M' . $rowCount, $allData['min_project_count']);
$sheet->setCellValue('N' . $rowCount, $allData['max_project_count']);
$sheet->setCellValue('O' . $rowCount, $allData['average']);
$sheet->setCellValue('G' . $rowCount, $v['count']);
$sheet->setCellValue('H' . $rowCount, $v['go_online_count']);
$sheet->setCellValue('I' . $rowCount, $v['promotion_web_count']);
$sheet->setCellValue('J' . $rowCount, $v['create_web_count']);
$sheet->setCellValue('K' . $rowCount, $v['no_go_oline_count']);
$sheet->setCellValue('L' . $rowCount, $v['delete_project_count']);
$sheet->setCellValue('M' . $rowCount, $v['min_project_count']);
$sheet->setCellValue('N' . $rowCount, $v['max_project_count']);
$sheet->setCellValue('O' . $rowCount, $v['average']);
$rowCount++;
}
// 创建一个新的 Excel Writer 对象
... ... @@ -159,19 +159,30 @@ class countProject extends Command
$data[$v]['month_project_go_online_count'] = $projectModel->counts(['uptime'=>['between',[$start_time,$end_time]],'deleted_at'=>0]);//当月上线项目数量
$data[$v]['month_project_online_rate'] = 0;
if($data[$v]['month_create_project_count'] != 0){
$data[$v]['month_project_online_rate'] = $data[$v]['month_project_go_online_count'] / $data[$v]['month_create_project_count'];//比例
$data[$v]['month_project_online_rate'] = round($data[$v]['month_project_go_online_count'] / $data[$v]['month_create_project_count'],2);//比例
}
// $data[$v]['count'] = $projectModel->count(['deleted_at'=>0]);//所有项目总数
// $data[$v]['go_online_count'] = $projectModel->count(['uptime'=>['!=',null],'deleted_at'=>0]);//上线项目总数
// $data[$v]['promotion_web_count'] = $projectModel->count(['type'=>3,'deleted_at'=>0]);//推广项目总数
// $data[$v]['create_web_count'] = $projectModel->count(['type'=>2,'deleted_at'=>0]);//建站项目总数
// $data[$v]['no_go_oline_count'] = $projectModel->count(['uptime'=>null,'deleted_at'=>0]);//未上线项目数量
// $data[$v]['delete_project_count'] = $projectModel->count(['deleted_at'=>1]);//未上线项目数量
// $min_info = $projectModel->select('diff')->selectRaw('(uptime - created_at) as diff')->where('uptime','!=',null)->orderByRaw('diff ASC')->first();
// $data[$v]['min_project_count'] = $min_info['diff'];
// $max_info = $projectModel->select('diff')->selectRaw('(uptime - created_at) as diff')->where('uptime','!=',null)->orderByRaw('diff Desc')->first();
// $data[$v]['max_project_count'] = $max_info['diff'];
// $data[$v]['average'] = ceil(($max_info['diff'] + $min_info['diff']) / 2);
$data[$v]['count'] = $projectModel->counts(['delete_status'=>0]);//所有项目总数
$data[$v]['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'delete_status'=>0]);//上线项目总数
$data[$v]['promotion_web_count'] = $projectModel->counts(['type'=>3,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//推广项目总数
$data[$v]['create_web_count'] = $projectModel->counts(['type'=>2,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//建站项目总数
$data[$v]['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'delete_status'=>0,'created_at'=>['between',[$start_time,$end_time]]]);//未上线项目数量
$data[$v]['delete_project_count'] = $projectModel->counts(['delete_status'=>1,'created_at'=>['between',[$start_time,$end_time]]]);//删除
$min_info = $projectModel->select('*')
->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
->whereNotNull('uptime') // 确保 uptime 字段不为空
->where('created_at','<=',$end_time)
->whereBetween('created_at', [$start_time,$end_time])
->orderByRaw('diff ASC')
->first();
$data[$v]['min_project_count'] = $min_info['diff'];
$max_info = $projectModel->select('*')
->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
->whereNotNull('uptime') // 确保 uptime 字段不为空
->whereBetween('created_at', [$start_time,$end_time])
->orderByRaw('diff DESC')
->first();
$data[$v]['max_project_count'] = $max_info['diff'];
$data[$v]['average'] = ceil(($max_info['diff'] + $min_info['diff']) / 2);
}
return $data;
}
... ... @@ -185,12 +196,12 @@ class countProject extends Command
*/
public function countAll(){
$projectModel = new Project();
$data['count'] = $projectModel->count(['deleted_at'=>0]);//所有项目总数
$data['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'deleted_at'=>0]);//上线项目总数
$data['promotion_web_count'] = $projectModel->counts(['type'=>3,'deleted_at'=>0]);//推广项目总数
$data['create_web_count'] = $projectModel->counts(['type'=>2,'deleted_at'=>0]);//建站项目总数
$data['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'deleted_at'=>0]);//未上线项目数量
$data['delete_project_count'] = $projectModel->counts(['deleted_at'=>1]);//删除项目数量
$data['count'] = $projectModel->counts(['deleted_at'=>0]);//所有项目总数
$data['go_online_count'] = $projectModel->counts(['uptime'=>['!=',null],'delete_status'=>0]);//上线项目总数
$data['promotion_web_count'] = $projectModel->counts(['type'=>3,'delete_status'=>0]);//推广项目总数
$data['create_web_count'] = $projectModel->counts(['type'=>2,'delete_status'=>0]);//建站项目总数
$data['no_go_oline_count'] = $projectModel->counts(['uptime'=>null,'delete_status'=>0]);//未上线项目数量
$data['delete_project_count'] = $projectModel->counts(['delete_status'=>1]);//删除项目数量
$min_info = $projectModel->select('*')
->selectRaw('DATEDIFF(STR_TO_DATE(uptime, "%Y-%m-%d"), STR_TO_DATE(created_at, "%Y-%m-%d")) AS diff')
->whereNotNull('uptime') // 确保 uptime 字段不为空
... ...
... ... @@ -608,9 +608,6 @@ class ProjectController extends BaseController
*/
public function getManagerList(){
$hrManagerModel = new ManageHr();
if(!isset($this->param['name']) || empty($this->param['name'])){
$this->map['status'] = $hrManagerModel::STATUS_ONE;
}
if(isset($this->map['entry_position']) && !empty($this->map['entry_position'])){
$this->map['entry_position'] = ['in',$this->map['entry_position']];
}
... ...
... ... @@ -173,16 +173,15 @@ class FileManageController extends BaseController
public function delete(Request $request){
$request->validate([
'id'=>'required',
'id'=>'required | array',
],[
'id.required' => 'ID不能为空',
]);
$fileManage = FileManage::find($this->param['id']);
if(!$fileManage){
$this->response('数据不存在或者已经删除');
if(!is_array($this->param['id'])){
$this->param['id'] = [$this->param['id']];
}
$fileManage->delete();
$fileManage = new FileManage();
$fileManage->del(['id'=>['in',$this->param['id']]]);
$this->response('success');
}
}
... ...