ComController.php 3.3 KB
<?php

namespace App\Http\Controllers\Bside;

use App\Enums\Common\Code;
use App\Http\Logic\Bside\ComLogic;
use App\Models\Project as ProjectModel;
use App\Models\ProjectMenu as ProjectMenuModel;
use App\Models\ProjectRole as ProjectRoleModel;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;

/***
 * 当前为公共类  所有方法均不需要验证登录token
 */
class ComController extends BaseController
{
    /**
     * @name :管理员登录
     * @return void
     * @author :liyuhang
     * @method
     */
    public function login(){
        $rules = [
            'mobile'=>'required|string|max:12',
            'password'=>'required|string',
        ];
        //验证的提示信息
        $message = [
            'mobile.required'=>'标题必须填写',
            'mobile.string'=>'标题中含有非法文字',
            'password.required'=>'内容必须填写',
            'password.string'=>'内容中含有非法文字',
            'mobile.max'   =>  'account不大于12字符.',
        ];
        $validate = Validator::make($this->param, $rules, $message);
        if($validate->errors()->first()){
            return $this->response($validate->errors()->first(),Code::USER_ERROR,$this->param);
        }
        $comLogic = new ComLogic();
        $res = $comLogic->login($this->param);
        if($res === false){
            $this->response('请求失败',Code::USER_ERROR,[]);
        }
        $this->response('请求成功',Code::SUCCESS,$res);
    }

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

    /**
     * 菜单权限->得到子级数组
     * @param int
     * @return array
     */
    public function _get_child($my_id, $arr)
    {
        $new_arr = array();
        foreach ($arr as $k => $v) {
            $v = (array)$v;
            if ($v['pid'] == $my_id) {
                $v['sub'] = $this->_get_child($v['id'],$arr);
                $new_arr[] = $v;

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