123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Ellisran
- * Date: 2016/10/11
- * Time: 10:18
- */
- class CommonController extends DooController {
- public $data;
- // public $appKey = '';
- // public $AppSecret = '';
- function __construct() {
- $this->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);
- }
- }
|