api/src/Topxia/Api/Resource/IM/Member.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Resource\IM;
use Silex\Application;
use Topxia\Api\Resource\BaseResource;
use Symfony\Component\HttpFoundation\Request;
class Member extends BaseResource
{
public function post(Application $app, Request $request)
{
$requiredFields = array('targetId', 'targetType');
$fields = $this->checkRequiredFields($requiredFields, $request->request->all());
$conversation = $this->getConversationService()->getConversationByTarget($fields['targetId'], $fields['targetType']);
$convNo = $conversation ? $conversation['no'] : '';
if ($fields['targetType'] == 'course') {
return $this->entryCourseConversation($fields['targetId'], $convNo);
} elseif ($fields['targetType'] == 'classroom') {
return $this->entryClassroomConversation($fields['targetId'], $convNo);
}
}
public function filter($res)
{
return $res;
}
protected function entryCourseConversation($courseId, $convNo)
{
$user = $this->getCurrentUser();
$course = $this->getCourseService()->getCourse($courseId);
if ($convNo) {
$convMember = $this->getConversationService()->getMemberByConvNoAndUserId($convNo, $user['id']);
if ($convMember) {
return array('convNo' => $convMember['convNo']);
}
$courseMember = $this->getCourseMemberService()->getCourseMember($courseId, $user['id']);
if (!$courseMember) {
return $this->error('4041901', '课程中没有该成员');
}
if ($this->getConversationService()->isImMemberFull($convNo, 500)) {
return $this->error('5003310', '会话人数已满');
}
try {
$convMember = $this->getConversationService()->joinConversation($convNo, $user['id']);
return array('convNo' => $convMember['convNo']);
} catch (\Exception $e) {
return $this->error($e->getCode(), $e->getMessage());
}
} else {
$courseMember = $this->getCourseMemberService()->getCourseMember($courseId, $user['id']);
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。