作者 赵彬吉

UPDATE

  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Aside;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Http\Logic\Aside\DeptLogic;
  7 +use App\Http\Requests\Aside\DeptRequest;
  8 +use App\Rules\Ids;
  9 +use Illuminate\Http\Request;
  10 +
  11 +/**
  12 + * Class DeptController
  13 + * @package App\Http\Controllers\Aside
  14 + * @author zbj
  15 + * @date 2023/4/20
  16 + */
  17 +class DeptController extends BaseController
  18 +{
  19 +
  20 + public function index(DeptLogic $logic)
  21 + {
  22 + $map = [];
  23 + if(!empty($this->param['search'])){
  24 + $map[] = ['title', 'like', "%{$this->param['search']}%"];
  25 + }
  26 + $sort = ['id' => 'desc'];
  27 + $data = $logic->getList($map, $sort, ['id', 'pid', 'title'],0);
  28 + return $this->success(Arr::listToTree($data));
  29 + }
  30 +
  31 + public function info(Request $request, DeptLogic $logic){
  32 + $request->validate([
  33 + 'id'=>'required'
  34 + ],[
  35 + 'id.required' => 'ID不能为空'
  36 + ]);
  37 + $data = $logic->getInfo($this->param['id']);
  38 + return $this->success(Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark']));
  39 + }
  40 +
  41 + public function save(DeptRequest $request, DeptLogic $logic)
  42 + {
  43 + $data = $logic->save($this->param);
  44 + return $this->success($data);
  45 + }
  46 +
  47 + public function delete(Request $request, DeptLogic $logic)
  48 + {
  49 + $request->validate([
  50 + 'ids'=>['required', new Ids()]
  51 + ],[
  52 + 'ids.required' => 'ID不能为空'
  53 + ]);
  54 +
  55 + $data = $logic->delete($this->param['ids']);
  56 + return $this->success($data);
  57 + }
  58 +}
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Aside; @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Aside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 use App\Http\Logic\Aside\GroupLogic; 6 use App\Http\Logic\Aside\GroupLogic;
  7 +use App\Http\Requests\Aside\GroupRequest;
7 use App\Rules\Ids; 8 use App\Rules\Ids;
8 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
9 10
@@ -33,7 +34,7 @@ class GroupController extends BaseController @@ -33,7 +34,7 @@ class GroupController extends BaseController
33 return $this->success($data); 34 return $this->success($data);
34 } 35 }
35 36
36 - public function save(GroupLogic $request, GroupLogic $logic){ 37 + public function save(GroupRequest $request, GroupLogic $logic){
37 $data = $logic->save($this->param); 38 $data = $logic->save($this->param);
38 return $this->success($data); 39 return $this->success($data);
39 } 40 }
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Aside; @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Aside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 use App\Http\Logic\Aside\MenuLogic; 6 use App\Http\Logic\Aside\MenuLogic;
  7 +use App\Http\Requests\Aside\MenuRequest;
7 use App\Rules\Ids; 8 use App\Rules\Ids;
8 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
9 10
@@ -35,7 +36,7 @@ class MenuController extends BaseController @@ -35,7 +36,7 @@ class MenuController extends BaseController
35 return $this->success($data); 36 return $this->success($data);
36 } 37 }
37 38
38 - public function save(MenuLogic $request, MenuLogic $logic){ 39 + public function save(MenuRequest $request, MenuLogic $logic){
39 $data = $logic->save($this->param); 40 $data = $logic->save($this->param);
40 return $this->success($data); 41 return $this->success($data);
41 } 42 }
@@ -3,21 +3,21 @@ @@ -3,21 +3,21 @@
3 namespace App\Http\Controllers\Bside; 3 namespace App\Http\Controllers\Bside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 -use App\Http\Logic\Bside\DepartmentLogic;  
7 -use App\Http\Requests\Bside\DepartmentRequest; 6 +use App\Http\Logic\Bside\DeptLogic;
  7 +use App\Http\Requests\Bside\DeptRequest;
