api/src/Topxia/Api/Resource/CoursesLearnProgress.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Resource;
use Biz\Course\Service\Impl\CourseServiceImpl;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
class CoursesLearnProgress extends BaseResource
{
public function get(Application $app, Request $request)
{
$courseIds = $request->query->get('courseIds', 0);
$currentUser = $this->getCurrentUser();
$courseIds = explode(',', $courseIds);
$progressData = $this->calculateLearnProgressByUserIdAndCourseIds($currentUser['id'], $courseIds);
return $this->wrap($progressData, count($progressData));
}
public function filter($res)
{
return $res;
}
protected function calculateLearnProgressByUserIdAndCourseIds($userId, array $courseIds)
{
if (empty($userId) || empty($courseIds)) {
return array();
}
$courses = $this->getCourseService()->findCoursesByIds($courseIds);
$courseTaskCount = array();
foreach ($courses as $course) {
$conditions = array(
'courseId' => $course['id'],
'status' => 'published'
);
if ($course['type'] == 'live') {
$conditions['types'] = array('testpaper','live');
} else {
$conditions['types'] = array('testpaper','video','audio','text','flash','ppt','doc');
}
$courseTaskCount[$course['id']] = $this->getTaskService()->countTasks($conditions);
}
$conditions = array(
'courseIds' => $courseIds,
'userId' => $userId,
);
$count = $this->getMemberService()->countMembers($conditions);
$members = $this->getMemberService()->searchMembers(
$conditions,
array('id' => 'DESC'),
0,
$count
);
$learnProgress = array();
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。