|
@@ -955,7 +955,8 @@ class ChatService implements ChatServiceInterface
|
|
|
{
|
|
|
$result = ChatTopic::where(['chat_topics.id' => $data['id']])
|
|
|
->leftJoin('user', 'user.id', '=', 'chat_topics.user_id')
|
|
|
- ->select('chat_topics.*', 'user.nickname', 'user.avatar', 'user.user_name')
|
|
|
+ ->leftJoin('chat_topic_class', 'chat_topic_class.id', '=', 'chat_topics.type')
|
|
|
+ ->select('chat_topics.*', 'user.nickname', 'user.avatar', 'user.user_name','chat_topic_class.topicname')
|
|
|
->first();
|
|
|
return Result::success($result);
|
|
|
}
|
|
@@ -1167,4 +1168,44 @@ class ChatService implements ChatServiceInterface
|
|
|
$result = ChatTopicClass::where(['id' => $data['id']])->first();
|
|
|
return Result::success($result);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getBusinessDistrictList(array $data): array
|
|
|
+ {
|
|
|
+ $query = ChatGroupsMember::Join('chat_topics', 'chat_topics.group_id', '=', 'chat_groups_members.group_id')
|
|
|
+ ->leftJoin('chat_topic_class', 'chat_topic_class.id', '=', 'chat_topics.type')
|
|
|
+ ->where(['chat_groups_members.user_id' => $data['user_id']])
|
|
|
+ ->when($data, function ($query) use ($data) {
|
|
|
+ if(!empty($data['type'])){
|
|
|
+ $query->where(['chat_topics.type' => $data['type']]);
|
|
|
+ }
|
|
|
+ if(!empty($data['title'])){
|
|
|
+ $query->where('chat_topics.title','like','%'.$data['title'].'%');
|
|
|
+ }
|
|
|
+ if(!empty($data['created_at'])){
|
|
|
+ $query->whereDate('chat_topics.created_at', $data['created_at']);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ->select(
|
|
|
+ 'chat_topics.id',
|
|
|
+ 'chat_topics.title',
|
|
|
+ 'chat_topics.author',
|
|
|
+ 'chat_topics.created_at',
|
|
|
+ 'chat_topics.updated_at',
|
|
|
+ 'chat_topic_class.topicname',
|
|
|
+ )
|
|
|
+ ->orderBy('chat_topics.created_at', 'desc');
|
|
|
+ $total = $query->count();
|
|
|
+ $list = $query->forPage($data['page'], $data['page_size'])->get();
|
|
|
+ $result = [
|
|
|
+ 'list' => $list,
|
|
|
+ 'total' => $total,
|
|
|
+ 'page' => intval($data['page']),
|
|
|
+ 'page_size' => intval($data['page_size']),
|
|
|
+ ];
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
}
|