| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace App\Http\Controllers\admin;
- use App\Http\Controllers\Controller;
- use App\Services\MenuBadgeAdminService;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Validation\ValidationException;
- class MenuBadge extends Controller
- {
- public function index(MenuBadgeAdminService $service)
- {
- return $this->run(fn () => $service->listing());
- }
- public function save(MenuBadgeAdminService $service)
- {
- return $this->run(fn () => $service->save(request()->all()));
- }
- public function delete(MenuBadgeAdminService $service)
- {
- return $this->run(fn () => $service->delete(request()->all()));
- }
- public function status(MenuBadgeAdminService $service)
- {
- return $this->run(fn () => $service->status(request()->all()));
- }
- private function run(callable $callback)
- {
- try {
- return $this->success($callback());
- } catch (ValidationException $e) {
- return $this->error(-3, $e->validator->errors()->first());
- } catch (\Throwable $e) {
- Log::error('menu_badge_admin_failed', ['exception' => $e]);
- return $this->error(-3, '菜单角标配置操作失败,请稍后重试');
- }
- }
- }
|