src/Biz/Course/Dao/Impl/LearningDataAnalysisDaoImpl.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Course\Dao\Impl;
use Biz\Course\Dao\LearningDataAnalysisDao;
use Codeages\Biz\Framework\Dao\GeneralDaoImpl;
class LearningDataAnalysisDaoImpl extends GeneralDaoImpl implements LearningDataAnalysisDao
{
protected $course_member = 'course_member';
protected $course = 'course_v8';
public function declares()
{
return array(
);
}
public function sumStatisticDataByCourseIdsAndUserId($courseIds, $userId)
{
if (empty($courseIds)) {
return array('compulsoryTaskNum' => 0, 'learnedCompulsoryTaskNum' => 0);
}
$marks = str_repeat('?,', count($courseIds) - 1).'?';
$sql = "SELECT SUM(c.compulsoryTaskNum) as compulsoryTaskNum,SUM(cm.learnedCompulsoryTaskNum) as learnedCompulsoryTaskNum FROM {$this->course} c JOIN {$this->course_member} cm ON c.id = cm.courseId WHERE cm.courseId IN ({$marks}) AND cm.userId = ?";
return $this->db()->fetchAssoc($sql, array_merge($courseIds, array($userId)));
}
/**
* 批量更新计数
*
* @param $courseId
* @param $userIds
*/
public function batchRefreshUserLearningData($courseId, $userIds)
{
$userIds = implode(',', array_map('intval', $userIds));
$courseId = intval($courseId);
$sql = "UPDATE `course_member` AS cm SET learnedNum = (SELECT COUNT(ctr1.id) FROM course_task AS ct1 JOIN `course_task_result` AS ctr1 ON ct1.id = ctr1.courseTaskId WHERE ctr1.userId = cm.userId AND ctr1.courseId = cm.courseId AND ctr1.status = 'finish'), learnedCompulsoryTaskNum = (SELECT COUNT(ctr2.id) FROM course_task AS ct JOIN course_task_result AS ctr2 ON ct.id = ctr2.courseTaskId WHERE ctr2.userId = cm.userId AND ct.courseId = cm.courseId AND ctr2.status = 'finish' AND ct.isOptional = 0) WHERE cm.courseId = {$courseId} AND cm.userId IN ({$userIds})";
return $this->db()->executeUpdate($sql, array($courseId));
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。