data['rootUrl'] = Doo::conf()->APP_URL; include ('./protected/controller/BaseController.php'); $this->base = new BaseController (); $username = $this->base->common_init(); $this->data['username'] = $username; // require_once (Doo::conf()->SITE_PATH . '/protected/class/video.php'); // $video = new video ( ); } public function common_exit() { setcookie ( "common_main", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); $this->data['message'] = ''; $this->render ( "common-login", $this->data, TRUE); } public function classlist() { Doo::loadModel('ktclass'); Doo::loadModel('classuser'); Doo::loadHelper('DooPager'); $ktclass = new Ktclass(); $class_user = new Classuser(); $totalArchive = $ktclass->count(array('where' => 'ishow=1')); $pager = new DooPager(Doo::conf()->APP_URL . "common/classlist/page", $totalArchive, 8, 10); if (isset($this->params['pindex'])) $pager->paginate(intval($this->params['pindex'])); else $pager->paginate(1); if ($pager->limit != ' -8,8') $this->data['classlist'] = $ktclass->getclasslistbyshow($pager->limit); foreach($this->data['classlist'] as $k => $v){ $bum = $class_user->getNumbyClassid($v['classid']); $this->data['classlist'][$k]['bnum'] = $bum; $this->data['classlist'][$k]['totalnum'] = sprintf("%.2f",$v['classnum']*($v['classtime']/60)); $this->data['classlist'][$k]['class_progress'] = $this->getClassProgress($v['classid'],$this->data['classlist'][$k]['totalnum'],$bum); } $this->data['pager'] = $pager->output; $this->render('common-classlist',$this->data); } public function classinfo() { if(isset($this->params['classid'])){ Doo::loadModel('classuser'); Doo::loadModel('ktclass'); $classuser = new Classuser(); $ktclass = new Ktclass(); $class = $ktclass->getRowishowbyId($this->params['classid']); $this->data['classname'] = $class['classname']; $this->data['classid'] = $class['classid']; $this->data['totalnum'] = sprintf("%.2f",$class['classnum']*($class['classtime']/60)); $totalArchive = $classuser->count(array('where' => 'classid='.$this->params['classid'])); if(isset($this->params['status']) && $this->params['status'] == 1){ $pager = new DooPager(Doo::conf()->APP_URL . "common/classinfo/".$this->params['classid']."/status/1/page", $totalArchive, 8, 10); }else{ $pager = new DooPager(Doo::conf()->APP_URL . "common/classinfo/".$this->params['classid']."/page", $totalArchive, 8, 10); } if (isset($this->params['pindex'])) $pager->paginate(intval($this->params['pindex'])); else $pager->paginate(1); if ($pager->limit != ' -8,8'){ if(isset($this->params['status']) && $this->params['status'] == 1){ $this->data['status'] = 1; $this->data['userlist'] = $classuser->getuserlist($this->params['classid'], $pager->limit,1); }else{ $this->data['userlist'] = $classuser->getuserlist($this->params['classid'], $pager->limit,0); } } if(isset($this->data['userlist']) && !empty($this->data['userlist'])){ Doo::loadModel('user'); $users = new User(); foreach($this->data['userlist'] as $k => $v){ $user = $users->getNamebyId($v['userid']); $this->data['userlist'][$k]['username'] = $user['username']; $this->data['userlist'][$k]['realname'] = $user['realname']; $idcard = strlen($user['idcard'])==15?substr_replace($user['idcard'],"******",2,6):(strlen($user['idcard'])==18?substr_replace($user['idcard'],"*********",3,9):"身份证位数不正常!"); $this->data['userlist'][$k]['idcard'] = $idcard; $hadbuy = $classuser->gethasbyuserandclass($v['userid'],$this->params['classid']); $this->data['userlist'][$k]['user_progress'] = $this->getPersonProgress($class,$hadbuy); } } $this->data['pager'] = $pager->output; $this->render('common-classinfo', $this->data, TRUE); }else{ return '/common'; } } public function userSearch(){ if(isset($_POST['search']) && !empty($_POST['search'])){ Doo::loadModel('user'); $user = new User(); if(is_numeric(trim($_POST['search'])) && strlen(trim($_POST['search'])) == 6){ $result = $user->getUserMsgbyidcard(trim($_POST['search'])); }else{ $result = $user->getUserMsgbySearch(trim($_POST['search'])); } if(!empty($result)) { Doo::loadModel('classuser'); $class_user = new Classuser(); $classlist = $class_user->gethasbyuserandclass($result['userid'],$_POST['classid']); if(!empty($classlist)){ Doo::loadModel('ktclass'); $ktclass = new Ktclass(); $classinfo = $ktclass->getRowishowbyId($_POST['classid']); $this->data['userinfo'] = array( 'realname' => $result['realname'], 'username' => $result['username'], 'mobile' => $result['mobile'], 'useremail' => $result['useremail'], 'idcard' => $result['idcard'], ); $this->data['user_progress'] = $this->getPersonProgress($classinfo,$classlist); $this->data['classinfo'] = $classinfo; $this->data['totalnum'] = sprintf("%.2f",$classinfo['classnum']*($classinfo['classtime']/60)); $usernum = $class_user->getNumbyClassid($_POST['classid']); $this->data['usernum'] = $usernum; $this->render('common-usersearch', $this->data, TRUE);die; } } } return '/common/classinfo/'.$_POST['classid']; } //获取个人的学习进度 private function getPersonProgress($class,$classuser){ $totalss = $class['classnum']*$class['classtime']*60; //课程总秒数 $userss = $classuser['seetime']; //已完成的秒数 $nodonehh = sprintf('%.2f',($totalss-$userss)/3600); //未完成的小时数 $donehh = sprintf('%.2f',$classuser['seetime']/3600); //已完成的小时数 $doneclassnum = intval($userss/($class['classtime']*60)); //已完成的课时数,取整 if($doneclassnum<10 && $doneclassnum != 0){ $doneclassnum = '0'.$doneclassnum; } $progress = sprintf('%.2f',$userss/$totalss) *100; //已完成占总课程的百分比 $noprogress = 100-$progress; //未完成占总课程的百分比 return array('progress' => $progress, 'noprogress' => $noprogress, 'donehh' => $donehh, 'doneclassnum' => $doneclassnum, 'nodonehh' => $nodonehh); } //获取课程的平均进度 private function getClassProgress($classid,$totalnum,$bnum){ if($bnum != 0){ Doo::loadModel('classuser'); $classuser = new Classuser(); $classtrack = $classuser->gettimebyClassid($classid); $doness = 0; foreach($classtrack as $k => $v){ $doness += $v['seetime']; //已完成的总秒数 } $donehh = sprintf('%.2f',sprintf('%.2f',$doness/3600)/$bnum); //已完成的平均小时数 $nodonehh = $totalnum-$donehh; //未完成的小时数 $progress = sprintf('%.2f',$donehh/$totalnum) *100; //已完成占总课程的百分比 $noprogress = 100-$progress; //未完成占总课程的百分比 }else{ $progress = 0; $noprogress = 100; $donehh = 0; $nodonehh = $totalnum; } return array('progress' => $progress, 'noprogress' => $noprogress, 'donehh' => $donehh, 'nodonehh' => $nodonehh); } }