Modules_Manage_Controllers_FeedbackController.proxy.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * 用户反馈控制器
  4. */
  5. declare (strict_types=1);
  6. namespace Modules\Manage\Controllers;
  7. use App\Model\FeedbackModel;
  8. use App\Repositories\FeedbackRepository;
  9. use Carbon\Carbon;
  10. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  11. class FeedbackController extends BaseController
  12. {
  13. use \Hyperf\Di\Aop\ProxyTrait;
  14. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  15. function __construct()
  16. {
  17. if (method_exists(parent::class, '__construct')) {
  18. parent::__construct(...func_get_args());
  19. }
  20. $this->__handlePropertyHandler(__CLASS__);
  21. }
  22. /**
  23. * 反馈列表
  24. * @param FeedbackRepository $feedbackRepository
  25. * @return mixed
  26. */
  27. public function list(ValidatorFactoryInterface $validatorFactory, FeedbackRepository $feedbackRepository)
  28. {
  29. $inputData = $this->getJsonData();
  30. $rules = ['name' => 'string', 'code' => 'string', 'content' => 'string', 'status' => 'numeric', 'page' => 'required|numeric', 'page_size' => 'required|numeric', 'user_id' => 'string'];
  31. $validator = $validatorFactory->make($inputData, $rules);
  32. if ($validator->fails()) {
  33. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  34. return json_fail($validator->errors()->first());
  35. }
  36. return json_success($feedbackRepository->getAdminList($inputData));
  37. }
  38. /**
  39. * 对话列表
  40. * @param FeedbackRepository $feedbackRepository
  41. * @return mixed
  42. */
  43. public function talkList(ValidatorFactoryInterface $validatorFactory, FeedbackRepository $feedbackRepository)
  44. {
  45. $inputData = $this->getJsonData();
  46. $rules = ['code' => 'required|string', 'page' => 'required|numeric', 'page_size' => 'required|numeric'];
  47. $validator = $validatorFactory->make($inputData, $rules);
  48. if ($validator->fails()) {
  49. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  50. return json_fail($validator->errors()->first());
  51. }
  52. $result = $feedbackRepository->getTalkList($inputData['code'], (int) $inputData['page'], (int) $inputData['page_size']);
  53. return json_success($result);
  54. }
  55. /**
  56. * 回复反馈
  57. */
  58. public function reply(ValidatorFactoryInterface $validatorFactory, FeedbackRepository $feedbackRepository)
  59. {
  60. $inputData = $this->getJsonData();
  61. $rules = ['uid' => 'required|string', 'type' => 'required|numeric', 'content' => 'required|string'];
  62. $validator = $validatorFactory->make($inputData, $rules);
  63. if ($validator->fails()) {
  64. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  65. return json_fail($validator->errors()->first());
  66. }
  67. $item = FeedbackModel::query()->where('uid', $inputData['uid'])->first();
  68. if (empty($item)) {
  69. return json_fail('数据不存在!');
  70. }
  71. $managerInfo = $this->getCurrentManagerInfo();
  72. $inputData['rid'] = $managerInfo['manager_id'];
  73. $create = $feedbackRepository->feedbackReply($inputData);
  74. return json_success($create);
  75. }
  76. /**
  77. * 标记状态
  78. */
  79. public function status(ValidatorFactoryInterface $validatorFactory)
  80. {
  81. $inputData = $this->getJsonData();
  82. $rules = ['code' => 'required|string'];
  83. $validator = $validatorFactory->make($inputData, $rules);
  84. if ($validator->fails()) {
  85. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  86. return json_fail($validator->errors()->first());
  87. }
  88. $item = FeedbackModel::query()->where('uid', $inputData['code'])->update(['status' => 1]);
  89. return json_success($item);
  90. }
  91. }