8 use App\Rules\Ids; 8 use App\Rules\Ids;
9 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
10 10
11 /** 11 /**
12 - * Class DepartmentController 12 + * Class DeptController
13 * @package App\Http\Controllers\Bside 13 * @package App\Http\Controllers\Bside
14 * @author zbj 14 * @author zbj
15 * @date 2023/4/18 15 * @date 2023/4/18
16 */ 16 */
17 -class DepartmentController extends BaseController 17 +class DeptController extends BaseController
18 { 18 {
19 19
20 - public function index(DepartmentLogic $logic) 20 + public function index(DeptLogic $logic)
21 { 21 {
22 $map = []; 22 $map = [];
23 if(!empty($this->param['search'])){ 23 if(!empty($this->param['search'])){
@@ -28,7 +28,7 @@ class DepartmentController extends BaseController @@ -28,7 +28,7 @@ class DepartmentController extends BaseController
28 return $this->success(Arr::listToTree($data)); 28 return $this->success(Arr::listToTree($data));
29 } 29 }
30 30
31 - public function info(Request $request, DepartmentLogic $logic){ 31 + public function info(Request $request, DeptLogic $logic){
32 $request->validate([ 32 $request->validate([
33 'id'=>'required' 33 'id'=>'required'
34 ],[ 34 ],[
@@ -38,13 +38,13 @@ class DepartmentController extends BaseController @@ -38,13 +38,13 @@ class DepartmentController extends BaseController
38 return $this->success(Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark'])); 38 return $this->success(Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark']));
39 } 39 }
40 40
41 - public function save(DepartmentRequest $request, DepartmentLogic $logic) 41 + public function save(DeptRequest $request, DeptLogic $logic)
42 { 42 {
43 $data = $logic->save($this->param); 43 $data = $logic->save($this->param);
44 return $this->success($data); 44 return $this->success($data);
45 } 45 }
46 46
47 - public function delete(Request $request, DepartmentLogic $logic) 47 + public function delete(Request $request, DeptLogic $logic)
48 { 48 {
49 $request->validate([ 49 $request->validate([
50 'ids'=>['required', new Ids()] 50 'ids'=>['required', new Ids()]
  1 +<?php
  2 +
  3 +namespace App\Http\Logic\Aside;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Models\ManageDept;
  7 +use Illuminate\Database\Eloquent\Model;
  8 +
  9 +/**
  10 + * Class DeptLogic
  11 + * @package App\Http\Logic\Aside\Department
  12 + * @author zbj
  13 + * @date 2023/4/20
  14 + */
  15 +class DeptLogic extends BaseLogic
  16 +{
  17 + public function __construct()
  18 + {
  19 + parent::__construct();
  20 +
  21 + $this->model = new ManageDept();
  22 + }
  23 +
  24 + public function save($param){
  25 + if(!empty($param['pid'])){
  26 + if(!empty($param['id']) && $param['pid'] == $param['id']){
  27 + $this->fail('上级部门不能是本部门');
  28 + }
  29 + $p_cate = $this->getCacheInfo($param['pid']);
  30 + if(!$p_cate){
  31 + $this->fail('上级部门不存在');
  32 + }
  33 + }
  34 + return parent::save($param);
  35 + }
  36 +
  37 + public function delete($ids){
  38 + $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
  39 + foreach ($ids as $id){
  40 + $info = $this->getCacheInfo($id);
  41 + if(!$info){
  42 + continue;
  43 + }
  44 + //是否有子部门
  45 + if(ManageDept::where('pid', $id)->count()){
  46 + $this->fail("部门{$info['title']}存在下级部门,不能删除");
  47 + }
  48 + }
  49 + return parent::delete($ids);
  50 + }
  51 +}
@@ -3,21 +3,21 @@ @@ -3,21 +3,21 @@
3 namespace App\Http\Logic\Bside; 3 namespace App\Http\Logic\Bside;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 -use App\Models\Department; 6 +use App\Models\ProjectDept;
7 7
8 /** 8 /**
9 - * Class DepartmentLogic 9 + * Class DeptLogic
10 * @package App\Http\Logic\Bside\Department 10 * @package App\Http\Logic\Bside\Department
11 * @author zbj 11 * @author zbj
12 * @date 2023/4/18 12 * @date 2023/4/18
13 */ 13 */
14 -class DepartmentLogic extends BaseLogic 14 +class DeptLogic extends BaseLogic
15 { 15 {
16 public function __construct() 16 public function __construct()
17 { 17 {
18 parent::__construct(); 18 parent::__construct();
19 19
20 - $this->model = new Department(); 20 + $this->model = new ProjectDept();
21 } 21 }
22 22
23 public function save($param){ 23 public function save($param){
@@ -41,7 +41,7 @@ class DepartmentLogic extends BaseLogic @@ -41,7 +41,7 @@ class DepartmentLogic extends BaseLogic
41 continue; 41 continue;
42 } 42 }
43 //是否有子部门 43 //是否有子部门
44 - if(Department::where('project_id', $this->user['project_id'])->where('pid', $id)->count()){ 44 + if(ProjectDept::where('project_id', $this->user['project_id'])->where('pid', $id)->count()){
45 $this->fail("部门{$info['title']}存在下级部门,不能删除"); 45 $this->fail("部门{$info['title']}存在下级部门,不能删除");
46 } 46 }
47 } 47 }
  1 +<?php
  2 +
  3 +namespace App\Http\Requests\Aside;
  4 +
  5 +use Illuminate\Foundation\Http\FormRequest;
  6 +
  7 +/**
  8 + * Class DeptRequest
  9 + * @package App\Http\Requests\Aside\product
  10 + * @author zbj
  11 + * @date 2023/4/20
  12 + */
  13 +class DeptRequest extends FormRequest
  14 +{
  15 + /**
  16 + * Determine if the user is authorized to make this request.
  17 + *
  18 + * @return bool
  19 + */
  20 + public function authorize()
  21 + {
  22 + return true;
  23 + }
  24 +
  25 + /**
  26 + * Get the validation rules that apply to the request.
  27 + *
  28 + * @return array
  29 + */
  30 + public function rules()
  31 + {
  32 + return [
  33 + 'title'=>'required|max:50',
  34 + 'remark'=>'max:200',
  35 + ];
  36 + }
  37 +
  38 + public function messages()
  39 + {
  40 + return [
  41 + 'title.required' => '请输入部门名称',
  42 + 'title.max' => '部门名称不能超过50个字符',
  43 + 'remark.max' => '备注不能超过200个字符',
  44 + ];
  45 + }
  46 +
  47 +}
@@ -5,12 +5,12 @@ namespace App\Http\Requests\Bside; @@ -5,12 +5,12 @@ namespace App\Http\Requests\Bside;
5 use Illuminate\Foundation\Http\FormRequest; 5 use Illuminate\Foundation\Http\FormRequest;
6 6
7 /** 7 /**
8 - * Class DepartmentRequest 8 + * Class DeptRequest
9 * @package App\Http\Requests\Bside\product 9 * @package App\Http\Requests\Bside\product
10 * @author zbj 10 * @author zbj
11 * @date 2023/4/18 11 * @date 2023/4/18
12 */ 12 */
13 -class DepartmentRequest extends FormRequest 13 +class DeptRequest extends FormRequest
14 { 14 {
15 /** 15 /**
16 * Determine if the user is authorized to make this request. 16 * Determine if the user is authorized to make this request.
@@ -4,11 +4,11 @@ namespace App\Models; @@ -4,11 +4,11 @@ namespace App\Models;
4 4
5 use Illuminate\Database\Eloquent\SoftDeletes; 5 use Illuminate\Database\Eloquent\SoftDeletes;
6 6
7 -class Department extends Base 7 +class ManageDept extends Base
8 { 8 {
9 use SoftDeletes; 9 use SoftDeletes;
10 10
11 //设置关联表名 11 //设置关联表名
12 - protected $table = 'gl_project_department'; 12 + protected $table = 'gl_manage_dept';
13 13
14 } 14 }
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\SoftDeletes;
  6 +
  7 +class ProjectDept extends Base
  8 +{
  9 + use SoftDeletes;
  10 +
  11 + //设置关联表名
  12 + protected $table = 'gl_project_dept';
  13 +
  14 +}
@@ -123,10 +123,10 @@ Route::middleware(['bloginauth'])->group(function () { @@ -123,10 +123,10 @@ Route::middleware(['bloginauth'])->group(function () {
123 123
124 //组织架构 124 //组织架构
125 Route::prefix('department')->group(function () { 125 Route::prefix('department')->group(function () {
126 - Route::get('/', [\App\Http\Controllers\Bside\DepartmentController::class, 'index'])->name('department');  
127 - Route::get('/info', [\App\Http\Controllers\Bside\DepartmentController::class, 'info'])->name('department_info');  
128 - Route::post('/save', [\App\Http\Controllers\Bside\DepartmentController::class, 'save'])->name('department_save');  
129 - Route::any('/delete', [\App\Http\Controllers\Bside\DepartmentController::class, 'delete'])->name('department_delete'); 126 + Route::get('/', [\App\Http\Controllers\Bside\DeptController::class, 'index'])->name('department');
  127 + Route::get('/info', [\App\Http\Controllers\Bside\DeptController::class, 'info'])->name('department_info');
  128 + Route::post('/save', [\App\Http\Controllers\Bside\DeptController::class, 'save'])->name('department_save');
  129 + Route::any('/delete', [\App\Http\Controllers\Bside\DeptController::class, 'delete'])->name('department_delete');
130 }); 130 });
131 }); 131 });
132 132