src/Biz/Classroom/Dao/Impl/ClassroomDaoImpl.php

(开头部分) 2KB

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

<?php

namespace Biz\Classroom\Dao\Impl;

use Biz\Classroom\Dao\ClassroomDao;
use Codeages\Biz\Framework\Dao\AdvancedDaoImpl;
use AppBundle\Common\TimeMachine;

class ClassroomDaoImpl extends AdvancedDaoImpl implements ClassroomDao
{
    protected $table = 'classroom';

    public function getByTitle($title)
    {
        $sql = "SELECT * FROM {$this->table} where title=? LIMIT 1";

        return $this->db()->fetchAssoc($sql, array($title));
    }

    public function search($conditions, $orderBy, $start, $limit, $columns = array())
    {
        if (array_key_exists('studentNum', $orderBy) && array_key_exists('lastDays', $conditions) && $conditions['lastDays'] > 0) {
            $timeRange = TimeMachine::getTimeRangeByDays($conditions['lastDays']);

            return $this->searchByStudentNumAndTimeRange($conditions, $timeRange, $orderBy['studentNum'], $start, $limit);
        }

        if (array_key_exists('rating', $orderBy) && array_key_exists('lastDays', $conditions) && $conditions['lastDays'] > 0) {
            $timeRange = TimeMachine::getTimeRangeByDays($conditions['lastDays']);

            return $this->searchByRatingAndTimeRange($conditions, $timeRange, $orderBy['rating'], $start, $limit);
        }

        return parent::search($conditions, $orderBy, $start, $limit, $columns = array());
    }

    /**
     *  根据一段时间内的加入人数排序
     *
        SELECT classroom_member.studentNumCount, classroom.*
        FROM (classroom classroom)
            LEFT JOIN (
                SELECT COUNT(id) AS studentNumCount, classroomId
                FROM `classroom_member`
                WHERE `role` LIKE '%|student|%'
                    AND createdTime >= 1533312000
                    AND createdTime <= 1542211200
                GROUP BY classroomId
            ) classroom_member
            ON classroom.id = classroom_member.classroomId
        WHERE classroom.status = :status
            AND classroom.showable = :showable
        ORDER BY classroom_member.studentNumCount DESC
        LIMIT 0, 15
     */
    protected function searchByStudentNumAndTimeRange($conditions, $timeRange, $orderBy = 'DESC', $start, $limit)
    {
        $classroomMemberTable = $this->getClassroomMemberDao()->table();

        $builder = $this->createQueryBuilder($conditions)

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

AI 解读 AI

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

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