MenuBadge.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Controllers\admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Services\MenuBadgeAdminService;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Validation\ValidationException;
  7. class MenuBadge extends Controller
  8. {
  9. public function index(MenuBadgeAdminService $service)
  10. {
  11. return $this->run(fn () => $service->listing());
  12. }
  13. public function save(MenuBadgeAdminService $service)
  14. {
  15. return $this->run(fn () => $service->save(request()->all()));
  16. }
  17. public function delete(MenuBadgeAdminService $service)
  18. {
  19. return $this->run(fn () => $service->delete(request()->all()));
  20. }
  21. private function run(callable $callback)
  22. {
  23. try {
  24. return $this->success($callback());
  25. } catch (ValidationException $e) {
  26. return $this->error(-3, $e->validator->errors()->first());
  27. } catch (\Throwable $e) {
  28. Log::error('menu_badge_admin_failed', ['exception' => $e]);
  29. return $this->error(-3, '菜单角标配置操作失败,请稍后重试');
  30. }
  31. }
  32. }