GuessAsk.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use app\admin\model\GuessAsk as GuessAskModel;
  5. use app\admin\model\GuessAskLanguages;
  6. use app\admin\validate\GuessAskValidate;
  7. use Exception;
  8. /**
  9. * 猜你想问管理
  10. */
  11. class GuessAsk extends BaseController
  12. {
  13. /**
  14. * @api {get} /guessask/list 列表
  15. */
  16. function list()
  17. {
  18. try {
  19. $params = $this->request->param();
  20. $page = $params['page'] ?? 1;
  21. $limit = $params['limit'] ?? 15;
  22. $language_code = $params['language_code'] ?? $this->lang;
  23. $query = GuessAskLanguages::where('language_code', $language_code);
  24. if (!empty($params['name'])) {
  25. $query = $query->where('name', 'like', '%'.$params['name'].'%');
  26. }
  27. if (isset($params['type']) && $params['type'] != '') {
  28. $query = $query->where('type', $params['type']);
  29. }
  30. if (isset($params['is_rec']) && $params['is_rec'] != '') {
  31. $query = $query->where('is_rec', $params['is_rec']);
  32. }
  33. if (isset($params['is_top']) && $params['is_top'] != '') {
  34. $query = $query->where('is_top', $params['is_top']);
  35. }
  36. if (isset($params['status']) && $params['status'] != '') {
  37. $query = $query->where('status', $params['status']);
  38. }
  39. $count = $query->count();
  40. $list = $query->order('is_top','desc')
  41. ->order('click_num','desc')
  42. ->limit($limit)
  43. ->page($page)
  44. ->select();
  45. } catch (Exception $e) {
  46. return $this->error($e->getMessage());
  47. }
  48. $typeList = GuessAskLanguages::typeList();
  49. return $this->success(['typeList' => $typeList, 'count' => $count, 'list' => $list]);
  50. }
  51. //新增/编辑
  52. public function update()
  53. {
  54. try {
  55. $params = $this->request->param();
  56. $id = $params['id'] ?? 0;
  57. $status = $params['status'] ?? 1;
  58. $guess_ask_id = $params['guess_ask_id'] ?? 0;
  59. $language_code = $params['language_code'] ?? $this->lang;
  60. $exists = GuessAskLanguages::where('name', $params['name'])->where('language_code', $language_code)->find();
  61. if ($exists ) {
  62. if (!$id || $id != $exists->id) {
  63. return $this->error('关键词已存在');
  64. }
  65. }
  66. if (!$guess_ask_id) {
  67. $guess_ask = GuessAskModel::create([]);
  68. $guess_ask_id = $guess_ask->id;
  69. }
  70. if (empty($params['id'])) {
  71. $guessAskLanguages = new GuessAskLanguages();
  72. } else {
  73. $guessAskLanguages = GuessAskLanguages::where('id', $id)->find();
  74. if (!$guessAskLanguages) {
  75. return $this->error('关键词不存在');
  76. }
  77. }
  78. $guessAskLanguages->guess_ask_id = $guess_ask_id;
  79. $guessAskLanguages->name = $params['name'];
  80. $guessAskLanguages->type = $params['type'];
  81. $guessAskLanguages->weight = $params['weight'];
  82. $guessAskLanguages->status = $status;
  83. $guessAskLanguages->language_code = $language_code;
  84. $guessAskLanguages->save();
  85. } catch (Exception $e) {
  86. return $this->error($e->getMessage());
  87. }
  88. return $this->success([], '操作成功');
  89. }
  90. //删除
  91. public function delete()
  92. {
  93. try {
  94. $params = (new GuessAskValidate())->goCheck('id');
  95. $info = GuessAskLanguages::where('id', $params['id'])->find();
  96. if (!$info) {
  97. return $this->error('猜你想问不存在');
  98. }
  99. $guess_ask_id = $info->guess_ask_id;
  100. $info->delete();
  101. if (GuessAskLanguages::where('guess_ask_id', $guess_ask_id)->count() == 0) {
  102. GuessAskModel::where('id', $guess_ask_id)->delete();
  103. }
  104. } catch (Exception $e) {
  105. return $this->error($e->getMessage());
  106. }
  107. return $this->success([],'删除成功');
  108. }
  109. //设置状态、是否推荐、是否置顶
  110. public function setStatus()
  111. {
  112. try {
  113. $params = (new GuessAskValidate())->goCheck('status');
  114. $info = GuessAskLanguages::where('id', $params['id'])->find();
  115. if (!$info) {
  116. return $this->error('猜你想问不存在');
  117. }
  118. $field = $params['field'];
  119. $value = $info->$field == 0 ? 1 : 0;
  120. if ($field == 'is_top' && $value == 1) {
  121. GuessAskLanguages::where('is_top', 1)->update(['is_top' => 0]);
  122. }
  123. $info->$field = $value;
  124. $info->save();
  125. } catch (Exception $e) {
  126. return $this->error($e->getMessage());
  127. }
  128. return $this->success([], '操作成功');
  129. }
  130. }