UserComplaintController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace plugin\saiadmin\app\controller\user;
  3. use plugin\saiadmin\app\logic\user\UserComplaintLogic;
  4. use plugin\saiadmin\basic\BaseController;
  5. use plugin\saiadmin\service\Permission;
  6. use support\Request;
  7. use support\Response;
  8. /** 微信支付用户投诉控制器。 */
  9. class UserComplaintController extends BaseController
  10. {
  11. public function __construct()
  12. {
  13. $this->logic = new UserComplaintLogic();
  14. parent::__construct();
  15. }
  16. #[Permission('用户投诉配置选项', 'core:user:complaint:configs')]
  17. public function configs(Request $request): Response
  18. {
  19. return $this->success($this->logic->configOptions());
  20. }
  21. #[Permission('用户投诉列表', 'core:user:complaint:index')]
  22. public function index(Request $request): Response
  23. {
  24. return $this->success($this->logic->indexList($request->more([
  25. ['config_id', 0], ['start_date', ''], ['end_date', ''],
  26. ])));
  27. }
  28. #[Permission('用户投诉详情', 'core:user:complaint:read')]
  29. public function read(Request $request): Response
  30. {
  31. return $this->success($this->logic->detail(
  32. (int) $request->input('config_id', 0),
  33. (string) $request->input('complaint_id', '')
  34. ));
  35. }
  36. #[Permission('用户投诉协商记录', 'core:user:complaint:history')]
  37. public function history(Request $request): Response
  38. {
  39. return $this->success($this->logic->history(
  40. (int) $request->input('config_id', 0),
  41. (string) $request->input('complaint_id', '')
  42. ));
  43. }
  44. #[Permission('回复用户投诉', 'core:user:complaint:reply')]
  45. public function reply(Request $request): Response
  46. {
  47. $this->logic->reply($this->body($request));
  48. return $this->success('回复成功');
  49. }
  50. #[Permission('完结用户投诉', 'core:user:complaint:complete')]
  51. public function complete(Request $request): Response
  52. {
  53. $this->logic->complete($this->body($request));
  54. return $this->success('投诉已完结');
  55. }
  56. private function body(Request $request): array
  57. {
  58. $data = $request->post();
  59. if ($data === []) {
  60. $json = json_decode($request->rawBody(), true);
  61. return is_array($json) ? $json : [];
  62. }
  63. return $data;
  64. }
  65. }