作者 lyh

gx

@@ -4,22 +4,26 @@ namespace App\Http\Controllers\Aside\Project; @@ -4,22 +4,26 @@ namespace App\Http\Controllers\Aside\Project;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
  7 +use App\Http\Logic\Aside\Manage\ManageLogic;
7 use App\Http\Logic\Aside\Project\OnlineCheckLogic; 8 use App\Http\Logic\Aside\Project\OnlineCheckLogic;
8 use App\Http\Logic\Aside\Project\ProcessRecordsLogic; 9 use App\Http\Logic\Aside\Project\ProcessRecordsLogic;
9 use App\Http\Logic\Aside\Project\ProjectLogic; 10 use App\Http\Logic\Aside\Project\ProjectLogic;
10 use App\Http\Requests\Aside\Project\ProcessRecordsRequest; 11 use App\Http\Requests\Aside\Project\ProcessRecordsRequest;
11 use App\Http\Requests\Aside\Project\ProjectRequest; 12 use App\Http\Requests\Aside\Project\ProjectRequest;
12 use App\Models\ASide\APublicModel; 13 use App\Models\ASide\APublicModel;
  14 +use App\Models\Channel\Channel;
13 use App\Models\Com\City; 15 use App\Models\Com\City;
14 use App\Models\Devops\ServerConfig; 16 use App\Models\Devops\ServerConfig;
15 use App\Models\Domain\DomainInfo; 17 use App\Models\Domain\DomainInfo;
16 use App\Models\Inquiry\InquirySet; 18 use App\Models\Inquiry\InquirySet;
17 use App\Models\Manage\BelongingGroup; 19 use App\Models\Manage\BelongingGroup;
  20 +use App\Models\Manage\Manage;
18 use App\Models\Manage\ManageHr; 21 use App\Models\Manage\ManageHr;
19 use App\Models\Project\DeployBuild; 22 use App\Models\Project\DeployBuild;
20 use App\Models\Project\DeployOptimize; 23 use App\Models\Project\DeployOptimize;
21 use App\Models\Project\Payment; 24 use App\Models\Project\Payment;
22 use App\Models\Project\Project; 25 use App\Models\Project\Project;
  26 +use App\Models\Task\Task;
23 use Illuminate\Http\Request; 27 use Illuminate\Http\Request;
24 28
25 29
@@ -91,7 +95,61 @@ class ProjectController extends BaseController @@ -91,7 +95,61 @@ class ProjectController extends BaseController
91 } 95 }
92 //搜索参数处理 96 //搜索参数处理
93 $map = $this->searchParam($map,$this->map); 97 $map = $this->searchParam($map,$this->map);
94 - $project->formatQuery($map)->with()->paginate($this->row, ['*'], 'page', $this->page); 98 + $filed = ['id', 'title', 'mysql_id' ,'channel','cooperate_date' ,'type', 'created_at'];
  99 + $lists = $project->select($filed)->formatQuery($map)->with('payment')->with('deploy_build')
  100 + ->with('deploy_optimize')->with('online_check')->paginate($this->row, ['*'], 'page', $this->page);
  101 + if(!empty($lists)){
  102 + $lists = $lists->toArray();
  103 + foreach ($lists['list'] as $k=>$item){
  104 + $item = $this->handleParam($item);
  105 + $lists['list'][$k] = $item;
  106 + }
  107 + }
  108 + $this->response('success',Code::SUCCESS,$lists);
  109 + }
  110 +
  111 + /**
  112 + * @remark :返回参数过滤
  113 + * @name :returnParamItem
  114 + * @author :lyh
  115 + * @method :post
  116 + * @time :2023/8/30 11:07
  117 + */
  118 + public function handleParam(&$item){
  119 + $manageModel = new Manage();
  120 + if($item['mysql_id'] != 0){
  121 + $data = APublicModel::getNumByProjectId($item['id']);
  122 + }
  123 + $item = [
  124 + 'id' => $item['id'],
  125 + 'title' => $item['title'],
  126 + 'channel' => Channel::getChannelText($item['channel']['user_id'] ?? 0),
  127 + 'key' => $item['deploy_build']['keyword_num'] ?? 0,
  128 + 'day' => $item['deploy_build']['service_duration'] ?? 0,
  129 + 'amount' => $item['payment']['amount'] ?? 0,
  130 + 'build_leader' => $manageModel->getName($item['deploy_build']['leader_mid']), //组长
  131 + 'build_manager' => $manageModel->getName($item['deploy_build']['manager_mid']), //项目经理
  132 + 'build_designer' => $manageModel->getName($item['deploy_build']['designer_mid']), //设计师
  133 + 'build_tech' => $manageModel->getName($item['deploy_build']['tech_mid']), //技术助理
  134 + 'optimize_manager' => $manageModel->getName($item['deploy_optimize']['manager_mid']), //优化服务经理
  135 + 'optimize_optimist' => $manageModel->getName($item['deploy_optimize']['optimist_mid']), //优化师
  136 + 'optimize_assist' => $manageModel->getName($item['deploy_optimize']['assist_mid']), //优化助理
  137 + 'optimize_tech' => $manageModel->getName($item['deploy_optimize']['tech_mid']), //售后技术
  138 + 'type' => $item['type'],
  139 + 'test_domain' => $item['deploy_build']['test_domain'] ?? 0,
  140 + 'plan' =>Project::planMap()[$item['deploy_build']['plan']],
  141 + 'domain' => $item['deploy_optimize']['domain'] ?? 0,
  142 + 'created_at' => date('Y年m月d日', strtotime($item['created_at'])),
  143 + 'product_num' => $data['product'] ?? 0,
  144 + 'keyword_num' => $item['deploy_build']['keyword_num'] ?? 0,
  145 + 'article_num' => ($data['blog'] ?? 0) + ($data['news'] ?? 0),
  146 + 'task_finish_num' => Task::getNumByProjectId($item['id'], Task::STATUS_DOWN),
  147 + 'task_pending_num' => Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]),
  148 + 'optimist_status'=>$item['online_check']['optimist_status'] ?? 0,
  149 + 'qa_status'=>$item['online_check']['qa_status'] ?? 0,
  150 + 'service_day'=>$item['deploy_build']['service_duration'] - $this->compliance_day($item['id']),
  151 + ];
  152 + return $item;
95 } 153 }
96 154
97 /** 155 /**
@@ -136,7 +136,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -136,7 +136,7 @@ Route::middleware(['aloginauth'])->group(function () {
136 136
137 //项目管理 137 //项目管理
138 Route::prefix('project')->group(function () { 138 Route::prefix('project')->group(function () {
139 - Route::get('/', [Aside\Project\ProjectController::class, 'list'])->name('admin.project'); 139 + Route::get('/', [Aside\Project\ProjectController::class, 'lists'])->name('admin.project');
140 Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info'); 140 Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info');
141 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save'); 141 Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save');
142 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set'); 142 Route::any('/inquiry_set', [Aside\Project\ProjectController::class, 'inquiry_set'])->name('admin.project_inquiry_set');