src/Biz/Classroom/Event/ClassroomThreadEventProcessor.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\Classroom\Event;

use Codeages\Biz\Framework\Event\Event;
use Codeages\PluginBundle\Event\EventSubscriber;

class ClassroomThreadEventProcessor extends EventSubscriber
{
    public function onThreadCreate(Event $event)
    {
        $thread = $event->getSubject();
        $this->getClassroomService()->waveClassroom($thread['targetId'], 'threadNum', +1);
    }

    public function onThreadDelete(Event $event)
    {
        $thread = $event->getSubject();
        $this->getClassroomService()->waveClassroom($thread['targetId'], 'threadNum', -1);
        $this->getClassroomService()->waveClassroom($thread['targetId'], 'postNum', 0 - $thread['postNum']);
    }

    public function onPostCreate(Event $event)
    {
        $post = $event->getSubject();
        $this->getClassroomService()->waveClassroom($post['targetId'], 'postNum', +1);

        $isTeacher = $this->getClassroomService()->isClassroomTeacher($post['targetId'], $post['userId']);

        if ($isTeacher) {
            $this->getThreadService()->setPostAdopted($post['id']);
            $this->getThreadService()->setThreadSolved($post['threadId']);
        }
    }

    public function onPostDelete(Event $event)
    {
        $post = $event->getSubject();
        $this->getClassroomService()->waveClassroom($post['targetId'], 'postNum', 0 - $event->getArgument('deleted'));

        $adoptedPostCount = $this->getThreadService()->searchPostsCount(array(
            'threadId' => $post['threadId'],
            'adopted' => 1,
        ));

        if (empty($adoptedPostCount)) {
            $this->getThreadService()->cancelThreadSolved($post['threadId']);
        }
    }

    private function getClassroomService()
    {
        return $this->getBiz()->service('Classroom:ClassroomService');
    }

    private function getThreadService()
    {
        return $this->getBiz()->service('Thread:ThreadService');
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

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