初始化项目

This commit is contained in:
2026-02-08 22:38:13 +08:00
commit 334d2c6312
201 changed files with 32724 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
<?php
namespace App\Http\Controllers\System\Api;
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 tree()
{
$tree = $this->cityService->getCachedTree();
return response()->json([
'code' => 200,
'message' => 'success',
'data' => $tree
]);
}
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
]);
}
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
]);
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers\System\Api;
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()
{
$configs = $this->configService->getAllConfig();
return response()->json([
'code' => 200,
'message' => 'success',
'data' => $configs
]);
}
public function getByGroup(Request $request)
{
$configs = $this->configService->getByGroup($request->input('group'));
return response()->json([
'code' => 200,
'message' => 'success',
'data' => $configs
]);
}
public function getByKey(Request $request)
{
$key = $request->input('key');
$value = $this->configService->getConfigValue($key);
return response()->json([
'code' => 200,
'message' => 'success',
'data' => [
'key' => $key,
'value' => $value,
]
]);
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Http\Controllers\System\Api;
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()
{
$dictionaries = $this->dictionaryService->getAll();
return response()->json([
'code' => 200,
'message' => 'success',
'data' => $dictionaries
]);
}
public function getByCode(Request $request)
{
$code = $request->input('code');
$items = $this->dictionaryService->getItemsByCode($code);
return response()->json([
'code' => 200,
'message' => 'success',
'data' => [
'code' => $code,
'items' => $items,
]
]);
}
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
]);
}
}

View File

@@ -0,0 +1,106 @@
<?php
namespace App\Http\Controllers\System\Api;
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);
}
}
}