edusoho二次开发增加用户信息导出功能

程序文件路径 /src/AppBundle/Component/Export/Course/StudentExporter.php
在这里插入图片描述
在这里插入图片描述

技术开发 QQ 
 public function getTitles()
    {
$userFields = $this->getUserFieldService()->getEnabledFieldsOrderBySeq();
$userFieldsTitle = empty($userFields) ? array() : 
ArrayToolkit::column($userFields, 'title');
        $fields = array(
            '学员ID',
            'user.fields.username_label',
            'user.fields.truename_label',
            'user.fields.gender_label',
            'user.fileds.qq',
            'user.fileds.wechat',
            'user.fields.mobile_label',
            'user.fields.company_label',
            'user.fields.career_label',
            'user.fields.title_label',
            'user.fields.email_label',
            'student.profile.weibo',
            '培训批次ID',
            'task.learn_data_detail.createdTime',
            '学习时长',
            '开始时间',
            '结束时间',
            'course.plan_task.study_rate',
            '成绩',
            '考试通过时间',
        );
return array_merge($fields, $userFieldsTitle);
    }
public function getContent($start, $limit)
{
$course = $this->getCourseService()->getCourse($this->parameter['courseId']);
$translator = $this->container->get('translator');
$gender = array(
'female' => $translator->trans('user.fields.gender.female'),
'male' => $translator->trans('user.fields.gender.male'),
'secret' => $translator->trans('user.fields.gender.secret'),
);

$courseMembers = $this->getCourseMemberService()->searchMembers(
$this->conditions,
array('createdTime' => 'DESC'),
$start,
$limit
);

$studentUserIds = ArrayToolkit::column($courseMembers, 'userId');
$users = $this->getUserService()->findUsersByIds($studentUserIds);

$profiles = $this->getUserService()->findUserProfilesByIds($studentUserIds);

foreach ($courseMembers as $key => $member) {
$progress = $this->getLearningDataAnalysisService()->
makeProgress($member['learnedCompulsoryTaskNum'], 
$course['compulsoryTaskNum']);
$courseMembers[$key]['learningProgressPercent'] = $progress['percent'];
}

$fields = $this->getUserFieldService()->getEnabledFieldsOrderBySeq();
$fields = ArrayToolkit::column($fields, 'fieldName');

$datas = array();
foreach ($courseMembers as $courseMember) {
$member = array();
$userId = $courseMember['userId'];
$profile = $profiles[$userId];
$user = $users[$userId];
$connect = mysqli_connect("localhost","root","root","edusoho");
$sql = "select paperName,testId,userId,courseId,score,usedTime from 
testpaper_result_v8 where userId=".$userId." and 
courseId=".$courseMember['courseId']." order by id desc";
$result = mysqli_query($connect,$sql);
$row = mysqli_fetch_row($result);

$member[] = $profile['kid'];
$member[] = $user['nickname'];
$member[] = $profile['truename'] ? $profile['truename'] : '-';
$member[] = $gender[$profile['gender']];
$member[] = $profile['qq'] ? $profile['qq'] : '-';
$member[] = $profile['weixin'] ? $profile['weixin'] : '-';
$member[] = $profile['mobile'] ? $profile['mobile'] : '-';
$member[] = $profile['company'] ? $profile['company'] : '-';
$member[] = $profile['job'] ? $profile['job'] : '-';
$member[] = $user['title'] ? $user['title'] : '-';
$member[] = $profile['weibo'] ? $profile['weibo'] : '-';
$member[] = $user['email'];
$member[] = $courseMember['courseId'];
$member[] = date('Y-n-d H:i:s', $courseMember['createdTime']);
$member[] = $courseMember['learnedNum'];
$member[] = date('Y-m-d H:i:s',$courseMember['createdTime']);
$member[] =  date('Y-m-d H:i:s',$courseMember['lastLearnTime']);
$member[] = $courseMember['learningProgressPercent'].'%';
$member[] = $row['score'];
$member[] = $row['stickyTime'];

foreach ($fields as $value) {
$member[] = $profile[$value] ? str_replace(array(PHP_EOL, '"'), '', 
$profile[$value]) : '-';
}
$datas[] = $member;
}
return $datas;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值