初始化项目
This commit is contained in:
172
app/Http/Controllers/System/Admin/City.php
Normal file
172
app/Http/Controllers/System/Admin/City.php
Normal file
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\CityService;
|
||||
|
||||
class City extends Controller
|
||||
{
|
||||
protected $cityService;
|
||||
|
||||
public function __construct(CityService $cityService)
|
||||
{
|
||||
$this->cityService = $cityService;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$result = $this->cityService->getList($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function tree()
|
||||
{
|
||||
$tree = $this->cityService->getCachedTree();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $tree
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(int $id)
|
||||
{
|
||||
$city = $this->cityService->getById($id);
|
||||
if (!$city) {
|
||||
return response()->json([
|
||||
'code' => 404,
|
||||
'message' => '城市不存在',
|
||||
'data' => null
|
||||
], 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $city
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
try {
|
||||
$city = $this->cityService->create($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => $city
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request, int $id)
|
||||
{
|
||||
try {
|
||||
$city = $this->cityService->update($id, $request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => $city
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy(int $id)
|
||||
{
|
||||
try {
|
||||
$this->cityService->delete($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$this->cityService->batchDelete($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchUpdateStatus(Request $request)
|
||||
{
|
||||
$this->cityService->batchUpdateStatus(
|
||||
$request->input('ids', []),
|
||||
$request->input('status', true)
|
||||
);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量更新状态成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function children(int $parentId)
|
||||
{
|
||||
$children = $this->cityService->getChildren($parentId);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $children
|
||||
]);
|
||||
}
|
||||
|
||||
public function provinces()
|
||||
{
|
||||
$provinces = $this->cityService->getProvinces();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $provinces
|
||||
]);
|
||||
}
|
||||
|
||||
public function cities(int $provinceId)
|
||||
{
|
||||
$cities = $this->cityService->getCities($provinceId);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $cities
|
||||
]);
|
||||
}
|
||||
|
||||
public function districts(int $cityId)
|
||||
{
|
||||
$districts = $this->cityService->getDistricts($cityId);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $districts
|
||||
]);
|
||||
}
|
||||
}
|
||||
142
app/Http/Controllers/System/Admin/Config.php
Normal file
142
app/Http/Controllers/System/Admin/Config.php
Normal file
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\ConfigService;
|
||||
|
||||
class Config extends Controller
|
||||
{
|
||||
protected $configService;
|
||||
|
||||
public function __construct(ConfigService $configService)
|
||||
{
|
||||
$this->configService = $configService;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$result = $this->configService->getList($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(int $id)
|
||||
{
|
||||
$config = $this->configService->getById($id);
|
||||
if (!$config) {
|
||||
return response()->json([
|
||||
'code' => 404,
|
||||
'message' => '配置不存在',
|
||||
'data' => null
|
||||
], 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $config
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
try {
|
||||
$config = $this->configService->create($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => $config
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request, int $id)
|
||||
{
|
||||
try {
|
||||
$config = $this->configService->update($id, $request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => $config
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy(int $id)
|
||||
{
|
||||
try {
|
||||
$this->configService->delete($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$this->configService->batchDelete($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchUpdateStatus(Request $request)
|
||||
{
|
||||
$this->configService->batchUpdateStatus(
|
||||
$request->input('ids', []),
|
||||
$request->input('status', true)
|
||||
);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量更新状态成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function getGroups()
|
||||
{
|
||||
$groups = $this->configService->getGroups();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $groups
|
||||
]);
|
||||
}
|
||||
|
||||
public function getByGroup(Request $request)
|
||||
{
|
||||
$configs = $this->configService->getByGroup($request->input('group'));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $configs
|
||||
]);
|
||||
}
|
||||
}
|
||||
211
app/Http/Controllers/System/Admin/Dictionary.php
Normal file
211
app/Http/Controllers/System/Admin/Dictionary.php
Normal file
@@ -0,0 +1,211 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\DictionaryService;
|
||||
|
||||
class Dictionary extends Controller
|
||||
{
|
||||
protected $dictionaryService;
|
||||
|
||||
public function __construct(DictionaryService $dictionaryService)
|
||||
{
|
||||
$this->dictionaryService = $dictionaryService;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$result = $this->dictionaryService->getList($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function all()
|
||||
{
|
||||
$dictionaries = $this->dictionaryService->getAll();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $dictionaries
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(int $id)
|
||||
{
|
||||
$dictionary = $this->dictionaryService->getById($id);
|
||||
if (!$dictionary) {
|
||||
return response()->json([
|
||||
'code' => 404,
|
||||
'message' => '字典不存在',
|
||||
'data' => null
|
||||
], 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $dictionary
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
try {
|
||||
$dictionary = $this->dictionaryService->create($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => $dictionary
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request, int $id)
|
||||
{
|
||||
try {
|
||||
$dictionary = $this->dictionaryService->update($id, $request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => $dictionary
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy(int $id)
|
||||
{
|
||||
try {
|
||||
$this->dictionaryService->delete($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$this->dictionaryService->batchDelete($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchUpdateStatus(Request $request)
|
||||
{
|
||||
$this->dictionaryService->batchUpdateStatus(
|
||||
$request->input('ids', []),
|
||||
$request->input('status', true)
|
||||
);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量更新状态成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function getItemsList(Request $request)
|
||||
{
|
||||
$result = $this->dictionaryService->getItemsList($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function storeItem(Request $request)
|
||||
{
|
||||
try {
|
||||
$item = $this->dictionaryService->createItem($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => $item
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateItem(Request $request, int $id)
|
||||
{
|
||||
try {
|
||||
$item = $this->dictionaryService->updateItem($id, $request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => $item
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function destroyItem(int $id)
|
||||
{
|
||||
$this->dictionaryService->deleteItem($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchDeleteItems(Request $request)
|
||||
{
|
||||
$this->dictionaryService->batchDeleteItems($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchUpdateItemsStatus(Request $request)
|
||||
{
|
||||
$this->dictionaryService->batchUpdateItemsStatus(
|
||||
$request->input('ids', []),
|
||||
$request->input('status', true)
|
||||
);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量更新状态成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
}
|
||||
126
app/Http/Controllers/System/Admin/Log.php
Normal file
126
app/Http/Controllers/System/Admin/Log.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\LogRequest;
|
||||
use App\Services\System\LogService;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Exports\GenericExport;
|
||||
|
||||
class Log extends Controller
|
||||
{
|
||||
protected $logService;
|
||||
|
||||
public function __construct(LogService $logService)
|
||||
{
|
||||
$this->logService = $logService;
|
||||
}
|
||||
|
||||
public function index(LogRequest $request)
|
||||
{
|
||||
$result = $this->logService->getList($request->validated());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function export(LogRequest $request)
|
||||
{
|
||||
$params = $request->validated();
|
||||
$pageSize = $params['page_size'] ?? 10000; // 导出时默认获取更多数据
|
||||
|
||||
// 获取所有符合条件的日志(不分页)
|
||||
$query = $this->logService->getListQuery($params);
|
||||
$logs = $query->limit($pageSize)->get();
|
||||
|
||||
// 准备导出数据
|
||||
$headers = [
|
||||
'ID', '用户名', '模块', '操作', '请求方法', 'URL', 'IP地址',
|
||||
'状态码', '状态', '错误信息', '执行时间(ms)', '创建时间'
|
||||
];
|
||||
|
||||
$data = [];
|
||||
foreach ($logs as $log) {
|
||||
$data[] = [
|
||||
$log->id,
|
||||
$log->username,
|
||||
$log->module,
|
||||
$log->action,
|
||||
$log->method,
|
||||
$log->url,
|
||||
$log->ip,
|
||||
$log->status_code,
|
||||
$log->status === 'success' ? '成功' : '失败',
|
||||
$log->error_message ?? '-',
|
||||
$log->execution_time,
|
||||
$log->created_at->format('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
$filename = '系统操作日志_' . date('YmdHis') . '.xlsx';
|
||||
|
||||
return Excel::download(new GenericExport($headers, $data), $filename);
|
||||
}
|
||||
|
||||
public function show(int $id)
|
||||
{
|
||||
$log = $this->logService->getById($id);
|
||||
if (!$log) {
|
||||
return response()->json([
|
||||
'code' => 404,
|
||||
'message' => '日志不存在',
|
||||
'data' => null
|
||||
], 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $log
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(int $id)
|
||||
{
|
||||
$this->logService->delete($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$this->logService->batchDelete($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function clearLogs(Request $request)
|
||||
{
|
||||
$days = $request->input('days', 30);
|
||||
$this->logService->clearLogs($days);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '清理成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function getStatistics(LogRequest $request)
|
||||
{
|
||||
$statistics = $this->logService->getStatistics($request->validated());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $statistics
|
||||
]);
|
||||
}
|
||||
}
|
||||
152
app/Http/Controllers/System/Admin/Task.php
Normal file
152
app/Http/Controllers/System/Admin/Task.php
Normal file
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\TaskService;
|
||||
|
||||
class Task extends Controller
|
||||
{
|
||||
protected $taskService;
|
||||
|
||||
public function __construct(TaskService $taskService)
|
||||
{
|
||||
$this->taskService = $taskService;
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$result = $this->taskService->getList($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $result
|
||||
]);
|
||||
}
|
||||
|
||||
public function all()
|
||||
{
|
||||
$tasks = $this->taskService->getAll();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $tasks
|
||||
]);
|
||||
}
|
||||
|
||||
public function show(int $id)
|
||||
{
|
||||
$task = $this->taskService->getById($id);
|
||||
if (!$task) {
|
||||
return response()->json([
|
||||
'code' => 404,
|
||||
'message' => '任务不存在',
|
||||
'data' => null
|
||||
], 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $task
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
try {
|
||||
$task = $this->taskService->create($request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '创建成功',
|
||||
'data' => $task
|
||||
], 201);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request, int $id)
|
||||
{
|
||||
try {
|
||||
$task = $this->taskService->update($id, $request->all());
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '更新成功',
|
||||
'data' => $task
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 422,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy(int $id)
|
||||
{
|
||||
$this->taskService->delete($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
$this->taskService->batchDelete($request->input('ids', []));
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function batchUpdateStatus(Request $request)
|
||||
{
|
||||
$this->taskService->batchUpdateStatus(
|
||||
$request->input('ids', []),
|
||||
$request->input('status', true)
|
||||
);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量更新状态成功',
|
||||
'data' => null
|
||||
]);
|
||||
}
|
||||
|
||||
public function run(int $id)
|
||||
{
|
||||
try {
|
||||
$result = $this->taskService->run($id);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '执行成功',
|
||||
'data' => $result
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function getStatistics()
|
||||
{
|
||||
$statistics = $this->taskService->getStatistics();
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => 'success',
|
||||
'data' => $statistics
|
||||
]);
|
||||
}
|
||||
}
|
||||
152
app/Http/Controllers/System/Admin/Upload.php
Normal file
152
app/Http/Controllers/System/Admin/Upload.php
Normal file
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\UploadService;
|
||||
|
||||
class Upload extends Controller
|
||||
{
|
||||
protected $uploadService;
|
||||
|
||||
public function __construct(UploadService $uploadService)
|
||||
{
|
||||
$this->uploadService = $uploadService;
|
||||
}
|
||||
|
||||
public function upload(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'file' => 'required|file|max:10240',
|
||||
]);
|
||||
|
||||
$file = $request->file('file');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$options = [
|
||||
'compress' => $request->input('compress', false),
|
||||
'quality' => $request->input('quality', 80),
|
||||
'width' => $request->input('width'),
|
||||
'height' => $request->input('height'),
|
||||
];
|
||||
|
||||
$result = $this->uploadService->upload($file, $directory, $options);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $result
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function uploadMultiple(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'files' => 'required|array',
|
||||
'files.*' => 'file|max:10240',
|
||||
]);
|
||||
|
||||
$files = $request->file('files');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$options = [
|
||||
'compress' => $request->input('compress', false),
|
||||
'quality' => $request->input('quality', 80),
|
||||
'width' => $request->input('width'),
|
||||
'height' => $request->input('height'),
|
||||
];
|
||||
|
||||
$results = $this->uploadService->uploadMultiple($files, $directory, $options);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $results
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function uploadBase64(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'base64' => 'required|string',
|
||||
]);
|
||||
|
||||
$base64 = $request->input('base64');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$fileName = $request->input('file_name');
|
||||
|
||||
$result = $this->uploadService->uploadBase64($base64, $directory, $fileName);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $result
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'path' => 'required|string',
|
||||
]);
|
||||
|
||||
$path = $request->input('path');
|
||||
$this->uploadService->delete($path);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function batchDelete(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'paths' => 'required|array',
|
||||
]);
|
||||
|
||||
$paths = $request->input('paths', []);
|
||||
$this->uploadService->deleteMultiple($paths);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '批量删除成功',
|
||||
'data' => null
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user