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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。