ProjectRoleController.php 3.4 KB
<?php

namespace App\Http\Controllers\Bside\User;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\User\RoleLogic;
use App\Http\Requests\Bside\User\ProjectRoleRequest;
use App\Models\User\ProjectRole as ProjectRoleModel;
use App\Models\User\User as UserModel;
use Illuminate\Http\Request;

class ProjectRoleController extends BaseController
{
    /**
     * @remark :获取角色列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/7/8 14:08
     */
    public function lists(){
        //TODO::根据当前登录用户返回
        $projectRoleModel = new ProjectRoleModel();
        $this->map['status'] = 0;
        $this->map['project_id'] = $this->user['project_id'];
        //获取当前登录用户自己的菜单栏
        $lists = $projectRoleModel->lists($this->map,$this->page,$this->row,$this->order);
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @name :根据角色获取会员列表
     * @author :liyuhang
     * @method
     */
    public function get_user_list(){
        $userModel = new UserModel();
        $list = $userModel->list(['role_id'=>$this->param['id'],'project_id'=>$this->user['project_id']],'id',['id','name','mobile']);
        $this->response('success',Code::SUCCESS,$list);
    }
    /**
     * @name :详情
     * @author :liyuhang
     * @method
     */
    public function info(RoleLogic $roleLogic){
        $this->request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $info = $roleLogic->role_info();
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @name :添加/编辑角色时获取菜单列表
     * @author :liyuhang
     * @method
     */
    public function get_role_menu(RoleLogic $roleLogic){
        $menu = $roleLogic->role_get_menu();
        $this->response('当前用户菜单列表',Code::SUCCESS,$menu);
    }
    /**
     * @name :添加角色
     * @author :liyuhang
     * @method
     */
    public function add(ProjectRoleRequest $request,RoleLogic $roleLogic){
        $request->validated();
        $roleLogic->role_add();
        $this->response('添加成功');
    }

    /**
     * @name :编辑角色
     * @author :liyuhang
     * @method
     */
    public function edit(ProjectRoleRequest $request,RoleLogic $roleLogic){
        $request->validate([
            'id'=>['required']
        ],[
            'id.required' => 'ID不能为空'
        ]);
        $roleLogic->role_edit();
        $this->response('编辑成功');
    }

    /**
     * @name :修改用户状态
     * @author :liyuhang
     * @method
     */
    public function status(RoleLogic $roleLogic){
        $this->request->validate([
            'id'=>['required'],
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $roleLogic->role_status();
        $this->response($this->param['status'] == 0 ? '启用成功' : '禁用成功');
    }

    /**
     * @name :删除角色
     * @author :liyuhang
     * @method
     */
    public function del(RoleLogic $roleLogic){
        $this->request->validate([
            'id'=>['required','array'],
        ],[
            'id.required' => 'ID不能为空',
            'id.array' => 'ID为数组',
        ]);
        $roleLogic->role_del();
        $this->response('success');
    }
}