作者 赵彬吉

update

1 -<?php  
2 -  
3 -  
4 -namespace App\Http\Controllers\Aside;  
5 -  
6 -  
7 -use App\Services\Facades\Upload;  
8 -use Illuminate\Http\Request;  
9 -use Illuminate\Support\Facades\Storage;  
10 -  
11 -class FileController extends BaseController  
12 -{  
13 - /**  
14 - * 上传  
15 - * @param Request $request  
16 - * @return \Illuminate\Http\JsonResponse  
17 - * @throws \Psr\Container\ContainerExceptionInterface  
18 - * @throws \Psr\Container\NotFoundExceptionInterface  
19 - * @author zbj  
20 - * @date 2023/4/20  
21 - */  
22 - public function upload(Request $request){  
23 - // 上传文件  
24 - $files = Upload::puts('files', $this->param['config'] ?? 'default');  
25 - foreach ($files as &$file){  
26 - $file = Upload::path2url($file);  
27 - }  
28 - return $this->success($files);  
29 - }  
30 -  
31 - /**  
32 - * 下载  
33 - * @param Request $request  
34 - * @return \Symfony\Component\HttpFoundation\StreamedResponse  
35 - * @author zbj  
36 - * @date 2023/4/20  
37 - */  
38 - public function download(Request $request){  
39 - $path = Upload::url2path($this->param['url'] ?? '');  
40 - return Storage::disk('upload')->download($path);  
41 - }  
42 -  
43 -  
44 - /**  
45 - * 文件列表  
46 - * @author:dc  
47 - * @time 2023/5/29 11:42  
48 - */  
49 - public function lists(){  
50 - $type = \request()->get('type');  
51 -  
52 - switch ($type){  
53 - case 'video':{  
54 - $ext = ['mp4','avi'];  
55 - break;  
56 - }  
57 - default:{  
58 - $ext = ['png','jpg','jpeg','gif'];  
59 - break;  
60 - }  
61 - }  
62 -  
63 - $files = Upload::lists($this->param['config'] ?? 'default',$ext);  
64 - return $this->success($files);  
65 - }  
66 -  
67 -  
68 -  
69 -}  
@@ -6,8 +6,11 @@ use App\Helper\Arr; @@ -6,8 +6,11 @@ use App\Helper\Arr;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Http\Logic\Aside\Manage\MenuLogic; 7 use App\Http\Logic\Aside\Manage\MenuLogic;
8 use App\Http\Requests\Aside\Manage\MenuRequest; 8 use App\Http\Requests\Aside\Manage\MenuRequest;
  9 +use App\Models\Manage\Menu;
9 use App\Rules\Ids; 10 use App\Rules\Ids;
10 use Illuminate\Http\Request; 11 use Illuminate\Http\Request;
  12 +use Illuminate\Support\Facades\Route;
  13 +use Illuminate\Support\Str;
