作者 root

gx

... ... @@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Http\Logic\Bside\ComLogic;
use Illuminate\Http\Request;
use App\Models\ProjectMenu as ProjectMenuModel;
use App\Models\ProjectRole as ProjectRoleModel;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
/***
... ... @@ -20,26 +22,23 @@ class ComController extends BaseController
*/
public function login(){
$rules = [
'mobile'=>'required|string|max:12',
'password'=>'required|string|min:5',
];
//验证的提示信息
'mobile'=>'required|string|max:12',
'password'=>'required|string',
];
//验证的提示信息
$message = [
'mobile.required'=>'标题必须填写',
'mobile.string'=>'标题中含有非法文字',
'password.required'=>'内容必须填写',
'password.string'=>'内容中含有非法文字',
'mobile.max' => 'account不大于12字符.',
'password.min' => 'password不小于5字符.',
];
$validate = Validator::make($this->param, $rules, $message);
if($validate->errors()->first()){
return $this->response($validate->errors()->first(),Code::USER_ERROR,$this->param);
}
//TODO::参数验
$comLogic = new ComLogic();
$res = $comLogic->login($this->param);
$this->token = $res['token'];
if($res === false){
$this->response('请求失败',Code::USER_ERROR,[]);
}
... ... @@ -53,7 +52,49 @@ class ComController extends BaseController
* @method
*/
public function get_menu(){
$menu_lists = [];
$this->response('当前用户菜单列表',Code::SUCCESS,$menu_lists);
//根据当前登录用户角色返回用户菜单列表
$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) {
$new_arr[$k] = $v;
$new_arr[$k]['son'] = $this->_get_child($v['id'],$arr);
}
}
return $new_arr ? $new_arr : false;
}
/**
* @name :获取当前项目详情
* @return void
* @author :liyuhang
* @method
*/
public function get_project(){
}
}
... ...
... ... @@ -16,13 +16,19 @@ class ComLogic extends BaseLogic
public function login($param){
#TODO 查询mobile, 验证密码 true->return; false-> 查询sms发送记录 验证code
$userModel = new UserModel();
//密码加密
$param['password'] = base64_encode(md5($param['password']));
$info = $userModel->read($param, ['id','mobile','name','token']);
if($param['login_method'] == 1){
//密码加密
$param['password'] = base64_encode(md5($param['password']));
$info = $userModel->read(['mobile'=>$param['mobile'],'password'=>$param['password']], ['id','mobile','role_id','project_id','name']);
}else{
//TODO::验证验证码是否正确
$info = $userModel->read(['mobile'=>$param['mobile']],['id','mobile','role_id','project_id','name']);
}
if(empty($info)){
return false;
}
//验证码登录
if(isset($info['token']) && !empty($info['token'])){
//清除上一次用户缓存
Cache::pull($info['token']);
... ... @@ -32,13 +38,8 @@ class ComLogic extends BaseLogic
//存储缓存
Cache::add($token,$info);
//更新数据库
$data = [
'token'=>$token,
//TODO::返回信息
'id'=>$info['id'],
'mobile'=>$info['mobile'],
'name'=>$info['name'],
];
$data = $info;
$rs = $userModel->edit(['token'=>$token],['id'=>$info['id']]);
if($rs === false){
return false;
... ...
... ... @@ -5,7 +5,7 @@ namespace App\Models;
class ProjectMenu extends Base
{
//设置关联表名
protected $table = 'gl_project_Menu';
protected $table = 'gl_project_menu';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
}
... ...
... ... @@ -12,6 +12,7 @@ Route::middleware(['bloginauth'])->group(function () {
//无需登录验证的路由组
Route::group([], function () {
Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login');
Route::any('/get_menu', [\App\Http\Controllers\Bside\ComController::class, 'get_menu'])->name('get_menu');
Route::any('/user/lists', [\App\Http\Controllers\Bside\UserController::class, 'lists'])->name('user_lists');
Route::any('/project/page_lists', [\App\Http\Controllers\Bside\ProjectController::class, 'page_lists'])->name('page_lists');
});
... ...