DictDetailController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace App\Http\Controllers\Admin\Base;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\Models\Base\DictDetail;
  5. use App\Services\Base\DictDetailService;
  6. use Illuminate\Http\Request;
  7. /**
  8. * 字典类型
  9. * @description 字典管理
  10. */
  11. class DictDetailController extends Controller
  12. {
  13. /**
  14. * @var DictDetailService
  15. */
  16. private $dictDetailService;
  17. /**
  18. * DictDetailController constructor.
  19. *
  20. * @param DictDetailService $dictDetailService
  21. */
  22. public function __construct(DictDetailService $dictDetailService)
  23. {
  24. parent::__construct();
  25. // $this->middleware('checkUserPermission');
  26. $this->dictDetailService = $dictDetailService;
  27. }
  28. /**
  29. * 列表
  30. * @description 类型列表
  31. * @param Request $request
  32. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  33. * @throws \Prettus\Repository\Exceptions\RepositoryException
  34. */
  35. public function index(Request $request)
  36. {
  37. $dictDetails = $this->dictDetailService->handleList($request);
  38. return $this->response->success($dictDetails);
  39. }
  40. /**
  41. * 创建
  42. * @description 类型创建
  43. * @param Request $request
  44. *
  45. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  46. * @throws \Prettus\Validator\Exceptions\ValidatorException
  47. */
  48. public function store(Request $request)
  49. {
  50. $data = $this->validateData($request, [
  51. 'dict_id' => 'required|integer',
  52. 'name' => 'required',
  53. 'value' => [
  54. 'required',
  55. 'integer',
  56. function ($attribute, $value, $fail) use ($request) {
  57. if (DictDetail::checkValueIsUnique($request->get('dict_id'), $value)) {
  58. $fail('键值 已存在');
  59. }
  60. },
  61. ],
  62. 'remark' => 'nullables',
  63. 'sort' => 'required|integer',
  64. 'status' => 'required|integer',
  65. ], [
  66. 'name' => '字典标签',
  67. 'value' => '字典值',
  68. 'remark' => '备注',
  69. ]);
  70. $dictDetail = $this->dictDetailService->handleStore($data);
  71. return $this->response->created($dictDetail, '创建成功');
  72. }
  73. /**
  74. * 详情
  75. * @description 类型详情
  76. * @param int $id
  77. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  78. */
  79. public function show(Request $request)
  80. {
  81. $this->validate($request, ['id' => 'required|integer']);
  82. $dictDetail = $this->dictDetailService->handleProfile($request->get('id'));
  83. return $this->response->success($dictDetail);
  84. }
  85. /**
  86. * 修改
  87. * @description 类型修改
  88. * @param Request $request
  89. *
  90. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  91. * @throws \Prettus\Validator\Exceptions\ValidatorException
  92. */
  93. public function update(Request $request)
  94. {
  95. $data = $this->validateData($request, [
  96. 'id' => 'required|integer',
  97. 'name' => 'required',
  98. 'value' => [
  99. 'required',
  100. 'integer',
  101. function ($attribute, $value, $fail) use ($request) {
  102. if (DictDetail::checkValueIsUnique($request->get('dict_id'), $value)) {
  103. $fail('键值 已存在');
  104. }
  105. },
  106. ],
  107. 'remark' => 'nullables',
  108. 'sort' => 'required|integer',
  109. 'status' => 'required|integer',
  110. ], [
  111. 'name' => '字典标签',
  112. 'value' => '字典值',
  113. 'remark' => '备注',
  114. ]);
  115. $dictDetail = $this->dictDetailService->handleUpdate($data);
  116. return $this->response->success($dictDetail, '更新成功');
  117. }
  118. /**
  119. * 删除
  120. * @description 类型删除
  121. * @param int $id
  122. */
  123. public function destroy(Request $request)
  124. {
  125. $this->validate($request, ['id' => 'required|integer']);
  126. $re = $this->dictDetailService->handleDelete($request->get('id'));
  127. if ($re) {
  128. return $this->response->ok('删除成功');
  129. }
  130. return $this->response->fail('删除失败');
  131. }
  132. }