11 14
12 /** 15 /**
13 * 后台菜单 16 * 后台菜单
@@ -27,6 +30,20 @@ class MenuController extends BaseController @@ -27,6 +30,20 @@ class MenuController extends BaseController
27 return $this->success(Arr::listToTree($list)); 30 return $this->success(Arr::listToTree($list));
28 } 31 }
29 32
  33 + public function routes(Request $request){
  34 + //已绑定菜单的路由
  35 + $menu_route = array_filter(Menu::pluck('route_name')->toArray());
  36 + //路由
  37 + $list = [];
  38 + $routes = Route::getRoutes()->getRoutesByName();
  39 + foreach ($routes as $name => $route) {
  40 + if(Str::startsWith($name, 'admin.') && !Str::endsWith($name, '.white') && !in_array($name, $menu_route)){
  41 + $list[] = $name;
  42 + }
  43 + }
  44 + return $this->success($list);
  45 + }
  46 +
30 public function info(Request $request, MenuLogic $logic){ 47 public function info(Request $request, MenuLogic $logic){
31 $request->validate([ 48 $request->validate([
32 'id'=>'required' 49 'id'=>'required'
@@ -27,8 +27,7 @@ class LoginLogic extends BaseLogic @@ -27,8 +27,7 @@ class LoginLogic extends BaseLogic
27 27
28 public function login() 28 public function login()
29 { 29 {
30 - $manage = $this->model->select('id', 'name', 'password', 'token')->where('mobile', $this->requestAll['mobile'])->first();  
31 - 30 + $manage = $this->model->select('id', 'name', 'password', 'token', 'status')->where('mobile', $this->requestAll['mobile'])->first();
32 if (!$manage){ 31 if (!$manage){
33 $this->fail('登录用户名不存在'); 32 $this->fail('登录用户名不存在');
34 } 33 }
@@ -54,7 +53,7 @@ class LoginLogic extends BaseLogic @@ -54,7 +53,7 @@ class LoginLogic extends BaseLogic
54 $this->fail('系统错误,请联系管理员'); 53 $this->fail('系统错误,请联系管理员');
55 } 54 }
56 LoginLog::addLog($manage->id); 55 LoginLog::addLog($manage->id);
57 - return $this->success($manage->toArray()); 56 + return $this->success($manage->makeVisible('token')->toArray());
58 } 57 }
59 58
60 public function logout(){ 59 public function logout(){
@@ -27,18 +27,6 @@ class MenuLogic extends BaseLogic @@ -27,18 +27,6 @@ class MenuLogic extends BaseLogic
27 public function getInfo($id) 27 public function getInfo($id)
28 { 28 {
29 $info = parent::getInfo($id); 29 $info = parent::getInfo($id);
30 -  
31 - //已绑定菜单的路由  
32 - $menu_route = array_filter(Menu::pluck('route_name')->toArray());  
33 - //路由  
34 - $info['route'] = [];  
35 - $routes = Route::getRoutes()->getRoutesByName();  
36 - foreach ($routes as $name => $route) {  
37 - if(Str::startsWith($name, 'admin.') && !Str::endsWith($name, '.white') && !in_array($name, $menu_route)){  
38 - $info['route'][] = $name;  
39 - }  
40 - }  
41 -  
42 return $this->success($info); 30 return $this->success($info);
43 } 31 }
44 32
@@ -35,7 +35,7 @@ class ManageRequest extends FormRequest @@ -35,7 +35,7 @@ class ManageRequest extends FormRequest
35 return [ 35 return [
36 'name'=>'required|max:20', 36 'name'=>'required|max:20',
37 'email'=>'email|max:64', 37 'email'=>'email|max:64',
38 - 'mobile' => ['required', new Mobile()], 38 + 'mobile' => ['required', new Mobile(), Rule::unique('gl_manage')->ignore(request()->get('id',0))],
39 'password' => 'required|min:6', 39 'password' => 'required|min:6',
40 'status' => ['required', Rule::in(array_keys(Manage::statusMap()))], 40 'status' => ['required', Rule::in(array_keys(Manage::statusMap()))],
41 ]; 41 ];
@@ -49,6 +49,7 @@ class ManageRequest extends FormRequest @@ -49,6 +49,7 @@ class ManageRequest extends FormRequest
49 'email.email' => '邮箱格式不正确', 49 'email.email' => '邮箱格式不正确',
50 'email.max' => '邮箱不能超过64个字', 50 'email.max' => '邮箱不能超过64个字',
51 'mobile.required' => '请输入手机号', 51 'mobile.required' => '请输入手机号',
  52 + 'mobile.unique' => '手机号已存在',
52 'password.required' => '请输入密码', 53 'password.required' => '请输入密码',
53 'password.min' => '密码长度不能小于6位', 54 'password.min' => '密码长度不能小于6位',
54 'status.required' => '请选择状态', 55 'status.required' => '请选择状态',
@@ -11,8 +11,8 @@ class Group extends Base @@ -11,8 +11,8 @@ class Group extends Base
11 { 11 {
12 protected $table = 'gl_manage_group'; 12 protected $table = 'gl_manage_group';
13 13
14 - const STATUS_NORMAL = 0;  
15 - const STATUS_ABNORMAL = 1; 14 + const STATUS_NORMAL = 1;
  15 + const STATUS_ABNORMAL = 0;
16 16
17 /** 17 /**
18 * @return string[] 18 * @return string[]
@@ -9,10 +9,10 @@ class Manage extends Base @@ -9,10 +9,10 @@ class Manage extends Base
9 //设置关联表名 9 //设置关联表名
10 protected $table = 'gl_manage'; 10 protected $table = 'gl_manage';
11 11
12 - protected $hidden = ['password']; 12 + protected $hidden = ['password', 'token'];
13 13
14 - const STATUS_ACTIVE = 0;  
15 - const STATUS_DISABLE = 1; 14 + const STATUS_ACTIVE = 1;
  15 + const STATUS_DISABLE = 0;
16 16
17 /** 17 /**
18 * 超级管理员ID, 当前ID拥有所有权限, 不能进行修改 18 * 超级管理员ID, 当前ID拥有所有权限, 不能进行修改
@@ -9,12 +9,11 @@ class Menu extends Base @@ -9,12 +9,11 @@ class Menu extends Base
9 { 9 {
10 protected $table = 'gl_manage_menu'; 10 protected $table = 'gl_manage_menu';
11 11
12 - const STATUS_NORMAL = 0;  
13 - const STATUS_ABNORMAL = 1; 12 + const STATUS_NORMAL = 1;
  13 + const STATUS_ABNORMAL = 0;
14 14
15 - const TYPE_SHOW = 'show';  
16 - const TYPE_SAVE = 'save';  
17 - const TYPE_DELETE = 'delete'; 15 + const TYPE_MENU = 'menu';
  16 + const TYPE_NODE = 'node';
18 17
19 /** 18 /**
20 * @return string[] 19 * @return string[]
@@ -33,9 +32,8 @@ class Menu extends Base @@ -33,9 +32,8 @@ class Menu extends Base
33 public static function typeMap(): array 32 public static function typeMap(): array
34 { 33 {
35 return [ 34 return [
36 - self::TYPE_SHOW => '查看',  
37 - self::TYPE_SAVE => '保存',  
38 - self::TYPE_DELETE => '删除', 35 + self::TYPE_MENU => '菜单',
  36 + self::TYPE_NODE => '权限节点',
39 ]; 37 ];
40 } 38 }
41 39
@@ -76,6 +76,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -76,6 +76,7 @@ Route::middleware(['aloginauth'])->group(function () {
76 Route::get('/info', [Aside\Manage\MenuController::class, 'info'])->name('admin.menu_info'); 76 Route::get('/info', [Aside\Manage\MenuController::class, 'info'])->name('admin.menu_info');
77 Route::post('/save', [Aside\Manage\MenuController::class, 'save'])->name('admin.menu_save'); 77 Route::post('/save', [Aside\Manage\MenuController::class, 'save'])->name('admin.menu_save');
78 Route::any('/delete', [Aside\Manage\MenuController::class, 'delete'])->name('admin.menu_delete'); 78 Route::any('/delete', [Aside\Manage\MenuController::class, 'delete'])->name('admin.menu_delete');
  79 + Route::any('/routes', [Aside\Manage\MenuController::class, 'routes'])->name('admin.menu_routes');
79 }); 80 });
80 81
81 //权限组 82 //权限组