作者 liyuhang

gx

@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Aside\User; @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Aside\User;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
  7 +use App\Http\Logic\Aside\User\ProjectGroupLogic;
  8 +use App\Http\Requests\Aside\User\ProjectGroupRequest;
7 use App\Models\ProjectGroup as ProjectGroupModel; 9 use App\Models\ProjectGroup as ProjectGroupModel;
8 10
9 class ProjectGroupController extends BaseController 11 class ProjectGroupController extends BaseController
@@ -15,4 +17,64 @@ class ProjectGroupController extends BaseController @@ -15,4 +17,64 @@ class ProjectGroupController extends BaseController
15 $lists = $projectGroupModel->lists($this->map,$this->page,$this->row,$this->order); 17 $lists = $projectGroupModel->lists($this->map,$this->page,$this->row,$this->order);
16 $this->response('success',Code::SUCCESS,$lists); 18 $this->response('success',Code::SUCCESS,$lists);
17 } 19 }
  20 +
  21 + /**
  22 + * @name :添加用户组
  23 + * @return void
  24 + * @author :liyuhang
  25 + * @method
  26 + */
  27 + public function add(ProjectGroupRequest $request,ProjectGroupLogic $projectGroupLogic){
  28 + $request->validated();
  29 + $projectGroupLogic->group_add();
  30 + $this->response('success');
  31 + }
  32 +
  33 + /**
  34 + * @name :编辑用户组
  35 + * @return void
  36 + * @author :liyuhang
  37 + * @method
  38 + */
  39 + public function edit(ProjectGroupRequest $request,ProjectGroupLogic $projectGroupLogic){
  40 + $request->validate([
  41 + 'id'=>'required'
  42 + ],[
  43 + 'id.required' => 'ID不能为空'
  44 + ]);
  45 + $projectGroupLogic->group_edit();
  46 + $this->response('success');
  47 + }
  48 +
  49 + /**
  50 + * @name :用户组详情
  51 + * @return void
  52 + * @author :liyuhang
  53 + * @method
  54 + */
  55 + public function info(ProjectGroupLogic $projectGroupLogic){
  56 + $this->request->validate([
  57 + 'id'=>'required'
  58 + ],[
  59 + 'id.required' => 'ID不能为空'
  60 + ]);
  61 + $projectGroupLogic->group_info();
  62 + $this->success('success');
  63 + }
  64 +
  65 + /**
  66 + * @name :删除用户组
  67 + * @return void
  68 + * @author :liyuhang
  69 + * @method
  70 + */
  71 + public function del(ProjectGroupLogic $projectGroupLogic){
  72 + $this->request->validate([
  73 + 'id'=>'required'
  74 + ],[
  75 + 'id.required' => 'ID不能为空'
  76 + ]);
  77 + $projectGroupLogic->group_del();
  78 + $this->success('success');
  79 + }
