DiscussController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace addons\Course\backend\controllers;
  3. use addons\Course\common\models\AddonsCourse;
  4. use addons\Course\common\models\AddonsCourseDiscuss;
  5. use common\enums\StatusEnum;
  6. use common\models\user\User;
  7. class DiscussController extends BaseController
  8. {
  9. public function actionIndex()
  10. {
  11. if (\Yii::$app->request->isAjax) {
  12. if (\Yii::$app->request->isGet) {
  13. $params = \Yii::$app->request->get();
  14. $where[] = ['mall_id' => $this->mall_id];
  15. $where[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  16. if (!empty($params['keyword'])) {
  17. $course_list = AddonsCourse::lists(['where' => [['like', 'name', $params['keyword'] . '%', false]], 'select' => 'id']);
  18. $cid = array_column($course_list, 'id');
  19. $where[] = ['cid' => $cid];
  20. }
  21. $params = [
  22. 'where' => $where,
  23. 'order' => 'created_at desc'
  24. ];
  25. $page_data = AddonsCourseDiscuss::listPage($params);
  26. if (!empty($page_data['list'])) {
  27. $user_id_arr = array_column($page_data['list'], 'uid');
  28. $c_id_arr = array_column($page_data['list'], 'cid');
  29. $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
  30. $course_list = AddonsCourse::lists(['where' => [['id' => $c_id_arr]], 'index' => 'id', 'select' => 'id,name']);
  31. foreach ($page_data['list'] as &$item) {
  32. strpos($item['content'], '"') !== false && $item['content'] = json_decode($item['content']);
  33. $item['course_name'] = '';
  34. $item['nickname'] = '';
  35. $item['avatar_url'] = '';
  36. $item['mobile'] = '';
  37. if (isset($course_list[$item['cid']])) $item['course_name'] = $course_list[$item['cid']]['name'];
  38. if (isset($user_list[$item['uid']])) {
  39. $item['nickname'] = $user_list[$item['uid']]['nickname'];
  40. $item['avatar_url'] = $user_list[$item['uid']]['avatar_url'];
  41. $item['mobile'] = $user_list[$item['uid']]['mobile'];
  42. }
  43. }
  44. }
  45. return $this->success('success', $page_data);
  46. } else {
  47. return $this->error('请求方式错误');
  48. }
  49. } else {
  50. return $this->render('index');
  51. }
  52. }
  53. public function actionEdit()
  54. {
  55. if (\Yii::$app->request->isAjax) {
  56. if (\Yii::$app->request->isGet) {
  57. $params = \Yii::$app->request->get();
  58. $discuss_info = '';
  59. if (!empty($params['id'])) $discuss_info = AddonsCourseDiscuss::getOne([['id' => $params['id'], 'mall_id' => $this->mall_id]], true);
  60. $course_list = AddonsCourse::lists([
  61. 'where' => [
  62. ['mall_id' => $this->mall_id],
  63. ['status' => StatusEnum::ENABLED]
  64. ],
  65. 'select' => 'id,name'
  66. ]);
  67. $data['discuss_info'] = $discuss_info;
  68. $data['course_list'] = $course_list;
  69. return $this->success('success', $data);
  70. } else {
  71. $params = \Yii::$app->request->post();
  72. $res = \Yii::$app->services->validate->validate($params, [
  73. [['cid','content','score'], 'required'],
  74. [['id','is_anonymous'], 'integer']
  75. ]);
  76. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  77. $params['mall_id'] = $this->mall_id;
  78. $params['cpid'] = 0;
  79. $res = AddonsCourseDiscuss::setData($params);
  80. if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
  81. return $this->success('操作成功');
  82. }
  83. } else {
  84. return $this->render('edit');
  85. }
  86. }
  87. public function actionSwitchShield()
  88. {
  89. $post = \Yii::$app->request->post();
  90. $params['id'] = $post['id'];
  91. $params['mall_id'] = $this->mall_id;
  92. $params['is_shield'] = $post['val'];
  93. $res = AddonsCourseDiscuss::setData($params);
  94. if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
  95. return $this->success('操作成功');
  96. }
  97. public function actionDelete()
  98. {
  99. $post = \Yii::$app->request->post();
  100. $params['id'] = $post['id'];
  101. $params['mall_id'] = $this->mall_id;
  102. $params['status'] = StatusEnum::DELETE;
  103. $res = AddonsCourseDiscuss::setData($params);
  104. if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
  105. return $this->success('操作成功');
  106. }
  107. }