// +---------------------------------------------------------------------- namespace app\admin\model\live; /** * 直播间评论表 */ use basic\ModelBasic; use traits\ModelTrait; class LiveBarrage extends ModelBasic { use ModelTrait; /* * 设置where条件 * @param array $where 查询条件 * @param object $model 模型实例化对象 * @param string $alias 表别名 * @param string $jsonField json 模糊查询字段 * @return object * */ public static function setWhere($where, $model = null, $alias = '', $jsonField = '') { $model = is_null($model) ? new self() : $model; if ($alias) { $model = $model->alias($alias); $alias .= '.'; } if ($where['nickname']) $model = $model->where("{$alias}barrage" . ($jsonField ? '|' . $jsonField : ""), 'like', "%$where[nickname]%"); if ($where['live_id']) $model = $model->where("{$alias}live_id", $where['live_id']); if ($where['start_time'] && $where['end_time']) $model = $model->where("{$alias}add_time", 'between', [strtotime($where['start_time']), strtotime($where['end_time'])]); return $model; } /* * 查询评论列表 * @param array $where 查询条件 * @return array * */ public static function getLiveCommentList($where) { $data = self::setWhere($where, null, 'a', 'u.nickname')->join('user u', 'u.uid=a.uid')->field(['a.*', 'u.avatar', 'u.nickname']) ->page((int)$where['page'], (int)$where['limit'])->order('id', 'desc')->select(); $data = count($data) ? $data->toArray() : []; foreach ($data as &$item) { $type = LiveHonouredGuest::where(['uid' => $item['uid'], 'live_id' => $where['live_id']])->value('type'); if ($type === null) $item['type_name'] = '听众'; else if ($type === 1) $item['type_name'] = '讲师'; else if ($type === 0) $item['type_name'] = '助教'; $item['add_time'] = date('Y-m-d H:i:s', $item['add_time']); } $count = self::setWhere($where, null, 'a', 'u.nickname')->join('user u', 'u.uid=a.uid')->count(); return compact('data', 'count'); } }