ComplaintController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace App\Http\Controllers\Admin\Info;
  3. use App\Http\Controllers\Controller;
  4. use App\Jobs\Info\ComplaintMessageJob;
  5. use App\Repositories\Enums\ResponseCodeEnum;
  6. use App\Services\Info\ComplaintService;
  7. use Illuminate\Http\Request;
  8. /**
  9. * Complaint
  10. * 投诉内容
  11. */
  12. class ComplaintController extends Controller
  13. {
  14. /**
  15. * @var ComplaintService
  16. */
  17. private $complaintService;
  18. /**
  19. * ComplaintController constructor.
  20. *
  21. * @param ComplaintService $complaintService
  22. */
  23. public function __construct(ComplaintService $complaintService)
  24. {
  25. parent::__construct();
  26. // $this->middleware('checkUserPermission');
  27. $this->complaintService = $complaintService;
  28. }
  29. /**
  30. * 列表
  31. * @param Request $request
  32. *
  33. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  34. * @throws \Prettus\Repository\Exceptions\RepositoryException
  35. */
  36. public function index(Request $request)
  37. {
  38. $complaints = $this->complaintService->handleList($request);
  39. return $this->response->success($complaints);
  40. }
  41. /**
  42. * 详情
  43. * @param Request $request
  44. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  45. */
  46. public function show(Request $request)
  47. {
  48. $this->validate($request, ['id' => 'required|integer']);
  49. $complaint = $this->complaintService->handleProfile($request->get('id'));
  50. return $this->response->success($complaint);
  51. }
  52. /**
  53. * 更新-指派部门
  54. * @param Request $request
  55. *
  56. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  57. * @throws \Prettus\Validator\Exceptions\ValidatorException
  58. */
  59. public function update(Request $request)
  60. {
  61. /*$data = $this->validateData($request, [
  62. 'id' => 'required|integer',
  63. 'category_id' => 'required|integer',
  64. 'deal_idea' => 'required|string',
  65. 'deal_department_id' => 'required|integer',
  66. 'deal_limit_day' => 'required|integer',
  67. ], [
  68. 'category_id' => '分类',
  69. 'deal_idea' => '处理意见',
  70. 'deal_department_id' => '指派处理部门',
  71. 'deal_limit_day' => '处理期限(天)',
  72. ]);*/
  73. $data = $this->validateData($request, [
  74. 'id' => 'required|integer',
  75. 'category_id' => 'required|integer',
  76. 'reason' => 'nullable',
  77. 'multiData' => 'required|array',
  78. 'multiData.*.department_id' => 'required|integer',
  79. 'multiData.*.limit_day' => 'required|integer',
  80. 'multiData.*.body' => 'required',
  81. 'multiData.*.claim' => 'nullable',
  82. ], [
  83. 'reason' => '原因',
  84. 'category_id' => '分类',
  85. 'multiData' => '多部门协调数据',
  86. ]);
  87. /**
  88. * 修改-mead
  89. * --已修改
  90. */
  91. $complaint = $this->complaintService->handleUpdate($data);
  92. if ($complaint) {
  93. return $this->response->success($complaint, '指派成功');
  94. } else {
  95. return $this->response->success($complaint, '该投诉已经指派', ResponseCodeEnum::SERVICE_OPERATION_ERROR);
  96. }
  97. }
  98. /**
  99. * 删除
  100. * @param Request $request
  101. */
  102. public function destroy(Request $request)
  103. {
  104. $this->validate($request, ['id' => 'required|integer']);
  105. $re = $this->complaintService->handleDelete($request->get('id'));
  106. if ($re) {
  107. return $this->response->ok('删除成功');
  108. }
  109. return $this->response->fail('删除失败');
  110. }
  111. /**
  112. * 吹哨处理完结消息通知--员工端
  113. * @param Request $request
  114. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  115. */
  116. public function messagesAdmin(Request $request)
  117. {
  118. $data = $this->complaintService->messagesAdmin($request);
  119. return $this->response->success($data);
  120. }
  121. /**
  122. * 吹哨处理完结消息详情--员工端
  123. * @param Request $request
  124. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  125. */
  126. public function messageAdmin(Request $request)
  127. {
  128. $req = $this->validateData($request, [
  129. 'id' => 'required|integer',
  130. ], [
  131. 'id' => 'id',
  132. ]);
  133. $resp = $this->complaintService->messageAdmin($req);
  134. return $this->response->success($resp, '查询成功');
  135. }
  136. /**
  137. * 用户投诉数量查询--员工端
  138. * @param Request $request
  139. *
  140. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  141. * @throws \Prettus\Validator\Exceptions\ValidatorException
  142. */
  143. public function complaintNums(Request $request)
  144. {
  145. $data = $this->complaintService->complaintNums($request);
  146. return $this->response->success($data);
  147. }
  148. }