feat: new feature

This commit is contained in:
JaguarJack
2022-12-23 19:47:13 +08:00
parent 17f2dc4d3c
commit 81fac9f62c
38 changed files with 1019 additions and 1486 deletions

View File

@@ -5,21 +5,20 @@ declare(strict_types=1);
namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Modules\Permissions\Models\DepartmentsModel;
use Modules\Permissions\Models\Departments;
use Illuminate\Http\Request;
class DepartmentsController extends Controller
{
public function __construct(
protected readonly DepartmentsModel $model
protected readonly Departments $model
) {
}
/**
* @param Request $request
* @return mixed
*/
public function index(Request $request): mixed
public function index(): mixed
{
return $this->model->getList();
}

View File

@@ -5,13 +5,13 @@ declare(strict_types=1);
namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Modules\Permissions\Models\JobsModel;
use Modules\Permissions\Models\Jobs;
use Illuminate\Http\Request;
class JobsController extends Controller
{
public function __construct(
protected readonly JobsModel $model
protected readonly Jobs $model
) {
}

View File

@@ -5,14 +5,20 @@ declare(strict_types=1);
namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Catch\Exceptions\FailedException;
use Illuminate\Support\Facades\Route;
use Modules\Permissions\Enums\MenuType;
use Modules\Permissions\Models\PermissionsModel;
use Modules\Permissions\Models\Permissions;
use Illuminate\Http\Request;
class PermissionsController extends Controller
{
/**
* @param Permissions $model
*/
public function __construct(
protected readonly PermissionsModel $model
protected readonly Permissions $model
) {
}
@@ -21,28 +27,53 @@ class PermissionsController extends Controller
*/
public function index(): mixed
{
return $this->model->setBeforeGetList(function ($query){
return $query->with('actions')->whereIn('type', [MenuType::Top->value(), MenuType::Menu->value]);
return $this->model->setBeforeGetList(function ($query) {
return $query->with('actions')->whereIn('type', [MenuType::Top->value(), MenuType::Menu->value()]);
})->getList();
}
/**
*
* @param Request $request
* @return bool
*/
public function store(Request $request)
{
return $this->model->storeBy($request->all());
}
/**
*
* @param $id
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function show($id)
{
return $this->model->firstBy($id);
}
/**
*
* @param $id
* @param Request $request
* @return mixed
*/
public function update($id, Request $request)
{
return $this->model->updateBy($id, $request->all());
}
/**
*
* @param $id
* @return bool|null
*/
public function destroy($id)
{
if ($this->model->where($this->model->getParentIdColumn(), $id)->first()) {
throw new FailedException('无法进行删除,请先删除子级');
}
return $this->model->deleteBy($id);
}

View File

@@ -5,13 +5,14 @@ declare(strict_types=1);
namespace Modules\Permissions\Http\Controllers;
use Catch\Base\CatchController as Controller;
use Modules\Permissions\Models\RolesModel;
use Catch\Exceptions\FailedException;
use Modules\Permissions\Models\Roles;
use Modules\Permissions\Http\Requests\RoleRequest;
class RolesController extends Controller
{
public function __construct(
protected readonly RolesModel $model
protected readonly Roles $model
) {
}
@@ -20,8 +21,10 @@ class RolesController extends Controller
*/
public function index(): mixed
{
return $this->model->setBeforeGetList(function ($query){
return $query->with(['permissions' => function($query){ $query->select('id');}]);
return $this->model->setBeforeGetList(function ($query) {
return $query->with(['permissions' => function ($query) {
$query->select('id');
}])->dataRange();
})->getList();
}
@@ -46,6 +49,10 @@ class RolesController extends Controller
public function destroy($id)
{
if ($this->model->where($this->model->getParentIdColumn(), $id)->first()) {
throw new FailedException('请先删除子级');
}
return $this->model->deleteBy($id);
}
}

View File

@@ -3,7 +3,7 @@
namespace Modules\Permissions\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Modules\Permissions\Models\RolesModel;
use Modules\Permissions\Models\Roles;
class RoleRequest extends FormRequest
{
@@ -15,9 +15,9 @@ class RoleRequest extends FormRequest
public function rules(): array
{
return [
'role_name' => sprintf('required|unique:%s,%s,%s', RolesModel::class, 'role_name', $this->get('id')),
'role_name' => sprintf('required|unique:%s,%s,%s', Roles::class, 'role_name', $this->get('id')),
'identify' => sprintf('required|alpha|unique:%s,%s,%s', RolesModel::class, 'role_name', $this->get('id')),
'identify' => sprintf('required|alpha|unique:%s,%s,%s', Roles::class, 'role_name', $this->get('id')),
];
}