ProjectUserController.php 3.0 KB
<?php

namespace App\Http\Controllers\Aside\User;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\User\UserLogic;
use App\Http\Requests\Aside\User\UserRequest;
use App\Models\Manage\Manage;
use App\Models\Project\Project;
use App\Models\User\User;
use App\Models\User\User as UserModel;

/**
 * @remark :b端用户管理
 * @name   :ProjectUserController
 * @author :lyh
 * @time   :2023/6/17 16:24
 */
class ProjectUserController extends BaseController
{
    //超级管理员
    const ROLE_ID = 0;
    /**
     * @remark :超级管理员用户列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/6/25 9:27
     */
    public function lists(){
        $userModel = new UserModel();
        $query = $userModel->leftJoin('gl_project', 'gl_project_user.project_id', '=', 'gl_project.id')->where('gl_project_role.role_id',$this::ROLE_ID);
        $query = $query->searchParam($query);
        $lists = $query->paginate($this->row, $this->selectParam(), 'page', $this->page);
        $this->response('列表',Code::SUCCESS,$lists);
    }

    /**
     * @remark :查询字段
     * @name   :selectParam
     * @author :lyh
     * @method :post
     * @time   :2023/8/4 11:44
     */
    public function selectParam(){
        $select = [
            'gl_project_user.id AS id',
            'gl_project.title AS title',
            'gl_project_user.project_id AS project_id',
            'gl_project_user.mobile AS mobile',
            'gl_project_user.email AS email',
            'gl_project_user.status AS status',
        ];
        return $select;
    }

    public function searchParam(&$query){
        //搜索条件处理
        if(isset($this->map['title'])){
            $query = $query->where('gl_project.title','like','%'.$this->map['title'].'%');
        }
        return $query;
    }

    /**
     * @remark :用户详情
     * @name   :info
     * @author :lyh
     * @method :post
     * @time   :2023/6/25 9:27
     */
    public function info(UserLogic $userLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $info = $userLogic->user_info();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :保存用户
     * @name   :edit
     * @author :lyh
     * @method :post
     * @time   :2023/6/25 9:28
     */
    public function save(UserRequest $request,UserLogic $userLogic){
        $request->validated();
        $userLogic->projectUserSave();
        $this->response('success');
    }

    /**
     * @param UserLogic $userLogic
     * @remark :编辑用户
     * @name   :del
     * @author :lyh
     * @method :post
     * @time   :2023/6/25 9:28
     */
    public function del(UserLogic $userLogic){
        $this->request->validate([
            'id'=>['required','array'],
        ],[
            'id.required' => 'ID不能为空',
            'id.array' => 'ID为数组',
        ]);
        $userLogic->user_del();
        $this->response('success');
    }
}