初始化项目
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\Auth\RoleService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class Role extends Controller
|
||||
{
|
||||
protected $roleService;
|
||||
|
||||
public function __construct(RoleService $roleService)
|
||||
{
|
||||
$this->roleService = $roleService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色列表
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$params = $request->all();
|
||||
$result = $this->roleService->getList($params);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有角色(不分页)
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$result = $this->roleService->getAll();
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => ['list' => $result],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色详情
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$result = $this->roleService->getById($id);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建角色
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'name' => 'required|string|max:50',
|
||||
'code' => 'required|string|max:50|unique:auth_roles,code',
|
||||
'description' => 'nullable|string|max:200',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
'permission_ids' => 'nullable|array',
|
||||
'permission_ids.*' => 'integer|exists:auth_permissions,id',
|
||||
]);
|
||||
|
||||
$result = $this->roleService->create($validated);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => ['id' => $result->id],
|
||||
], 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'name' => 'nullable|string|max:50',
|
||||
'code' => 'nullable|string|max:50|unique:auth_roles,code,' . $id,
|
||||
'description' => 'nullable|string|max:200',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
'permission_ids' => 'nullable|array',
|
||||
'permission_ids.*' => 'integer|exists:auth_permissions,id',
|
||||
]);
|
||||
|
||||
$result = $this->roleService->update($id, $validated);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => ['id' => $result->id],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$this->roleService->delete($id);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除角色
|
||||
*/
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'ids' => 'required|array',
|
||||
'ids.*' => 'integer',
|
||||
]);
|
||||
|
||||
$count = $this->roleService->batchDelete($validated['ids']);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => "成功删除 {$count} 条数据",
|
||||
'data' => ['count' => $count],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量更新角色状态
|
||||
*/
|
||||
public function batchUpdateStatus(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'ids' => 'required|array',
|
||||
'ids.*' => 'integer',
|
||||
'status' => 'required|integer|in:0,1',
|
||||
]);
|
||||
|
||||
$count = $this->roleService->batchUpdateStatus($validated['ids'], $validated['status']);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => "成功更新 {$count} 条数据",
|
||||
'data' => ['count' => $count],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配权限
|
||||
*/
|
||||
public function assignPermissions(Request $request, $id)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'permission_ids' => 'required|array',
|
||||
'permission_ids.*' => 'integer|exists:auth_permissions,id',
|
||||
]);
|
||||
|
||||
$this->roleService->assignPermissions($id, $validated['permission_ids']);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '权限分配成功',
|
||||
'data' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色的权限列表
|
||||
*/
|
||||
public function getPermissions($id)
|
||||
{
|
||||
$result = $this->roleService->getPermissions($id);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => ['tree' => $result],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制角色
|
||||
*/
|
||||
public function copy(Request $request, $id)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'name' => 'required|string|max:50',
|
||||
'code' => 'required|string|max:50|unique:auth_roles,code',
|
||||
'description' => 'nullable|string|max:200',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
]);
|
||||
|
||||
$result = $this->roleService->copy($id, $validated);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '复制成功',
|
||||
'data' => ['id' => $result->id],
|
||||
], 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量复制角色
|
||||
*/
|
||||
public function batchCopy(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'ids' => 'required|array',
|
||||
'ids.*' => 'integer',
|
||||
'name' => 'nullable|string|max:50',
|
||||
'code' => 'nullable|string|max:50',
|
||||
'description' => 'nullable|string|max:200',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
]);
|
||||
|
||||
$result = $this->roleService->batchCopy($validated['ids'], $validated);
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => "复制完成,成功 {$result['success_count']} 个,失败 {$result['error_count']} 个",
|
||||
'data' => $result,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user