优化后台用户

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; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Models\AdminUser;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
use Beike\Admin\Repositories\AdminUserRepo;
class AdminUserController extends Controller class AdminUserController extends Controller
{ {
/**
* 获取后台用户列表
*
* @return mixed
*/
public function index() public function index()
{ {
$data = [ $data = [
'admin_users' => AdminUser::query()->with(['roles'])->get(), 'admin_users' => AdminUserRepo::getAdminUsers(),
'admin_roles' => Role::query()->get() 'admin_roles' => Role::query()->get()
]; ];
return view('admin::pages.admin_users.index', $data); return view('admin::pages.admin_users.index', $data);
} }
public function store(Request $request) public function store(Request $request)
{ {
$adminUser = AdminUserRepo::createAdminUser($request->toArray()); $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; namespace Beike\Admin\Repositories;
use Beike\Admin\Http\Resources\AdminUserDetail;
use Beike\Models\AdminUser; use Beike\Models\AdminUser;
class AdminUserRepo 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 public static function createAdminUser($data): AdminUser
{ {
$adminUser = new 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; $id = $data['id'] ?? 0;
$password = $data['password'] ?? ''; $password = $data['password'] ?? '';
@ -51,6 +75,11 @@ class AdminUserRepo
} }
/**
* 删除后台用户
*
* @param $adminUserId
*/
public static function deleteAdminUser($adminUserId) public static function deleteAdminUser($adminUserId)
{ {
$adminUser = AdminUser::query()->find($adminUserId); $adminUser = AdminUser::query()->find($adminUserId);