OnlineCheckLogic.php 3.1 KB
<?php

namespace App\Http\Logic\Aside\Project;


use App\Helper\Common;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Project\DeployOptimize;
use App\Models\Project\OnlineCheck;
use App\Models\Project\Project;

class OnlineCheckLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->param = $this->requestAll;
        $this->model = new OnlineCheck();
    }

    /**
     * @remark :用户审核
     * @name   :onlineCheck
     * @author :lyh
     * @method :post
     * @time   :2023/9/22 11:01
     */
    public function onlineCheck(){
        $info = $this->model->read(['project_id'=>$this->param['id']]);
        if($info === false){
            $this->fail('项目未提交审核');
        }
        //获取项目优化人员
        $optimizeModel = new DeployOptimize();
        $optimizeInfo = $optimizeModel->read(['project_id'=>$this->param['id']]);
        //查看当前用户是否有权限审核
        if($this->param['type'] == 'optimist'){
            if(($info['optimist_mid'] != $this->manager['id']) && ($optimizeInfo['assist_mid'] != $this->manager['id'])){
                $this->fail('你无权限提交审核');
            }
        }else{
            //查看当前优化师是否审核
            if($info['optimist_status'] != 1){
                $this->fail('请先优化师审核');
            }
            if($info['qa_mid'] != $this->manager['id']){
                $this->fail('你无权限提交审核');
            }
            if(isset($this->param['project_type']) && !empty($this->param['project_type'])){
                $projectModel = new Project();
                $projectModel->edit(['type'=>$this->param['project_type']],['id'=>$this->param['id']]);
            }
        }
        $data = [
            $this->param['type'] . '_mid' => $this->manager['id'],
            $this->param['type'] . '_check_time' => date('Y-m-d H:i:s'),
            $this->param['type'] . '_status' => $this->param['status'],
            'remark' => $param['remark'] ??'',
        ];
        return $this->model->edit($data,['id'=>$info['id']]);
    }

    /**
     * @remark :提交审核
     * @name   :submitCheck
     * @author :lyh
     * @method :post
     * @time   :2023/7/31 11:06
     */
    public function saveOnlineCheck(){
        $info = $this->model->read(['project_id'=>$this->param['id']]);
        if($info !== false){
            $this->fail('已提交,请勿重复提交');
        }else{
            $projectModel = new Project();
            //提交审核修改状态为审核中
            $projectModel->edit(['status'=>$projectModel::STATUS_ONE],['id'=>$this->param['id']]);
            //组装数据
            $data = [
                'project_id' => $this->param['id'],
                'created_manage_id' => $this->manager['id'],
                'optimist_mid' => $this->param['optimist_mid'],
                'qa_mid' => $this->param['qa_mid'],
                'created_at'=>date('Y-m-d H:i:s')
            ];
            $rs = $this->model->add($data);
            if($rs === false){
                $this->fail('error');
            }
        }
        return $this->success();
    }
}