first commit
This commit is contained in:
134
app/admin/controller/AdminUserController.php
Normal file
134
app/admin/controller/AdminUserController.php
Normal file
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
namespace app\admin\controller;
|
||||
|
||||
use support\Request;
|
||||
use app\common\model\AdminUser;
|
||||
use Illuminate\Database\Capsule\Manager as DB;
|
||||
|
||||
class AdminUserController
|
||||
{
|
||||
public function list(Request $request)
|
||||
{
|
||||
$page = (int)$request->get('page', 1);
|
||||
$limit = (int)$request->get('limit', 15);
|
||||
|
||||
$query = AdminUser::with('roles');
|
||||
|
||||
if ($username = $request->get('username')) {
|
||||
$query->where('username', 'like', "%{$username}%");
|
||||
}
|
||||
|
||||
$total = $query->count();
|
||||
$list = $query->offset(($page - 1) * $limit)
|
||||
->limit($limit)
|
||||
->orderBy('id', 'desc')
|
||||
->get();
|
||||
|
||||
return jsonResponse([
|
||||
'total' => $total,
|
||||
'list' => $list
|
||||
]);
|
||||
}
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
$username = trim($request->post('username', ''));
|
||||
$password = $request->post('password', '');
|
||||
$roleIds = $request->post('role_ids', []);
|
||||
|
||||
if (!$username || !$password) {
|
||||
return jsonResponse(null, '用户名和密码必填', 400);
|
||||
}
|
||||
|
||||
if (AdminUser::where('username', $username)->exists()) {
|
||||
return jsonResponse(null, '用户名已存在', 400);
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$admin = AdminUser::create([
|
||||
'username' => $username,
|
||||
'password_hash' => password_hash($password, PASSWORD_DEFAULT),
|
||||
'status' => (int)$request->post('status', 1),
|
||||
'is_super' => (int)$request->post('is_super', 0),
|
||||
]);
|
||||
|
||||
if (!empty($roleIds)) {
|
||||
$admin->roles()->sync($roleIds);
|
||||
}
|
||||
DB::commit();
|
||||
return jsonResponse(null, '创建成功');
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
return jsonResponse(null, '创建失败: ' . $e->getMessage(), 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$id = (int)$request->post('id');
|
||||
$admin = AdminUser::find($id);
|
||||
if (!$admin) {
|
||||
return jsonResponse(null, '用户不存在', 404);
|
||||
}
|
||||
|
||||
$username = trim($request->post('username', ''));
|
||||
if ($username && $username !== $admin->username) {
|
||||
if (AdminUser::where('username', $username)->exists()) {
|
||||
return jsonResponse(null, '用户名已存在', 400);
|
||||
}
|
||||
$admin->username = $username;
|
||||
}
|
||||
|
||||
$password = $request->post('password');
|
||||
if ($password) {
|
||||
$admin->password_hash = password_hash($password, PASSWORD_DEFAULT);
|
||||
}
|
||||
|
||||
if ($request->post('status') !== null) {
|
||||
$admin->status = (int)$request->post('status');
|
||||
}
|
||||
|
||||
if ($request->post('is_super') !== null) {
|
||||
$admin->is_super = (int)$request->post('is_super');
|
||||
}
|
||||
|
||||
$roleIds = $request->post('role_ids');
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$admin->save();
|
||||
if (is_array($roleIds)) {
|
||||
$admin->roles()->sync($roleIds);
|
||||
}
|
||||
DB::commit();
|
||||
return jsonResponse(null, '更新成功');
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
return jsonResponse(null, '更新失败: ' . $e->getMessage(), 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$id = (int)$request->post('id');
|
||||
if ($id === 1) {
|
||||
return jsonResponse(null, '超级管理员不可删除', 403);
|
||||
}
|
||||
$admin = AdminUser::find($id);
|
||||
if (!$admin) {
|
||||
return jsonResponse(null, '用户不存在', 404);
|
||||
}
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$admin->roles()->detach();
|
||||
$admin->delete();
|
||||
DB::commit();
|
||||
return jsonResponse(null, '删除成功');
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
return jsonResponse(null, '删除失败: ' . $e->getMessage(), 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user