作者 赵彬吉

update

  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Aside;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Http\Logic\Aside\ManageLogic;
  7 +use App\Http\Requests\Aside\ManageRequest;
  8 +use App\Rules\Ids;
  9 +use Illuminate\Http\Request;
  10 +
  11 +/**
  12 + * 后台用户
  13 + * Class ManageController
  14 + * @package App\Http\Controllers\Aside
  15 + * @author zbj
  16 + * @date 2023/4/20
  17 + */
  18 +class ManageController extends BaseController
  19 +{
  20 +
  21 + public function list(Request $request, ManageLogic $logic)
  22 + {
  23 + $list = $logic->getList();
  24 + return view("admin.Manage", ["list" => $list]);
  25 + }
  26 +
  27 + public function info(Request $request, ManageLogic $logic){
  28 + $request->validate([
  29 + 'id'=>'required'
  30 + ],[
  31 + 'id.required' => 'ID不能为空'
  32 + ]);
  33 + $data = $logic->getInfo($this->param['id']);
  34 + return $this->success($data);
  35 + }
  36 +
  37 + public function save(ManageRequest $request, ManageLogic $logic){
  38 + $data = $logic->save($this->param);
  39 + return $this->success($data);
  40 + }
  41 +
  42 + public function delete(Request $request, ManageLogic $logic){
  43 + $request->validate([
  44 + 'ids'=>['required', new Ids()]
  45 + ],[
  46 + 'ids.required' => 'ID不能为空'
  47 + ]);
  48 +
  49 + $data = $logic->delete($this->param['ids']);
  50 + return $this->success($data);
  51 + }
  52 +
  53 +}
@@ -3,12 +3,12 @@ @@ -3,12 +3,12 @@
3 namespace App\Http\Logic\Aside; 3 namespace App\Http\Logic\Aside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 -use App\Models\ManageDept; 6 +use App\Models\Dept;
7 use Illuminate\Database\Eloquent\Model; 7 use Illuminate\Database\Eloquent\Model;
8 8
9 /** 9 /**
10 * Class DeptLogic 10 * Class DeptLogic
11 - * @package App\Http\Logic\Aside\Department 11 + * @package App\Http\Logic\Aside\dept
12 * @author zbj 12 * @author zbj
13 * @date 2023/4/20 13 * @date 2023/4/20
14 */ 14 */
@@ -18,7 +18,7 @@ class DeptLogic extends BaseLogic @@ -18,7 +18,7 @@ class DeptLogic extends BaseLogic
18 { 18 {
19 parent::__construct(); 19 parent::__construct();
20 20
21 - $this->model = new ManageDept(); 21 + $this->model = new Dept();
22 } 22 }
23 23
24 public function save($param){ 24 public function save($param){
@@ -42,7 +42,7 @@ class DeptLogic extends BaseLogic @@ -42,7 +42,7 @@ class DeptLogic extends BaseLogic
42 continue; 42 continue;
43 } 43 }
44 //是否有子部门 44 //是否有子部门
45 - if(ManageDept::where('pid', $id)->count()){ 45 + if(Dept::where('pid', $id)->count()){
46 $this->fail("部门{$info['title']}存在下级部门,不能删除"); 46 $this->fail("部门{$info['title']}存在下级部门,不能删除");
47 } 47 }
48 } 48 }
  1 +<?php
  2 +
  3 +namespace App\Http\Logic\Aside;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Models\Manage;
  7 +use Illuminate\Database\Eloquent\Model;
  8 +use Illuminate\Support\Facades\Hash;
  9 +
  10 +/**
  11 + * Class ManageLogic
  12 + * @package App\Http\Logic\Aside\Manage
  13 + * @author zbj
  14 + * @date 2023/4/20
  15 + */
  16 +class ManageLogic extends BaseLogic
  17 +{
  18 + public function __construct()
  19 + {
  20 + parent::__construct();
  21 +
  22 + $this->model = new Manage();
  23 + }
  24 +
  25 + public function save($param){
  26 + if(!empty($param['password'])){
  27 + $param['password'] = Hash::make($param['password']);
  28 + }
  29 + return parent::save($param);
  30 + }
  31 +}
