作者 赵彬吉

update

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