ComController.php 2.7 KB
<?php

namespace App\Http\Controllers\Bside\BCom;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\User\UserLogic;
use App\Models\Project\Project;
use App\Models\User\ProjectMenu as ProjectMenuModel;
use App\Models\User\ProjectRole as ProjectRoleModel;
use Illuminate\Support\Facades\Cache;

/***
 * 当前为公共类
 */
class ComController extends BaseController
{
    /**
     * @name :获取当前用户权限菜单列表
     * @author :liyuhang
     * @method
     */
    public function get_menu(){
        //根据当前登录用户角色返回用户菜单列表
        $projectMenuModel = new ProjectMenuModel();
        if($this->user['role_id'] != 0){
            $projectRoleModel = new ProjectRoleModel();
            $info = $projectRoleModel->read(['id'=>$this->user['role_id']]);
            $info['role_menu'] = trim($info['role_menu'],',');
            $lists = $projectMenuModel->where(['status'=>0,'is_role'=>0])->whereIn('id',explode(',',$info['role_menu']))->get();
        }else{
            $lists = $projectMenuModel->where(['is_role'=>0])->get();
        }
        $lists = $lists->toArray();
        $menu = array();
        foreach ($lists as $k => $v){
            $v = (array)$v;
            if ($v['pid'] == 0) {
                $v['sub'] = _get_child($v['id'], $lists);
                $menu[]   = $v;
            }
        }
        $this->response('当前用户菜单列表',Code::SUCCESS,$menu);
    }

    /**
     * @name :获取当前项目详情
     * @author :liyuhang
     * @method
     */
    public function get_project(Project $projectModel){
        $info = $projectModel->read(['id'=>$this->user['project_id']]);
        if(empty($info)){
            $this->response('error',Code::USER_ERROR);
        }
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @name :登录用户编辑资料/修改密码
     * @author :liyuhang
     * @method
     */
    public function edit_info(){
        $this->request->validate([
            'password'=>['required'],
            'name'=>['required'],
        ],[
            'password.required'=>'密码必须填写',
            'name.required'=>'名称必须填写',
        ]);
        $userLogic = new UserLogic();
        $this->param['id'] = $this->uid;
        $userLogic->edits($this->param);
        $this->response('编辑成功');
    }

    /**
     * @remark :退出登录
     * @name   :logout
     * @author :lyh
     * @method :post
     * @time   :2023/8/19 9:14
     */
    public function logout(){
        $rs = Cache::pull($this->token);
        if($rs === false){
            $this->response('error',Code::USER_ERROR);
        }
        $this->response('success');
    }

}