1. 调整异常处理类

2. 统一职责分工
3. 清除多余代码
This commit is contained in:
技术老胡
2026-02-24 13:37:35 +08:00
parent d29751cce8
commit d5a134d3a8
59 changed files with 3370 additions and 646 deletions

View File

@@ -27,12 +27,8 @@ class AuthController extends BaseController
*/
public function captcha(Request $request)
{
try {
$data = $this->captchaService->generate();
return $this->success($data);
} catch (\Throwable $e) {
return $this->fail('验证码生成失败:' . $e->getMessage(), 500);
}
$data = $this->captchaService->generate();
return $this->success($data);
}
/**
@@ -52,14 +48,8 @@ class AuthController extends BaseController
return $this->fail('请填写完整登录信息', 400);
}
try {
$data = $this->authService->login($username, $password, $verifyCode, $captchaId);
return $this->success($data);
} catch (\RuntimeException $e) {
return $this->fail($e->getMessage(), $e->getCode() ?: 500);
} catch (\Throwable $e) {
return $this->fail('登录失败:' . $e->getMessage(), 500);
}
$data = $this->authService->login($username, $password, $verifyCode, $captchaId);
return $this->success($data);
}
}

View File

@@ -3,6 +3,7 @@
namespace app\http\admin\controller;
use app\common\base\BaseController;
use app\services\MenuService;
use support\Request;
/**
@@ -10,44 +11,15 @@ use support\Request;
*/
class MenuController extends BaseController
{
public function __construct(
protected MenuService $menuService
) {
}
public function getRouters()
{
// 获取菜单数据并转换为树形结构
$routers = $this->buildMenuTree($this->getSystemMenu());
$routers = $this->menuService->getRouters();
return $this->success($routers);
}
/**
* 获取系统菜单数据
* 从配置文件读取
*/
private function getSystemMenu(): array
{
return config('menu', []);
}
/**
* 构建菜单树形结构
*/
private function buildMenuTree(array $menus, string $parentId = '0'): array
{
$tree = [];
foreach ($menus as $menu) {
if (($menu['parentId'] ?? '0') === $parentId) {
$children = $this->buildMenuTree($menus, $menu['id']);
$menu['children'] = !empty($children) ? $children : null;
$tree[] = $menu;
}
}
// 按 sort 排序
usort($tree, function ($a, $b) {
return ($a['meta']['sort'] ?? 0) <=> ($b['meta']['sort'] ?? 0);
});
return $tree;
}
}

View File

@@ -3,6 +3,7 @@
namespace app\http\admin\controller;
use app\common\base\BaseController;
use app\services\SystemSettingService;
use support\Request;
/**
@@ -10,6 +11,10 @@ use support\Request;
*/
class SystemController extends BaseController
{
public function __construct(
protected SystemSettingService $settingService
) {
}
/**
* GET /system/getDict
* GET /system/getDict/{code}
@@ -24,23 +29,50 @@ class SystemController extends BaseController
*/
public function getDict(Request $request, string $code = '')
{
// 获取所有字典数据
$allDicts = config('dict', []);
// 如果指定了 code则只返回对应的字典
if (!empty($code)) {
// 将数组转换为以 code 为键的关联数组,便于快速查找
$dictsByCode = array_column($allDicts, null, 'code');
$dict = $dictsByCode[$code] ?? null;
if ($dict === null) {
return $this->fail('未找到指定的字典:' . $code, 404);
}
return $this->success($dict);
$data = $this->settingService->getDict($code);
return $this->success($data);
}
/**
* GET /system/base-config/tabs
*
* 获取所有Tab配置
* 由 SystemSettingService 负责读取配置和缓存
*/
public function getTabsConfig()
{
$tabs = $this->settingService->getTabs();
return $this->success($tabs);
}
/**
* GET /system/base-config/form/{tabKey}
*
* 获取指定Tab的表单配置
* 从 SystemSettingService 获取合并后的配置
*/
public function getFormConfig(Request $request, string $tabKey)
{
$formConfig = $this->settingService->getFormConfig($tabKey);
return $this->success($formConfig);
}
/**
* POST /system/base-config/submit/{tabKey}
*
* 提交表单数据
* 接收表单数据直接使用字段名fieldName作为 config_key 保存到数据库
*/
public function submitConfig(Request $request, string $tabKey)
{
$formData = $request->post();
if (empty($formData)) {
return $this->fail('提交数据不能为空', 400);
}
// 返回所有字典
return $this->success($allDicts);
$this->settingService->saveFormConfig($tabKey, $formData);
return $this->success(null, '保存成功');
}
}

View File

@@ -33,12 +33,8 @@ class UserController extends BaseController
return $this->fail('未获取到用户信息,请先登录', 401);
}
try {
$data = $this->userService->getUserInfoById($userId);
return $this->success($data);
} catch (\RuntimeException $e) {
return $this->fail($e->getMessage(), $e->getCode() ?: 500);
}
$data = $this->userService->getUserInfoById($userId);
return $this->success($data);
}
}