1,'course_source'=>1,'course_flag'=>1); $orderList = array( 1=>array('operate_dt desc','时间倒序',1), 2=>array('operate_dt asc','时间正序',2), 3=>array('course_join desc','加入量倒序',3), 4=>array('course_join asc','加入量倒序',4), ); $statusList = array('全部状态',1=>'编辑中',2=>'未审核',3=>'已上架'); $orderby = $orderList[$sort][0]; if (!empty($keyword)){ $condition['course_id|course_name'] = array('LIKE','%'.$keyword.'%'); } if (!empty($courseStatus)){ $condition['course_status'] = $courseStatus; } if (!empty($courseType)){ $condition['course_type'] = $courseType; } $this->assign('sort',$sort); $this->assign('orderby',$orderby); $this->assign('keyword',$keyword); $this->assign('orderList',$orderList); $this->assign('statusList',$statusList); $this->assign('courseType',$courseType); $this->assign('courseStatus',$courseStatus); //课程类型 $typeRes = M('CourseType')->where(array('is_delete'=>1))->field('type_id,type_name')->select(); $typeList = array(); foreach ($typeRes as $type){ $typeList[$type['type_id']] = $type['type_name']; } $count = M('Course')->where($condition)->count(); //分页 $Page = new \Think\Page($count); $show = $Page->show(); $courseList = M('Course')->where($condition)->order($orderby)->limit($Page->firstRow.','.$Page->listRows)->select(); $this->assign('page',$show); $this->assign('list',$courseList); $this->assign('typeList',$typeList); $this->display(); } //修改课程状态 public function status(){ $courseId = I('course_id',''); $courseStatus = I('course_status',''); if (empty($courseId) || $courseId<1000000){ $this->error("课程ID错误",'/admin/course/index'); } M('Course')->where(array('course_id'=>$courseId))->save(array('course_status'=>$courseStatus)); $this->success('课程状态修改成功','/admin/course/index'); } //删除课程 public function del(){ $courseId = I('course_id',''); if (empty($courseId) || $courseId<1000000){ $this->error("课程ID错误",'/admin/course/index'); } $info = M('Course')->where(array('course_id'=>$courseId))->field('course_type,course_name')->find(); M('CourseType')->where(array('type_id'=>$info['course_type']))->setDec('type_num'); $res = M('TitleNum')->where(array('title_name'=>$info['course_name']))->field('title_id,title_num')->find(); if ($res!=NULL && $res['title_num']>1){ M('TitleNum')->where(array('title_id'=>$res['title_id']))->setDec('title_num'); }else if($res!=NULL && $res['title_num']==1){ M('TitleNum')->where(array('title_id'=>$res['title_id']))->delete(); } M('Course')->where(array('course_id'=>$courseId))->delete(); $this->success('课程删除成功','/admin/course/index'); } //编辑课程 public function edit(){ $step = I('step',''); $courseId = I('course_id',''); if (empty($step)){ $info = array(); if (!empty($courseId)){ $info = M('Course')->where(array('course_id'=>$courseId))->find(); } $typeList = M('CourseType')->where(array('is_delete'=>1))->field('type_id,type_name')->select(); $this->assign('info',$info); $this->assign('typeList',$typeList); $this->display(); }else if($step==2){ $courseType = I('course_type',''); $courseName = I('course_name',''); $courseIntro = I('course_intro',''); if ( mb_strlen($courseName,'UTF8')>12){ $this->error('课程名称小于30个汉字'); } if ( mb_strlen($courseIntro,'UTF8')>300){ $this->error('课程介绍小于300个汉字'); } $res = M('Course')->where(array('course_name'=>$courseName,'is_delete'=>1))->field('course_id')->find(); //新增 if (empty($courseId) && $res!=NULL){ $courseName = $this->getCourseName($courseName); } //更新 if (!empty($courseId) && $courseId!=$res['course_id']){ $courseName = $this->getCourseName($courseName); } if (empty($courseId)){ $data=array('course_type'=>$courseType,'course_name'=>$courseName,'course_intro'=>$courseIntro,'operate_dt'=>time()); M('Course')->add($data); M('CourseType')->where(array('type_id'=>$courseType))->setInc('type_num'); $info = M('Course')->where($data)->find(); $courseId=$info['course_id']; }else{ M('Course')->where(array('course_id'=>$courseId))->save(array('course_type'=>$courseType,'course_name'=>$courseName,'course_intro'=>$courseIntro)); } $this->success('课程操作成功','/admin/course/detail?course_id='.$courseId); } } //单词导入 public function import(){ $step = I('step',''); $courseId = I('course_id',''); if (empty($step)){ $info = array(); if (!empty($courseId)){ $info = M('Course')->where(array('course_id'=>$courseId))->find(); } $Course = M('Course')->where(array('is_delete'=>1,'course_flag'=>1,'course_source'=>1))->field('*')->order("course_id desc")->select(); $this->assign('info',$info); $this->assign('Course',$Course); $this->display(); }else if($step==2){ $json=array(); $json['course_id']=$courseId; if(is_uploaded_file($_FILES['file']['tmp_name'])){ $upfile=$_FILES["file"]; $filename=$upfile['name']; $tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径 $arr = pathinfo($filename); $ext_suffix = $arr['extension']; $allow_suffix = array('zip'); if(!in_array($ext_suffix, $allow_suffix)){ $res=array('code'=>1,'msg'=>'仅支持zip文件'); echo json_encode($res); die; } $new_filename = date('YmdHis',time()).rand(100,1000).'.'.$ext_suffix; if (move_uploaded_file($tmp_name, './Uploads/zip/'.$new_filename)){ $json['file']=$new_filename; }else{ $res=array('code'=>1,'msg'=>'上传失败'); echo json_encode($res); die; } } else{ $res=array('code'=>1,'msg'=>'请选择文件'); echo json_encode($res); die; } $arr['json']=json_encode($json); $arr['operate_dt']=time(); M('import')->add($arr); $r=M('import')->limit('0,1')->order('id desc')->where($arr)->find(); $res=array('code'=>0,'data'=>$r); echo json_encode($res); } } public function task(){ $id = I('id',''); $r=M('import')->limit('0,1')->order('id desc')->where(array('id'=>$id))->find(); if($r){ $res=array('code'=>0,'data'=>$r); echo json_encode($res); }else{ $res=array('code'=>1,'msg'=>'未知错误'); echo json_encode($res); } } //获取课程名称相同时,新的课程名称 private function getCourseName($courseName){ $course = M('Course')->where(array('course_name'=>$courseName,'is_delete'=>1))->field('course_id')->find(); $res = M('TitleNum')->where(array('title_name'=>$courseName))->field('title_id,title_num')->find(); if ($res!=NULL){ $courseName = $courseName.'('.($res['title_num']+1).')'; M('TitleNum')->where(array('title_id'=>$res['title_id']))->setInc('title_num'); }else if($course!=NULL){ $courseName = $courseName.'('.($res['title_num']+1).')'; M('TitleNum')->add(array('title_name'=>$courseName,'operate_dt'=>time())); //$courseName = $courseName; } return $courseName; } //获取课程的单词列表 public function detail(){ $courseId = I('course_id',''); if (empty($courseId) || $courseId<1000000){ $this->error("课程ID错误",'/admin/course/index'); } $keyword = I('get.keyword',''); $condition = array('is_delete'=>1,'course_id'=>$courseId); if (!empty($keyword)){ $condition['words_name'] = array('LIKE','%'.$keyword.'%'); } $count = M('Words')->where($condition)->count(); //分页 $Page = new \Think\Page($count); $show = $Page->show(); $wordsRes = M('Words')->where($condition)->field()->order('words_id desc')->limit($Page->firstRow.','.$Page->listRows)->select(); $wordsList = array(); foreach ($wordsRes as $row){ $wordsList[] = array( 'words_id' => $row['words_id'], 'course_id' => $row['course_id'], 'words_name' => $row['words_name'], 'words_voice' => $row['words_voice'], 'words_read' => $row['words_read'], 'operate_dt' => $row['operate_dt'], 'words_text' => $this->getWordsText($row), ); } $info = M('Course')->where(array('course_id'=>$courseId))->find(); $res = M('course_reply')->join('left join t_user as a on a.user_id = t_course_reply.user_id')->join('left join t_user as b on b.user_id = t_course_reply.reply_user_id')->join('left join t_course_reply_praise on t_course_reply_praise.cr_id = t_course_reply.cr_id')->where(array('t_course_reply.is_delete'=>1,'t_course_reply.reply_cr_id'=>0,'t_course_reply.course_id'=>$courseId))->group('t_course_reply.cr_id')->field('t_course_reply.*,a.user_name,a.user_icon,b.user_name as reply_user_name,count(t_course_reply_praise.cr_id) as praise')->order('t_course_reply.operate_dt desc')->select(); $arr=array(); foreach($res as $k=>$v){ if(!$v['cr_id']){ unset($res[$k]); }else{ $res[$k]['operate_dt']=date("Y-m-d H:i:s",$v['operate_dt']); $arr[]=$v['cr_id']; $res[$k]['reply_list']=array(); } } if($arr){ $res2 = M('course_reply')->join('left join t_user as a on a.user_id = t_course_reply.user_id')->join('left join t_user as b on b.user_id = t_course_reply.reply_user_id')->join('left join t_course_reply_praise on t_course_reply_praise.cr_id = t_course_reply.cr_id')->where("t_course_reply.course_id='$courseId' and t_course_reply.is_delete=1 and t_course_reply.reply_cr_id in ( ".implode(',',$arr).")" )->group('t_course_reply.cr_id')->field('t_course_reply.*,a.user_name,a.user_icon,b.user_name as reply_user_name,count(t_course_reply_praise.cr_id) as praise')->order('t_course_reply.operate_dt desc')->select();; }else{ $res2=array(); } foreach($res as $k=>$v){ foreach($res2 as $m=>$n){ $res2[$m]['operate_dt']=date("Y-m-d H:i:s",$n['operate_dt']); if($n['reply_cr_id']==$v['cr_id']){ $res[$k]['reply_list'][]=$res2[$m]; } } } $this->assign('page',$show); $this->assign('list',$wordsList); $this->assign('courseId', $courseId); $this->assign('info', $info); $this->assign('reply', $res); $this->display(); } }