QuestionAnswer.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. namespace app\admin\controller\base\question;
  3. /**
  4. * @title: 帮助中心-问题回复
  5. * @Description:
  6. * @Author: goldenrock 112049337@qq.com
  7. * @Date: 2024-06-12 10:27:56
  8. * @LastEditTime: 2024-06-13 15:03:57
  9. * @LastEditors: goldenrock 112049337@qq.com
  10. * @FilePath: \Equipment_Admine:\HBDRWHCODE\IDDSERVER_dev\app\admin\controller\base\question\QuestionAnswer.php
  11. */
  12. use app\admin\controller\Base;
  13. use app\common\model\base\question\QuestionAnswer as QuestionAnswerModel;
  14. class QuestionAnswer extends Base
  15. {
  16. public function initialize()
  17. {
  18. parent::initialize();
  19. $this->model = new QuestionAnswerModel;
  20. }
  21. public function createWhere()
  22. {
  23. $data = $this->request->param();
  24. $where = [];
  25. $whereOr = [];
  26. return ['where'=>$where,'whereOr'=>$whereOr];
  27. }
  28. public function getList(int $pageNo=0,int $pageSize=10)
  29. {
  30. $whereAry = $this->createWhere();
  31. if(!empty($pageNo)){
  32. $res = $this->model->where($whereAry['where'])->where(function($query)use($whereAry){
  33. $query->where($whereAry['whereOr']);
  34. })->with([])->paginate(['page'=>$pageNo,'list_rows'=>$pageSize]);
  35. return pageRes(1,'获取成功',$res->total(),$res->items());
  36. }else{
  37. $list = $this->model->where($whereAry['where'])->where(function($query)use($whereAry){
  38. $query->where($whereAry['whereOr']);
  39. })->with([])->select();
  40. return res(1,'获取成功',$list);
  41. }
  42. }
  43. /**
  44. * @title:选择器数据
  45. * @desc: 描述
  46. * @return {*}
  47. * @author: 系统开发
  48. * @method: POST
  49. * @Date: 2024-06-12 16:37:22
  50. */
  51. public function getTree($labelField='content')
  52. {
  53. $fields = ['id',$labelField];
  54. $where = [];
  55. $list = $this->model->where($where)->field($fields)->select();
  56. return res(1,"获取成功",$list);
  57. }
  58. /**
  59. * @title:查询信息
  60. * @desc: 描述
  61. * @param {int} {id} {} {信息ID}
  62. * @return {*}
  63. * @author: 系统开发
  64. * @method: POST
  65. * @Date: 2024-06-12 16:37:22
  66. */
  67. public function getInfo(int $id=0)
  68. {
  69. $info = $this->model->with([])->find($id);
  70. return res(1,'获取成功',$info);
  71. }
  72. /**
  73. * @title:新增/编辑信息
  74. * @desc: 描述
  75. * @param {int} {id} {} {主键ID,不传或传0表示新增,大于0表示修改}
  76. * @param {varchar} {content} {} {问题内容}
  77. * @param {int} {type_id} {} {问题类型}
  78. * @return {*}
  79. * @author: 系统开发
  80. * @method: POST
  81. * @Date: 2024-06-12 16:37:22
  82. */
  83. public function doEdit()
  84. {
  85. $data = $this->request->param();
  86. $data['uid'] = $this->userinfo->user_id;
  87. $res = $this->model->replace()->save($data);
  88. return res(1,'编辑成功');
  89. }
  90. /**
  91. * @title:删除信息
  92. * @desc: 描述
  93. * @param {int} {id} {} {信息ID}
  94. * @return {*}
  95. * @author: 系统开发
  96. * @method: POST
  97. * @Date: 2024-06-12 16:37:22
  98. */
  99. public function doDelete(int $id=0)
  100. {
  101. $info = $this->model->find($id);
  102. $info->delete();
  103. return res(1,'删除成功');
  104. }
  105. /**
  106. * @title:获取可选项
  107. * @desc: 描述
  108. * @return {*}
  109. * @author: 系统开发
  110. * @method: POST
  111. * @Date: 2023-07-06 16:37:22
  112. */
  113. public function getOptions()
  114. {
  115. $data = [
  116. ];
  117. return res(1,'获取成功',$data);
  118. }
  119. public function doLike(int $id = 0)
  120. {
  121. $user_id = $this->userinfo->user_id;
  122. $info = $this->model->find($id);
  123. $likes = $info->likes;
  124. $dislikes = $info->dislikes;
  125. $likes[] = $user_id;
  126. $likes = array_unique($likes);
  127. if(($key = array_search($user_id,$dislikes))!==false){
  128. unset($dislikes[$key]);
  129. }
  130. $info->likes = $likes;
  131. $info->dislikes = array_values($dislikes);
  132. $info->save();
  133. return res(1,"点赞成功");
  134. }
  135. public function doDislike(int $id = 0)
  136. {
  137. $user_id = $this->userinfo->user_id;
  138. $info = $this->model->find($id);
  139. $likes = $info->likes;
  140. $dislikes = $info->dislikes;
  141. $dislikes[] = $user_id;
  142. $dislikes = array_unique($dislikes);
  143. if(($key = array_search($user_id,$likes))!==false){
  144. unset($likes[$key]);
  145. }
  146. $info->likes = array_values($likes);
  147. $info->dislikes = $dislikes;
  148. $info->save();
  149. return res(1,"点踩成功");
  150. }
  151. public function __call($name,$arguments)
  152. {
  153. return res(2,"方法{$name}不存在");
  154. }
  155. }