| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace addons\Course\backend\controllers;
- use addons\Course\common\models\AddonsCourse;
- use addons\Course\common\models\AddonsCourseDiscuss;
- use common\enums\StatusEnum;
- use common\models\user\User;
- class DiscussController extends BaseController
- {
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- if (!empty($params['keyword'])) {
- $course_list = AddonsCourse::lists(['where' => [['like', 'name', $params['keyword'] . '%', false]], 'select' => 'id']);
- $cid = array_column($course_list, 'id');
- $where[] = ['cid' => $cid];
- }
- $params = [
- 'where' => $where,
- 'order' => 'created_at desc'
- ];
- $page_data = AddonsCourseDiscuss::listPage($params);
- if (!empty($page_data['list'])) {
- $user_id_arr = array_column($page_data['list'], 'uid');
- $c_id_arr = array_column($page_data['list'], 'cid');
- $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']);
- $course_list = AddonsCourse::lists(['where' => [['id' => $c_id_arr]], 'index' => 'id', 'select' => 'id,name']);
- foreach ($page_data['list'] as &$item) {
- strpos($item['content'], '"') !== false && $item['content'] = json_decode($item['content']);
- $item['course_name'] = '';
- $item['nickname'] = '';
- $item['avatar_url'] = '';
- $item['mobile'] = '';
- if (isset($course_list[$item['cid']])) $item['course_name'] = $course_list[$item['cid']]['name'];
- if (isset($user_list[$item['uid']])) {
- $item['nickname'] = $user_list[$item['uid']]['nickname'];
- $item['avatar_url'] = $user_list[$item['uid']]['avatar_url'];
- $item['mobile'] = $user_list[$item['uid']]['mobile'];
- }
- }
- }
- return $this->success('success', $page_data);
- } else {
- return $this->error('请求方式错误');
- }
- } else {
- return $this->render('index');
- }
- }
- public function actionEdit()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $discuss_info = '';
- if (!empty($params['id'])) $discuss_info = AddonsCourseDiscuss::getOne([['id' => $params['id'], 'mall_id' => $this->mall_id]], true);
- $course_list = AddonsCourse::lists([
- 'where' => [
- ['mall_id' => $this->mall_id],
- ['status' => StatusEnum::ENABLED]
- ],
- 'select' => 'id,name'
- ]);
- $data['discuss_info'] = $discuss_info;
- $data['course_list'] = $course_list;
- return $this->success('success', $data);
- } else {
- $params = \Yii::$app->request->post();
- $res = \Yii::$app->services->validate->validate($params, [
- [['cid','content','score'], 'required'],
- [['id','is_anonymous'], 'integer']
- ]);
- if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
- $params['mall_id'] = $this->mall_id;
- $params['cpid'] = 0;
- $res = AddonsCourseDiscuss::setData($params);
- if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
- return $this->success('操作成功');
- }
- } else {
- return $this->render('edit');
- }
- }
- public function actionSwitchShield()
- {
- $post = \Yii::$app->request->post();
- $params['id'] = $post['id'];
- $params['mall_id'] = $this->mall_id;
- $params['is_shield'] = $post['val'];
- $res = AddonsCourseDiscuss::setData($params);
- if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
- return $this->success('操作成功');
- }
- public function actionDelete()
- {
- $post = \Yii::$app->request->post();
- $params['id'] = $post['id'];
- $params['mall_id'] = $this->mall_id;
- $params['status'] = StatusEnum::DELETE;
- $res = AddonsCourseDiscuss::setData($params);
- if ($res === false) return $this->error(AddonsCourseDiscuss::getStaticError());
- return $this->success('操作成功');
- }
- }
|