18 } 80 }
@@ -30,8 +30,8 @@ class ProjectUserController extends BaseController @@ -30,8 +30,8 @@ class ProjectUserController extends BaseController
30 * @author :liyuhang 30 * @author :liyuhang
31 * @method 31 * @method
32 */ 32 */
33 - public function info(Request $request,UserLogic $userLogic){  
34 - $request->validate([ 33 + public function info(UserLogic $userLogic){
  34 + $this->request->validate([
35 'id'=>'required' 35 'id'=>'required'
36 ],[ 36 ],[
37 'id.required' => 'ID不能为空' 37 'id.required' => 'ID不能为空'
@@ -73,7 +73,7 @@ class ProjectUserController extends BaseController @@ -73,7 +73,7 @@ class ProjectUserController extends BaseController
73 * @author :liyuhang 73 * @author :liyuhang
74 * @method 74 * @method
75 */ 75 */
76 - public function del(Request $request,UserLogic $userLogic){ 76 + public function del(UserLogic $userLogic){
77 $this->request->validate([ 77 $this->request->validate([
78 'id'=>['required','array'], 78 'id'=>['required','array'],
79 ],[ 79 ],[
@@ -21,7 +21,8 @@ class BlogController extends BaseController @@ -21,7 +21,8 @@ class BlogController extends BaseController
21 public function lists(BlogModel $blogModel,BlogCategoryLogic $blogCategoryLogic,BlogLabelLogic $blogLabelLogic){ 21 public function lists(BlogModel $blogModel,BlogCategoryLogic $blogCategoryLogic,BlogLabelLogic $blogLabelLogic){
22 //搜索条件 22 //搜索条件
23 $this->map['project_id'] = $this->user['project_id']; 23 $this->map['project_id'] = $this->user['project_id'];
24 - $lists = $blogModel->lists($this->map,$this->page,$this->row,$this->order); 24 + $lists = $blogModel->lists($this->map,$this->page,$this->row,$this->order,
  25 + ['id','category_id','operator_id','status','created_at','updated_at','name','sort']);
25 if(!empty($lists['list'])){ 26 if(!empty($lists['list'])){
26 foreach ($lists['list'] as $k => $v){ 27 foreach ($lists['list'] as $k => $v){
27 //获取分类名称 28 //获取分类名称
@@ -24,7 +24,8 @@ class NewsController extends BaseController @@ -24,7 +24,8 @@ class NewsController extends BaseController
24 */ 24 */
25 public function lists(NewsModel $news,NewsCategoryLogic $newsCategoryLogic){ 25 public function lists(NewsModel $news,NewsCategoryLogic $newsCategoryLogic){
26 $this->map['project_id'] = $this->user['project_id']; 26 $this->map['project_id'] = $this->user['project_id'];
27 - $lists = $news->lists($this->map,$this->page,$this->row,$this->order); 27 + $lists = $news->lists($this->map,$this->page,$this->row,$this->order,
  28 + ['id','category_id','operator_id','status','created_at','updated_at','name','sort']);
28 if(!empty($lists['list'])){ 29 if(!empty($lists['list'])){
29 foreach ($lists['list'] as $k => $v){ 30 foreach ($lists['list'] as $k => $v){
30 $v = $newsCategoryLogic->get_category_name($v); 31 $v = $newsCategoryLogic->get_category_name($v);
@@ -8,6 +8,7 @@ use Illuminate\Http\Exceptions\HttpResponseException; @@ -8,6 +8,7 @@ use Illuminate\Http\Exceptions\HttpResponseException;
8 use Illuminate\Http\JsonResponse; 8 use Illuminate\Http\JsonResponse;
9 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
10 use Illuminate\Support\Facades\DB; 10 use Illuminate\Support\Facades\DB;
  11 +use Illuminate\Support\Facades\Storage;
11 use Intervention\Image\Facades\Image; 12 use Intervention\Image\Facades\Image;
12 13
13 class ImageController 14 class ImageController
@@ -176,6 +177,12 @@ class ImageController @@ -176,6 +177,12 @@ class ImageController
176 $imageModel->insertAll($save_data); 177 $imageModel->insertAll($save_data);
177 return $data; 178 return $data;
178 } 179 }
  180 +
  181 + //下载
  182 + public function download($filename){
  183 + $path = Storage::path('./../uploads/images/'.$filename);
  184 + return response()->download($path,$filename);
  185 + }
179 /** 186 /**
180 * @name 统一返回参数 187 * @name 统一返回参数
181 * @return JsonResponse 188 * @return JsonResponse
@@ -5,6 +5,7 @@ namespace App\Http\Logic\Aside; @@ -5,6 +5,7 @@ namespace App\Http\Logic\Aside;
5 5
6 use App\Enums\Common\Common; 6 use App\Enums\Common\Common;
7 use App\Http\Logic\Logic; 7 use App\Http\Logic\Logic;
  8 +use Illuminate\Support\Facades\Session;
8 9
9 /** 10 /**
10 * @notes: 逻辑层基类 控制器调用 统一返回 统一抛出异常 11 * @notes: 逻辑层基类 控制器调用 统一返回 统一抛出异常
@@ -17,9 +18,12 @@ class BaseLogic extends Logic @@ -17,9 +18,12 @@ class BaseLogic extends Logic
17 18
18 protected $side = Common::A; 19 protected $side = Common::A;
19 20
  21 + protected $user = [];
  22 +
20 public function __construct() 23 public function __construct()
21 { 24 {
22 $this->requestAll = request()->all(); 25 $this->requestAll = request()->all();
  26 + $this->user = Session::get('manage');
23 } 27 }
24 28
25 } 29 }
  1 +<?php
  2 +
  3 +namespace App\Http\Logic\Aside\User;
  4 +
  5 +use App\Http\Logic\Aside\BaseLogic;
  6 +use App\Models\User\ProjectMenu;
  7 +
  8 +class ProjectGroupLogic extends BaseLogic
  9 +{
  10 + public function __construct()
  11 + {
  12 + parent::__construct();
  13 +
  14 + $this->model = new ProjectMenu();
  15 + $this->param = $this->requestAll;
  16 + }
  17 +
  18 + /**
  19 + * @name :详情
  20 + * @return void
  21 + * @author :liyuhang
  22 + * @method
  23 + */
  24 + public function group_info(){
  25 + $info = $this->info($this->param);
  26 + return $this->success($info);
  27 + }
  28 +
  29 + /**
  30 + * @name :添加
  31 + * @return void
  32 + * @author :liyuhang
  33 + * @method
  34 + */
  35 + public function group_add(){
  36 + //查看当前用户组是否存在
  37 + $this->model->read(['name'=>$this->param['name'],'create_id'=>1]);
  38 + $rs = $this->model->add($this->param);
  39 + if($rs === false){
  40 + $this->fail('error');
  41 + }
  42 + return $this->success();
  43 + }
  44 +
  45 + /**
  46 + * @name :编辑
  47 + * @return void
  48 + * @author :liyuhang
  49 + * @method
  50 + */
  51 + public function group_edit(){
  52 + //查看当前用户组是否存在
  53 + $this->model->read(['name'=>$this->param['name'],'create_id'=>1]);
  54 + return $this->success();
  55 + }
  56 +
  57 + /**
  58 + * @name :删除
  59 + * @return void
  60 + * @author :liyuhang
  61 + * @method
  62 + */
  63 + public function group_del(){
  64 + return $this->success();
  65 + }
  66 +}
@@ -22,11 +22,8 @@ class ProjectMenuLogic extends BaseLogic @@ -22,11 +22,8 @@ class ProjectMenuLogic extends BaseLogic
22 * @method 22 * @method
23 */ 23 */
24 public function menu_info(){ 24 public function menu_info(){
25 - $info = $this->model->read($this->param);  
26 - if($info === false){  
27 - $this->fail('当前数据不存在');  
28 - }  
29 - $this->success($info); 25 + $info = $this->info($this->param);
  26 + return $this->success($info);
30 } 27 }
31 28
32 /** 29 /**
@@ -45,7 +42,7 @@ class ProjectMenuLogic extends BaseLogic @@ -45,7 +42,7 @@ class ProjectMenuLogic extends BaseLogic
45 if($rs === false){ 42 if($rs === false){
46 $this->fail('添加失败'); 43 $this->fail('添加失败');
47 } 44 }
48 - $this->success(); 45 + return $this->success();
49 } 46 }
50 47
51 /** 48 /**
@@ -60,11 +57,8 @@ class ProjectMenuLogic extends BaseLogic @@ -60,11 +57,8 @@ class ProjectMenuLogic extends BaseLogic
60 if($info !== false){ 57 if($info !== false){
61 $this->fail('当前菜单名称已存在'); 58 $this->fail('当前菜单名称已存在');
62 } 59 }
63 - $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);  
64 - if($rs === false){  
65 - $this->fail('编辑失败');  
66 - }  
67 - $this->success(); 60 + $this->edit($this->param,['id'=>$this->param['id']]);
  61 + return $this->success();
68 } 62 }
69 63
70 /** 64 /**
@@ -74,11 +68,19 @@ class ProjectMenuLogic extends BaseLogic @@ -74,11 +68,19 @@ class ProjectMenuLogic extends BaseLogic
74 * @method 68 * @method
75 */ 69 */
76 public function menu_del(){ 70 public function menu_del(){
  71 + $ids = $this->param['id'];
  72 + //查看当前菜单是否有子菜单
  73 + foreach ($ids as $v){
  74 + $info = $this->model->read(['pid'=>$v],['id','name']);
  75 + if($info !== false){
  76 + $this->fail('当前分类存在子分类:'.$info['name'].',不允许删除');
  77 + }
  78 + }
77 $this->param['id'] = ['in',$this->param['id']]; 79 $this->param['id'] = ['in',$this->param['id']];
78 - $rs = $this->model->del($this->param); 80 + $rs = $this->del($this->param);
79 if($rs === false){ 81 if($rs === false){
80 $this->fail('编辑失败'); 82 $this->fail('编辑失败');
81 } 83 }
82 - $this->success(); 84 + return $this->success();
83 } 85 }
84 } 86 }
@@ -39,7 +39,7 @@ class ProjectRoleLogic extends BaseLogic @@ -39,7 +39,7 @@ class ProjectRoleLogic extends BaseLogic
39 } 39 }
40 } 40 }
41 } 41 }
42 - $this->success($menu); 42 + return $this->success($menu);
43 } 43 }
44 /** 44 /**
45 * @name :详情 45 * @name :详情
@@ -48,11 +48,8 @@ class ProjectRoleLogic extends BaseLogic @@ -48,11 +48,8 @@ class ProjectRoleLogic extends BaseLogic
48 * @method 48 * @method
49 */ 49 */
50 public function role_info(){ 50 public function role_info(){
51 - $info = $this->model->read($this->param);  
52 - if($info === false){  
53 - $this->fail('当前数据不存在');  
54 - }  
55 - $this->success($info); 51 + $info = $this->info($this->param);
  52 + return $this->success($info);
56 } 53 }
57 54
58 /** 55 /**
@@ -71,7 +68,7 @@ class ProjectRoleLogic extends BaseLogic @@ -71,7 +68,7 @@ class ProjectRoleLogic extends BaseLogic
71 if($rs === false){ 68 if($rs === false){
72 $this->fail('添加失败'); 69 $this->fail('添加失败');
73 } 70 }
74 - $this->success(); 71 + return $this->success();
75 } 72 }
76 73
77 /** 74 /**
@@ -86,11 +83,8 @@ class ProjectRoleLogic extends BaseLogic @@ -86,11 +83,8 @@ class ProjectRoleLogic extends BaseLogic
86 if($info !== false){ 83 if($info !== false){
87 $this->fail('当前菜单名称已存在'); 84 $this->fail('当前菜单名称已存在');
88 } 85 }
89 - $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);  
90 - if($rs === false){  
91 - $this->fail('编辑失败');  
92 - }  
93 - $this->success(); 86 + $this->edit($this->param,['id'=>$this->param['id']]);
  87 + return $this->success();
94 } 88 }
95 89
96 /** 90 /**
@@ -102,17 +96,15 @@ class ProjectRoleLogic extends BaseLogic @@ -102,17 +96,15 @@ class ProjectRoleLogic extends BaseLogic
102 public function role_del(){ 96 public function role_del(){
103 //查询当前角色下是否有用户 97 //查询当前角色下是否有用户
104 $userModel = new UserModel(); 98 $userModel = new UserModel();
105 - foreach ($this->param['id'] as $v){ 99 + $ids = $this->param['id'];
  100 + foreach ($ids as $v){
106 $user_info = $userModel->read(['role_id'=>$v]); 101 $user_info = $userModel->read(['role_id'=>$v]);
107 if($user_info !== false){ 102 if($user_info !== false){
108 $this->fail('id为{'.$v.'}'.'的角色拥有用户'.$user_info['name'].',不允许删除'); 103 $this->fail('id为{'.$v.'}'.'的角色拥有用户'.$user_info['name'].',不允许删除');
109 } 104 }
110 } 105 }
111 $this->param['id'] = ['in',$this->param['id']]; 106 $this->param['id'] = ['in',$this->param['id']];
112 - $rs = $this->model->del($this->param);  
113 - if($rs === false){  
114 - $this->fail('编辑失败');  
115 - }  
116 - $this->success(); 107 + $this->del($this->param,$ids);
  108 + return $this->success();
117 } 109 }
118 } 110 }
  1 +<?php
  2 +
  3 +namespace App\Http\Requests\Aside\User;
  4 +
  5 +use Illuminate\Foundation\Http\FormRequest;
  6 +
  7 +class ProjectGroupRequest extends FormRequest
  8 +{
  9 + /**
  10 + * Determine if the user is authorized to make this request.
  11 + *
  12 + * @return bool
  13 + */
  14 + public function authorize()
  15 + {
  16 + return true;
  17 + }
  18 +
  19 + /**
  20 + * Get the validation rules that apply to the request.
  21 + *
  22 + * @return array
  23 + */
  24 + public function rules()
  25 + {
  26 + return [
  27 + 'name'=>'required|string',
  28 + ];
  29 + }
  30 +
  31 + public function messages()
  32 + {
  33 + return [
  34 + 'name.required'=>'名称必须填写',
  35 + ];
  36 + }
  37 +}
@@ -9,6 +9,62 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w @@ -9,6 +9,62 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
9 Route::middleware(['aloginauth'])->group(function () { 9 Route::middleware(['aloginauth'])->group(function () {
10 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white'); 10 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white');
11 Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white'); 11 Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white');
  12 + //会员相关
  13 + Route::prefix('user')->group(function () {
  14 + //会员管理
  15 + Route::any('/', [Aside\User\ProjectUserController::class, 'lists'])->name('admin.user_lists');
  16 + Route::any('/info', [Aside\User\ProjectUserController::class, 'info'])->name('admin.user_info');
  17 + Route::any('/add', [Aside\User\ProjectUserController::class, 'add'])->name('admin.user_add');
  18 + Route::any('/edit', [Aside\User\ProjectUserController::class, 'edit'])->name('admin.user_edit');
  19 + Route::any('/del', [Aside\User\ProjectUserController::class, 'del'])->name('admin.user_del');
  20 +
  21 + //角色管理
  22 + Route::prefix('role')->group(function () {
  23 + Route::any('/', [Aside\User\ProjectRoleController::class, 'lists'])->name('admin.role_lists');
  24 + Route::any('/info', [Aside\User\ProjectRoleController::class, 'info'])->name('admin.role_info');
  25 + Route::any('/get_menu', [Aside\User\ProjectRoleController::class, 'get_menu'])->name('admin.get_menu');
  26 + Route::any('/add', [Aside\User\ProjectRoleController::class, 'add'])->name('admin.role_add');
  27 + Route::any('/edit', [Aside\User\ProjectRoleController::class, 'edit'])->name('admin.role_edit');
  28 + Route::any('/del', [Aside\User\ProjectRoleController::class, 'del'])->name('admin.role_del');
  29 + });
  30 +
  31 + //栏目管理
  32 + Route::prefix('menu')->group(function () {
  33 + Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.menu_lists');
  34 + Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.menu_info');
  35 + Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.menu_add');
  36 + Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.menu_edit');
  37 + Route::any('/del', [Aside\User\ProjectMenuController::class, 'del'])->name('admin.menu_del');
  38 + });
  39 +
  40 + //用户组
  41 + Route::prefix('group')->group(function () {
  42 + Route::any('/', [Aside\User\ProjectGroupController::class, 'lists'])->name('admin.group_lists');
  43 + Route::any('/info', [Aside\User\ProjectGroupController::class, 'info'])->name('admin.group_info');
  44 + Route::any('/add', [Aside\User\ProjectGroupController::class, 'add'])->name('admin.group_add');
  45 + Route::any('/edit', [Aside\User\ProjectGroupController::class, 'edit'])->name('admin.group_edit');
  46 + Route::any('/del', [Aside\User\ProjectGroupController::class, 'del'])->name('admin.group_del');
  47 + });
  48 +
  49 + });
  50 +
  51 + //ai指令
  52 + Route::prefix('ai')->group(function () {
  53 + Route::any('/', [Aside\Ai\AiCommandController::class, 'lists'])->name('admin.ai_lists');
  54 + Route::any('/info', [Aside\Ai\AiCommandController::class, 'info'])->name('admin.ai_info');
  55 + Route::any('/add', [Aside\Ai\AiCommandController::class, 'add'])->name('admin.ai_add');
  56 + Route::any('/edit', [Aside\Ai\AiCommandController::class, 'edit'])->name('admin.ai_edit');
  57 + Route::any('/del', [Aside\Ai\AiCommandController::class, 'del'])->name('admin.ai_del');
  58 + });
  59 +
  60 + //站内信
  61 + Route::prefix('mail')->group(function () {
  62 + Route::any('/', [Aside\Mail\MailController::class, 'lists'])->name('admin.mail_lists');
  63 + Route::any('/info', [Aside\Mail\MailController::class, 'info'])->name('admin.mail_info');
  64 + Route::any('/add', [Aside\Mail\MailController::class, 'add'])->name('admin.mail_add');
  65 + Route::any('/edit', [Aside\Mail\MailController::class, 'edit'])->name('admin.mail_edit');
  66 + Route::any('/del', [Aside\Mail\MailController::class, 'del'])->name('admin.mail_del');
  67 + });
12 68
13 //管理员 69 //管理员
14 Route::prefix('manage')->group(function () { 70 Route::prefix('manage')->group(function () {