LevelController.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Http\Controllers\Admin\Config;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Level;
  5. use Exception;
  6. use Illuminate\Http\Request;
  7. use Log;
  8. use Response;
  9. use Validator;
  10. class LevelController extends Controller
  11. {
  12. // 添加等级
  13. public function store(Request $request)
  14. {
  15. $validator = Validator::make($request->all(), [
  16. 'level' => 'required|numeric|unique:level,level',
  17. 'name' => 'required',
  18. ]);
  19. if ($validator->fails()) {
  20. return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
  21. }
  22. if (Level::create($validator->validated())) {
  23. return Response::json(['status' => 'success', 'message' => '提交成功']);
  24. }
  25. return Response::json(['status' => 'fail', 'message' => '操作失败']);
  26. }
  27. // 编辑等级
  28. public function update(Request $request, Level $level)
  29. {
  30. $validator = Validator::make($request->all(), [
  31. 'level' => 'required|numeric|unique:level,level,'.$level->id,
  32. 'name' => 'required',
  33. ]);
  34. if ($validator->fails()) {
  35. return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
  36. }
  37. if ($level->update($validator->validated())) {
  38. return Response::json(['status' => 'success', 'message' => '操作成功']);
  39. }
  40. return Response::json(['status' => 'fail', 'message' => '操作失败']);
  41. }
  42. // 删除等级
  43. public function destroy(Level $level)
  44. {
  45. // 校验该等级下是否存在关联账号
  46. if ($level->users()->exists()) {
  47. return Response::json(['status' => 'fail', 'message' => '该等级下存在关联账号,请先取消关联']);
  48. }
  49. try {
  50. if ($level->delete()) {
  51. return Response::json(['status' => 'success', 'message' => '删除成功']);
  52. }
  53. } catch (Exception $e) {
  54. Log::error('删除等级时报错:'.$e->getMessage());
  55. return Response::json(['status' => 'fail', 'message' => '删除失败:'.$e->getMessage()]);
  56. }
  57. return Response::json(['status' => 'fail', 'message' => '删除失败']);
  58. }
  59. }