@@ -7,7 +7,7 @@ use App\Models\ProjectDept; @@ -7,7 +7,7 @@ use App\Models\ProjectDept;
7 7
8 /** 8 /**
9 * Class DeptLogic 9 * Class DeptLogic
10 - * @package App\Http\Logic\Bside\Department 10 + * @package App\Http\Logic\Bside\dept
11 * @author zbj 11 * @author zbj
12 * @date 2023/4/18 12 * @date 2023/4/18
13 */ 13 */
  1 +<?php
  2 +
  3 +namespace App\Http\Requests\Aside;
  4 +
  5 +use App\Models\Manage;
  6 +use App\Rules\Mobile;
  7 +use Illuminate\Foundation\Http\FormRequest;
  8 +use Illuminate\Validation\Rule;
  9 +
  10 +/**
  11 + * Class ManageRequest
  12 + * @package App\Http\Requests\Aside\product
  13 + * @author zbj
  14 + * @date 2023/4/20
  15 + */
  16 +class ManageRequest extends FormRequest
  17 +{
  18 + /**
  19 + * Determine if the user is authorized to make this request.
  20 + *
  21 + * @return bool
  22 + */
  23 + public function authorize()
  24 + {
  25 + return true;
  26 + }
  27 +
  28 + /**
  29 + * Get the validation rules that apply to the request.
  30 + *
  31 + * @return array
  32 + */
  33 + public function rules()
  34 + {
  35 + return [
  36 + 'name'=>'required|max:20',
  37 + 'email'=>'email|max:64',
  38 + 'mobile' => ['required', new Mobile()],
  39 + 'password' => 'required|min:6',
  40 + 'status' => ['required', Rule::in(array_keys(Manage::statusMap()))],
  41 + ];
  42 + }
  43 +
  44 + public function messages()
  45 + {
  46 + return [
  47 + 'name.required' => '请输入姓名',
  48 + 'name.max' => '姓名不能超过20个字符',
  49 + 'email.email' => '邮箱格式不正确',
  50 + 'email.max' => '邮箱不能超过64个字',
  51 + 'mobile.required' => '请输入手机号',
  52 + 'password.required' => '请输入密码',
  53 + 'password.min' => '密码长度不能小于6位',
  54 + 'status.required' => '请选择状态',
  55 + 'status.in' => '状态值不正确',
  56 + ];
  57 + }
  58 +
  59 +}
@@ -4,7 +4,7 @@ namespace App\Models; @@ -4,7 +4,7 @@ namespace App\Models;
4 4
5 use Illuminate\Database\Eloquent\SoftDeletes; 5 use Illuminate\Database\Eloquent\SoftDeletes;
6 6
7 -class ManageDept extends Base 7 +class Dept extends Base
8 { 8 {
9 use SoftDeletes; 9 use SoftDeletes;
10 10
@@ -12,10 +12,6 @@ class Group extends Base @@ -12,10 +12,6 @@ class Group extends Base
12 12
13 const STATUS_NORMAL = 0; 13 const STATUS_NORMAL = 0;
14 const STATUS_ABNORMAL = 1; 14 const STATUS_ABNORMAL = 1;
15 - /**  
16 - * 超级管理员ID, 当前ID拥有所有权限, 不能进行修改  
17 - */  
18 - const ADMINISTRATOR_ID = 1;  
19 15
20 /** 16 /**
21 * @return string[] 17 * @return string[]
@@ -11,4 +11,16 @@ class Manage extends Base @@ -11,4 +11,16 @@ class Manage extends Base
11 11
12 const STATUS_ACTIVE = 0; 12 const STATUS_ACTIVE = 0;
13 const STATUS_DISABLE = 1; 13 const STATUS_DISABLE = 1;
  14 +
  15 + /**
  16 + * 超级管理员ID, 当前ID拥有所有权限, 不能进行修改
  17 + */
  18 + const ADMINISTRATOR_ID = 1;
  19 +
  20 + public function statusMap(){
  21 + return [
  22 + self::STATUS_ACTIVE => '正常',
  23 + self::STATUS_DISABLE => '禁用',
  24 + ];
  25 + }
14 } 26 }
@@ -10,6 +10,14 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w @@ -10,6 +10,14 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
10 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home'); 10 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home');
11 Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout'); 11 Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout');
12 12
  13 + //管理员
  14 + Route::prefix('manage')->group(function () {
  15 + Route::get('/', [Aside\ManageController::class, 'list'])->name('admin.manage');
  16 + Route::get('/info', [Aside\ManageController::class, 'info'])->name('admin.manage_info');
  17 + Route::post('/save', [Aside\ManageController::class, 'save'])->name('admin.manage_save');
  18 + Route::any('/delete', [Aside\ManageController::class, 'delete'])->name('admin.manage_delete');
  19 + });
  20 +
