作者 root

gx

@@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside; @@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Logic\Bside\ComLogic; 6 use App\Http\Logic\Bside\ComLogic;
7 -use Illuminate\Http\Request; 7 +use App\Models\ProjectMenu as ProjectMenuModel;
  8 +use App\Models\ProjectRole as ProjectRoleModel;
  9 +use Illuminate\Support\Facades\DB;
8 use Illuminate\Support\Facades\Validator; 10 use Illuminate\Support\Facades\Validator;
9 11
10 /*** 12 /***
@@ -21,7 +23,7 @@ class ComController extends BaseController @@ -21,7 +23,7 @@ class ComController extends BaseController
21 public function login(){ 23 public function login(){
22 $rules = [ 24 $rules = [
23 'mobile'=>'required|string|max:12', 25 'mobile'=>'required|string|max:12',
24 - 'password'=>'required|string|min:5', 26 + 'password'=>'required|string',
25 ]; 27 ];
26 //验证的提示信息 28 //验证的提示信息
27 $message = [ 29 $message = [
@@ -30,16 +32,13 @@ class ComController extends BaseController @@ -30,16 +32,13 @@ class ComController extends BaseController
30 'password.required'=>'内容必须填写', 32 'password.required'=>'内容必须填写',
31 'password.string'=>'内容中含有非法文字', 33 'password.string'=>'内容中含有非法文字',
32 'mobile.max' => 'account不大于12字符.', 34 'mobile.max' => 'account不大于12字符.',
33 - 'password.min' => 'password不小于5字符.',  
34 ]; 35 ];
35 $validate = Validator::make($this->param, $rules, $message); 36 $validate = Validator::make($this->param, $rules, $message);
36 if($validate->errors()->first()){ 37 if($validate->errors()->first()){
37 return $this->response($validate->errors()->first(),Code::USER_ERROR,$this->param); 38 return $this->response($validate->errors()->first(),Code::USER_ERROR,$this->param);
38 } 39 }
39 - //TODO::参数验  
40 $comLogic = new ComLogic(); 40 $comLogic = new ComLogic();
41 $res = $comLogic->login($this->param); 41 $res = $comLogic->login($this->param);
42 - $this->token = $res['token'];  
43 if($res === false){ 42 if($res === false){
44 $this->response('请求失败',Code::USER_ERROR,[]); 43 $this->response('请求失败',Code::USER_ERROR,[]);
45 } 44 }
@@ -53,7 +52,49 @@ class ComController extends BaseController @@ -53,7 +52,49 @@ class ComController extends BaseController
53 * @method 52 * @method
54 */ 53 */
55 public function get_menu(){ 54 public function get_menu(){
56 - $menu_lists = [];  
57 - $this->response('当前用户菜单列表',Code::SUCCESS,$menu_lists); 55 + //根据当前登录用户角色返回用户菜单列表
  56 + $projectRoleModel = new ProjectRoleModel();
  57 + $info = $projectRoleModel->read(['id'=>$this->user['role_id']]);
  58 + $projectMenuModel = new ProjectMenuModel();
  59 + $info['role_menu'] = trim($info['role_menu'],',');
  60 + $lists = DB::table($projectMenuModel->getTable())->where(['status'=>0])->whereIn('id',explode(',',$info['role_menu']))->get();
  61 + $lists = $lists->toArray();
  62 + $menu = array();
  63 + foreach ($lists as $k => $v){
  64 + $v = (array)$v;
  65 + if ($v['pid'] == 0) {
  66 + $v['sub'] = $this->_get_child($v['id'], $lists);
  67 + $menu[] = $v;
  68 + }
  69 + }
  70 + $this->response('当前用户菜单列表',Code::SUCCESS,$menu);
  71 + }
  72 +
  73 + /**
  74 + * 菜单权限->得到子级数组
  75 + * @param int
  76 + * @return array
  77 + */
  78 + public function _get_child($my_id, $arr)
  79 + {
  80 + $new_arr = array();
  81 + foreach ($arr as $k => $v) {
  82 + $v = (array)$v;
  83 + if ($v['pid'] == $my_id) {
  84 + $new_arr[$k] = $v;
  85 + $new_arr[$k]['son'] = $this->_get_child($v['id'],$arr);
  86 + }
  87 +
  88 + }
  89 + return $new_arr ? $new_arr : false;
  90 + }
  91 + /**
  92 + * @name :获取当前项目详情
  93 + * @return void
  94 + * @author :liyuhang
  95 + * @method
  96 + */
  97 + public function get_project(){
  98 +
58 } 99 }
59 } 100 }
@@ -16,13 +16,19 @@ class ComLogic extends BaseLogic @@ -16,13 +16,19 @@ class ComLogic extends BaseLogic
16 public function login($param){ 16 public function login($param){
17 #TODO 查询mobile, 验证密码 true->return; false-> 查询sms发送记录 验证code 17 #TODO 查询mobile, 验证密码 true->return; false-> 查询sms发送记录 验证code
18 $userModel = new UserModel(); 18 $userModel = new UserModel();
  19 + if($param['login_method'] == 1){
19 //密码加密 20 //密码加密
20 $param['password'] = base64_encode(md5($param['password'])); 21 $param['password'] = base64_encode(md5($param['password']));
21 -  
22 - $info = $userModel->read($param, ['id','mobile','name','token']); 22 + $info = $userModel->read(['mobile'=>$param['mobile'],'password'=>$param['password']], ['id','mobile','role_id','project_id','name']);
  23 + }else{
  24 + //TODO::验证验证码是否正确
  25 + $info = $userModel->read(['mobile'=>$param['mobile']],['id','mobile','role_id','project_id','name']);
  26 + }
23 if(empty($info)){ 27 if(empty($info)){
24 return false; 28 return false;
25 } 29 }
  30 + //验证码登录
  31 +
26 if(isset($info['token']) && !empty($info['token'])){ 32 if(isset($info['token']) && !empty($info['token'])){
27 //清除上一次用户缓存 33 //清除上一次用户缓存
28 Cache::pull($info['token']); 34 Cache::pull($info['token']);
@@ -32,13 +38,8 @@ class ComLogic extends BaseLogic @@ -32,13 +38,8 @@ class ComLogic extends BaseLogic
32 //存储缓存 38 //存储缓存
33 Cache::add($token,$info); 39 Cache::add($token,$info);
34 //更新数据库 40 //更新数据库
35 - $data = [  
36 - 'token'=>$token,  
37 - //TODO::返回信息  
38 - 'id'=>$info['id'],  
39 - 'mobile'=>$info['mobile'],  
40 - 'name'=>$info['name'],  
41 - ]; 41 +
  42 + $data = $info;
42 $rs = $userModel->edit(['token'=>$token],['id'=>$info['id']]); 43 $rs = $userModel->edit(['token'=>$token],['id'=>$info['id']]);
43 if($rs === false){ 44 if($rs === false){
44 return false; 45 return false;
@@ -5,7 +5,7 @@ namespace App\Models; @@ -5,7 +5,7 @@ namespace App\Models;
5 class ProjectMenu extends Base 5 class ProjectMenu extends Base
6 { 6 {
7 //设置关联表名 7 //设置关联表名
8 - protected $table = 'gl_project_Menu'; 8 + protected $table = 'gl_project_menu';
9 //自动维护create_at创建时间 updated_at修改时间 9 //自动维护create_at创建时间 updated_at修改时间
10 public $timestamps = true; 10 public $timestamps = true;
11 } 11 }
@@ -12,6 +12,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -12,6 +12,7 @@ Route::middleware(['bloginauth'])->group(function () {
12 //无需登录验证的路由组 12 //无需登录验证的路由组
13 Route::group([], function () { 13 Route::group([], function () {
14 Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); 14 Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login');
  15 + Route::any('/get_menu', [\App\Http\Controllers\Bside\ComController::class, 'get_menu'])->name('get_menu');
15 Route::any('/user/lists', [\App\Http\Controllers\Bside\UserController::class, 'lists'])->name('user_lists'); 16 Route::any('/user/lists', [\App\Http\Controllers\Bside\UserController::class, 'lists'])->name('user_lists');
16 Route::any('/project/page_lists', [\App\Http\Controllers\Bside\ProjectController::class, 'page_lists'])->name('page_lists'); 17 Route::any('/project/page_lists', [\App\Http\Controllers\Bside\ProjectController::class, 'page_lists'])->name('page_lists');
17 }); 18 });