作者 赵彬吉

update

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