OverviewDataController.class.php 3.97 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/10/13
 * Time: 16:39
 */
namespace Apicp\Controller\AllData;

use Com\PackageValidate;
use Common\Common\ExamHelper;
use Common\Common\CourseHelper;
use Common\Common\DataHelper;

class OverviewDataController  extends \Apicp\Controller\AbstractController
{
    /**
     * OverviewData
     * @author liyifei
     * @desc 数据概览接口(员工学习概览、课程数据概览、考试数据概览)
     * @param Int starttime:true 开始时间戳
     * @param Int endtime:true 结束时间戳
     * @return array
                array(
                    'study_data' => array( // 员工学习概览
                        'user_total' => 6000, // 员工总数
                        'study_user_total' => 100, // 学习人数(参与学习的人员去重,无论学习是否完成)
                        'time_total' => 999, // 学习时长(秒)
                        'per_time_total' => 1, // 人均学习时长(秒)
                        'study_course_total' => 2, // 学习课程总数
                        'study_sourse_total' => 3, // 学习素材总数
                        'study_complete_total' => 4, // 通过学习次数
                        'like_total' => 5, // 点赞数
                        'comment_total' => 6, // 评论次数
                    ),
                    'course_data' => array( // 课程数据概览
                        'course_total' => 200, // 课程总数
                        'sourse_total' => 400, // 素材总数
                        'new_course_total' => 100, // 新增课程数
                        'new_sourse_total' => 100, // 新增素材数
                        'new_img_sourse_total' => 100, // 新增图文素材数
                        'new_audio_sourse_total' => 100, // 新增音图素材数
                        'new_video_sourse_total' => 100, // 新增视频素材数
                        'new_file_sourse_total' => 100, // 新增文件素材数
                        'new_outside_sourse_total' => 100, // 新增外部素材数
                    ),
                    'exam_data' => array( // 考试数据概览
                        'paper_nums' => 148, // 考试总数
                        'paper_test_nums' => 83, // 正式考试数量
                        'paper_mock_nums' => 65, // 模拟考试数量
                        'paper_test_add' => 10, // 新增正式考试
                        'paper_mock_add' => 11, // 新增模拟考试
                        'exam_join_nums' => 186, // 考试参与次数
                        'exam_coverage' => 88.88, // 考试覆盖率
                        'exam_pass_nums' => 83, // 考试及格次数
                        'exam_pass_coverage' => 99.99 // 考试及格率
                    )
                )
     */
    public function Index_post()
    {
        // 验证规则
        $rules = [
            'starttime' => 'require|integer|gt:0',
            'endtime' => 'require|integer|gt:0',
        ];

        // 验证请求数据
        $postData = I('post.');
        $validate = new PackageValidate();
        $validate->postData = $postData;
        $validate->validateParams($rules);

        // 开始、结束时间
        $dataHelper = &DataHelper::instance();
        $starttime = $dataHelper->formatStarttime($postData['starttime']);
        $endtime = $dataHelper->formatEndtime($postData['endtime']);

        // 员工学习概览
        $courseHelper = &CourseHelper::instance();
        $studyData = $courseHelper->listUserStudyData($starttime, $endtime);

        // 课程数据概览
        $courseData = $courseHelper->listCourseData($starttime, $endtime);

        // 考试数据概览
        $examHelper = &ExamHelper::instance();
        $examData = $examHelper->get_exam_data($starttime, $endtime);

        $this->_result = [
            'study_data' => $studyData,
            'course_data' => $courseData,
            'exam_data' => $examData,
        ];
    }
}