优化后台用户

This commit is contained in:
Edward Yang 2022-08-12 16:04:13 +08:00
parent 2bb83153a9
commit 6e6321a1a0
3 changed files with 68 additions and 5 deletions

View File

@ -11,23 +11,27 @@
namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Models\AdminUser;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Beike\Admin\Repositories\AdminUserRepo;
class AdminUserController extends Controller
{
/**
* 获取后台用户列表
*
* @return mixed
*/
public function index()
{
$data = [
'admin_users' => AdminUser::query()->with(['roles'])->get(),
'admin_users' => AdminUserRepo::getAdminUsers(),
'admin_roles' => Role::query()->get()
];
return view('admin::pages.admin_users.index', $data);
}
public function store(Request $request)
{
$adminUser = AdminUserRepo::createAdminUser($request->toArray());

View File

@ -0,0 +1,30 @@
<?php
/**
* AdminUserDetail.php
*
* @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com
* @author Edward Yang <yangjin@opencart.cn>
* @created 2022-08-12 15:56:28
* @modified 2022-08-12 15:56:28
*/
namespace Beike\Admin\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class AdminUserDetail extends JsonResource
{
public function toArray($request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'locale' => $this->locale,
'roles' => $this->roles->pluck('name')->toArray(),
'created_at' => time_format($this->created_at),
'updated_at' => time_format($this->updated_at),
];
}
}

View File

@ -11,10 +11,28 @@
namespace Beike\Admin\Repositories;
use Beike\Admin\Http\Resources\AdminUserDetail;
use Beike\Models\AdminUser;
class AdminUserRepo
{
/**
* 获取后台用户管理员列表
*/
public static function getAdminUsers(): array
{
$builder = AdminUser::query()->with(['roles']);
$adminUsers = $builder->get();
return AdminUserDetail::collection($adminUsers)->jsonSerialize();
}
/**
* 创建后台管理员用户
*
* @param $data
* @return AdminUser
*/
public static function createAdminUser($data): AdminUser
{
$adminUser = new AdminUser([
@ -31,7 +49,13 @@ class AdminUserRepo
}
public static function updateAdminUser($data): AdminUser
/**
* 更新后台管理员用户
*
* @param $data
* @return mixed
*/
public static function updateAdminUser($data)
{
$id = $data['id'] ?? 0;
$password = $data['password'] ?? '';
@ -51,6 +75,11 @@ class AdminUserRepo
}
/**
* 删除后台用户
*
* @param $adminUserId
*/
public static function deleteAdminUser($adminUserId)
{
$adminUser = AdminUser::query()->find($adminUserId);