'ID', 'mall_id' => 'Mall ID', 'uid' => '用户id', 'cid' => '评论的课程id', 'cpid' => '评论的章节id', 'content' => '评论内容', 'score' => '课程评分', 'is_anonymous' => '是否匿名,1:是,0:不是', 'is_shield' => '是否屏蔽评论,1:是,0:否', 'status' => '状态 0禁用,1启用,-1是删除', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } // 关联模型 public function getUser() { return $this->hasOne(User::class, ['id' => 'uid'])->select('nickname,avatar_url,id'); } public static function setData(array $params) { try { if (!empty($params['id'])) { $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['id'], 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]); if (empty($model)) throw new \Exception('服务不存在或已删除'); } else { $model = new self(); $model->loadDefaultValues(); } if (!empty($params['content'])) { $params['content'] = json_encode($params['content']); } if (!$model->load($params, '')) throw new \Exception($model->getErrorMessage()); if (!$model->save()) throw new \Exception($model->getErrorMessage()); return $model; } catch (\Exception $e) { self::$static_error = $e->getMessage(); return false; } } /** * @name: allDiscussList * @msg: 获取某一课程下所有评论,如果是匿名的,处理用户名和头像 * @param {Int} $course_id * @param {Int} $pageSize * @return {*} */ public static function allDiscussList(int $course_id, $mall_id) { if (empty($course_id)) { // 返回 空数组 $course_id = 0; } $where[] = ['status' => StatusEnum::ENABLED, 'mall_id' => $mall_id, 'cid' => $course_id, 'is_shield' => CourseEnum::IS_SHIELD_ZERO]; $params['where'] = $where; $params['with'] =['user']; $params['select'] = 'id,uid,cid as course_id,content,score,is_anonymous,created_at'; $params['order'] = 'created_at desc'; $params['page'] = \Yii::$app->request->get('page', 1); $params['limit'] = \Yii::$app->request->get('limit', 20); $discuss_data = self::listPage($params); if (!empty($discuss_data)) { $base_url = \yii\helpers\Url::home(true); // 处理匿名评论 foreach ($discuss_data['list'] as $dk => &$dv) { $discuss_data['list'][$dk]['content'] = self::decodeContent($dv['content']); if (0 === (int)$dv['uid']) { $dv['username'] = $discuss_data['list'][$dk]['nickname'] = '系统管理员'; $discuss_data['list'][$dk]['avatar_url'] = $base_url . '/static/images/login/user.png'; $discuss_data['list'][$dk]['user_id'] = 0; } if (1 == $dv['is_anonymous']) { $dv['nickname'] = '**匿名用户**'; $dv['avatar_url'] = $base_url . 'static/images/login/user.png'; $dv['user'] = ''; } unset($discuss_data['list'][$dk]['uid'], $discuss_data['list'][$dk]['is_anonymous']); } } return $discuss_data; } public static function decodeContent($content) { if (empty($content)) { return $content; } return json_decode($content); } }