ComplaintItem.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use Exception;
  5. use app\admin\model\ComplaintItem as ComplaintItemModel;
  6. use app\admin\validate\ComplaintItemValidate;
  7. /**
  8. * 投诉项
  9. */
  10. class ComplaintItem extends BaseController
  11. {
  12. /**
  13. * @api {get} /complaintitem/list 列表
  14. */
  15. function list()
  16. {
  17. try {
  18. $params = $this->request->param();
  19. $page = isset($params['page']) ? intval($params['page']) : 1;
  20. $limit = isset($params['limit']) ? intval($params['limit']) : 15;
  21. $language_code = $params['language_code'] ?? $this->lang;
  22. $query = ComplaintItemModel::where('language_code', $language_code);
  23. if (!empty($params['name'])) {
  24. $query = $query->where('name', 'like', '%'.$params['name'].'%');
  25. }
  26. $count = $query->count();
  27. $list = $query->order('weight','desc')
  28. ->limit($limit)
  29. ->page($page)
  30. ->select();
  31. $levelList = ComplaintItemModel::levelList($language_code, false);
  32. foreach($list as &$item) {
  33. $item->level_name = isset($levelList[$item->level]) ? $levelList[$item->level] : '';
  34. }
  35. } catch (Exception $e) {
  36. return $this->error($e->getMessage());
  37. }
  38. return $this->success(['levelList' => ComplaintItemModel::levelList($language_code, true), 'count' => $count, 'list' => $list]);
  39. }
  40. //新增/编辑
  41. public function update()
  42. {
  43. try {
  44. $params = (new ComplaintItemValidate)->post()->goCheck('edit');
  45. $id = $this->request->param('id',0);
  46. $language_code = $params['language_code'] ?? $this->lang;
  47. $exists = ComplaintItemModel::where('name', $params['name'])->where('language_code', $language_code)->find();
  48. if ($exists ) {
  49. if (!$id || $id != $exists->id) {
  50. return $this->error('投诉项已存在');
  51. }
  52. }
  53. if (empty($id)) {
  54. $complaintItem = new ComplaintItemModel();
  55. } else {
  56. $complaintItem = ComplaintItemModel::where('id', $id)->find();
  57. if (!$complaintItem) {
  58. return $this->error('投诉项不存在');
  59. }
  60. }
  61. $complaintItem->name = $params['name'];
  62. $complaintItem->level = $params['level'];
  63. $complaintItem->weight = $params['weight'];
  64. $complaintItem->language_code = $language_code;
  65. $complaintItem->save();
  66. } catch (Exception $e) {
  67. return $this->error($e->getMessage());
  68. }
  69. return $this->success([], '操作成功');
  70. }
  71. //删除
  72. public function delete()
  73. {
  74. try {
  75. $params = $params = (new ComplaintItemValidate)->goCheck('id');
  76. $info = ComplaintItemModel::where('id', $params['id'])->find();
  77. if (!$info) {
  78. return $this->error('投诉项不存在');
  79. }
  80. $info->delete();
  81. } catch (Exception $e) {
  82. return $this->error($e->getMessage());
  83. }
  84. return $this->success([],'删除成功');
  85. }
  86. }