Complaint.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use Exception;
  5. use app\admin\model\Complaint as ComplaintModel;
  6. use app\admin\validate\ComplaintValidate;
  7. /**
  8. * 客服投诉列表
  9. */
  10. class Complaint extends BaseController
  11. {
  12. /**
  13. * @api {get} /complaint/list 列表
  14. */
  15. function list()
  16. {
  17. try {
  18. $params = $this->request->param();
  19. $page = $params['page'] ?? 1;
  20. $limit = $params['limit'] ?? 15;
  21. $language_code = $params['language_code'] ?? $this->lang;
  22. $query = ComplaintModel::alias('complaint')
  23. ->join(env('database.DATABASE').'.bot_users user', 'complaint.cs_uid = user.user_id', 'left');
  24. // ->join('user', 'user.user_id=complaint.cs_uid','left');
  25. //->where('complaint.language_code', $language_code);
  26. if (!empty($params['keyword'])) {
  27. $query = $query->where('user.realname', 'like', '%'.$params['keyword'].'%')
  28. ->whereOr('user.phone', 'like', '%'.$params['keyword'].'%');
  29. }
  30. if (!empty($params['complaint_item_id'])) {
  31. $query = $query->where('complaint.complaint_item_id', $params['complaint_item_id']);
  32. }
  33. if (isset($params['status'])) {
  34. $query = $query->where('complaint.status', $params['status']);
  35. }
  36. if (!empty($params['start_time'])) {
  37. $query = $query->where('complaint.created_at', '>=', $params['start_time'] . ' 00:00:00');
  38. }
  39. if (!empty($params['end_time'])) {
  40. $query = $query->where('complaint.created_at', '<=', $params['end_time'] . ' 23:59:59');
  41. }
  42. $count = $query->count();
  43. $list = $query->with(['complaint_item', 'user', 'operation'])
  44. ->field(['complaint.*', 'user.realname','user.phone'])
  45. ->order('complaint.created_at','desc')
  46. ->limit($limit)
  47. ->page($page)
  48. ->select();
  49. } catch (Exception $e) {
  50. return $this->error($e->getMessage());
  51. }
  52. return $this->success(['count' => $count, 'list' => $list]);
  53. }
  54. //编辑
  55. public function update()
  56. {
  57. try {
  58. $params = (new ComplaintValidate())->post()->goCheck('edit');
  59. $id = $this->request->param('id',0);
  60. $result = $params['result'] ?? '';
  61. $complaint = ComplaintModel::where('id', $id)->find();
  62. if (!$complaint) {
  63. return $this->error('投诉项不存在');
  64. }
  65. if ($complaint->status == 1) {
  66. return $this->error('已处理');
  67. }
  68. $complaint->result = $result;
  69. $complaint->status = 1;
  70. $complaint->operation_id = $this->admin_id;
  71. $complaint->save();
  72. } catch (Exception $e) {
  73. return $this->error($e->getMessage());
  74. }
  75. return $this->success([], '操作成功');
  76. }
  77. }