企培版学习时长排行榜业务分析与时长为0错误

企培版学习时长排行榜业务分析

数据库查询条件

user_daily_learn_record.learnTime

src/CorporateTrainingBundle/Biz/DataStatistics/Dao/Impl/UserDailyLearnRecordJoinUserDaoImpl.php

public function statisticsPersonLearnTimeRankingList(array $conditions, $start = 0, $limit = 5)
{
    $builder = $this->db()->createQueryBuilder()
        ->select('udlr.userId as userId, MAX(udlr.postId) as postId, SUM(udlr.learnTime)/COUNT(DISTINCT(uo.orgId)) as totalLearnTime')
        ->from('user_daily_learn_record', 'udlr')
        ->innerJoin('udlr', 'user', 'u', 'u.id=udlr.userId')
        ->innerJoin('udlr', 'user_org', 'uo', 'udlr.userId=uo.userId')
        ->where('u.locked = 0')
        ->andWhere('u.type != "system"')
        ->groupBy('userId')
        ->orderBy('totalLearnTime', 'DESC')
        ->setFirstResult($start)
        ->setMaxResults($limit);

    $builder = $this->addWhereToQueryBuilder($builder, $conditions);

    return $builder->execute()->fetchAll() ?: [];
}
course_task_trigger:
    path:  /course/{courseId}/task/{id}/trigger
    defaults: { _controller: AppBundle:Task:trigger }

启用方案

错误原因

因为视频类型的课时不提供更新的问题,怎么实现更新需要前端支持,替换后该方案无效

src/CorporateTrainingBundle/Biz/UserDailyLearnRecord/Event/UserDailyLearnRecordEventSubscriber.php

public function onWaveLearnTime(Event $event)
{
    $taskResultId = $event->getSubject();
    $learnTime = $event->getArgument('learnTime');

    $taskResult = $this->getTaskResultService()->getTaskResultById($taskResultId);

    $user = $this->getUserService()->getUser($taskResult['userId']);

    $courseId = $taskResult['courseId'];
    $course = $this->getCourseService()->getCourse($courseId);

    if (!$this->validateData($user, $course, $taskResult)) {
        return;
    }

    $data = $this->buildData($user, $course);
    $data['learnTime'] = $learnTime;

    $this->processDailyRecord('wave.learn.time', $data);
}
    
    protected function validateData($user, $course, $taskResult = [])
{
    if (empty($user) || empty($course) || !empty($user['locked'])) {
        return false;
    }

    if (in_array($user['id'], $course['teacherIds'])) {
        return false;
    }

    if (!empty($taskResult)) {
        $task = $this->getTaskService()->getTask($taskResult['courseTaskId']);
        if (in_array($task['type'], ['video', 'audio'])) {
            return false;
        }

        if ('live' === $task['type']) {
            $activity = $this->getActivityService()->getActivity($taskResult['taskId']);
            $liveActivity = $this->getLiveActivityService()->getLiveActivity($activity['mediaId']);
            if ('videoGenerated' === $liveActivity['replayStatus']) {
                return false;
            }
        }
    }

    return true;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,947评论 1 180
  • ©著作权归作者所有:来自51CTO博客作者优秀android的原创作品,如需转载,请注明出处,否则将追究法律责任 ...
    传奇内服号阅读 4,793评论 0 9
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,727评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 11,346评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 10,413评论 1 6