13 //菜单 21 //菜单
14 Route::prefix('menu')->group(function () { 22 Route::prefix('menu')->group(function () {
15 Route::get('/', [Aside\MenuController::class, 'list'])->name('admin.menu'); 23 Route::get('/', [Aside\MenuController::class, 'list'])->name('admin.menu');
@@ -17,6 +25,22 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w @@ -17,6 +25,22 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
17 Route::post('/save', [Aside\MenuController::class, 'save'])->name('admin.menu_save'); 25 Route::post('/save', [Aside\MenuController::class, 'save'])->name('admin.menu_save');
18 Route::any('/delete', [Aside\MenuController::class, 'delete'])->name('admin.menu_delete'); 26 Route::any('/delete', [Aside\MenuController::class, 'delete'])->name('admin.menu_delete');
19 }); 27 });
  28 +
  29 + //权限组
  30 + Route::prefix('group')->group(function () {
  31 + Route::get('/', [Aside\GroupController::class, 'list'])->name('admin.group');
  32 + Route::get('/info', [Aside\GroupController::class, 'info'])->name('admin.group_info');
  33 + Route::post('/save', [Aside\GroupController::class, 'save'])->name('admin.group_save');
  34 + Route::any('/delete', [Aside\GroupController::class, 'delete'])->name('admin.group_delete');
  35 + });
  36 +
  37 + //部门
  38 + Route::prefix('dept')->group(function () {
  39 + Route::get('/', [Aside\DeptController::class, 'list'])->name('admin.dept');
  40 + Route::get('/info', [Aside\DeptController::class, 'info'])->name('admin.dept_info');
  41 + Route::post('/save', [Aside\DeptController::class, 'save'])->name('admin.dept_save');
  42 + Route::any('/delete', [Aside\DeptController::class, 'delete'])->name('admin.dept_delete');
  43 + });
20 }); 44 });
21 45
22 //无需登录验证的路由组 46 //无需登录验证的路由组
@@ -127,11 +127,11 @@ Route::middleware(['bloginauth'])->group(function () { @@ -127,11 +127,11 @@ Route::middleware(['bloginauth'])->group(function () {
127 }); 127 });
128 128
129 //组织架构 129 //组织架构
130 - Route::prefix('department')->group(function () {  
131 - Route::get('/', [\App\Http\Controllers\Bside\DeptController::class, 'index'])->name('department');  
132 - Route::get('/info', [\App\Http\Controllers\Bside\DeptController::class, 'info'])->name('department_info');  
133 - Route::post('/save', [\App\Http\Controllers\Bside\DeptController::class, 'save'])->name('department_save');  
134 - Route::any('/delete', [\App\Http\Controllers\Bside\DeptController::class, 'delete'])->name('department_delete'); 130 + Route::prefix('dept')->group(function () {
  131 + Route::get('/', [\App\Http\Controllers\Bside\DeptController::class, 'index'])->name('dept');
  132 + Route::get('/info', [\App\Http\Controllers\Bside\DeptController::class, 'info'])->name('dept_info');
  133 + Route::post('/save', [\App\Http\Controllers\Bside\DeptController::class, 'save'])->name('dept_save');
  134 + Route::any('/delete', [\App\Http\Controllers\Bside\DeptController::class, 'delete'])->name('dept_delete');
135 }); 135 });
136 }); 136 });
137 137