1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $condition = array('is_delete'=>1,'course_id'=>$courseId); if (!empty($keyword)){ $condition['words_name'] = array('LIKE','%'.$keyword.'%'); } $orderby = ''; if ($sort==1){ $orderby = 'words_id asc'; }else if($sort==2){ $wordsSortInfo = M('WordsSort')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('word_ids')->find(); if ($wordsSortInfo==NULL){ $data = array('code'=>0,'msg'=>'占未设置乱序','data'=>array()); $this->returnData($data);exit; } } if ($lastId>0 && $sort==1){ $condition['words_id'] = array('LT',$lastId); } $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_show'=>1))->field('course_id,user_id,course_name,course_source,operate_dt')->find(); if ($courseInfo['course_name']=='易错单词'){ if ($lastId>0){ $data = array('code'=>0,'msg'=>'无更多数据','data'=>array()); $this->returnData($data);exit; } $errorInfo = M('Test')->where(array('user_id'=>$this->userId))->order('test_id desc')->field('words_error')->find(); if ($errorInfo==NULL){ $data = array('code'=>0,'msg'=>'暂无错误单词','data'=>array()); $this->returnData($data);exit; } $res = M('Words')->where(array('words_id'=>array('IN',$errorInfo['words_error'])))->order($orderby)->select(); }else{ //$join = 'w LEFT JOIN t_words_notepad wn ON w.words_id=wn.words_id'; if ($sort==1){ $res = M('Words')->where($condition)->order($orderby)->limit($pageSize)->select(); }else if($sort==2){ $wordIdArr = explode(',', $wordsSortInfo['word_ids']); if ($lastId!=0){ $key = array_search($lastId,$wordIdArr); $key = $key+1; }else{ $key = 0; } $wordsIdPage = array_slice($wordIdArr,$key,$pageSize); if (empty($wordsIdPage)){ $data = array('code'=>0,'msg'=>'无更多数据','data'=>array()); $this->returnData($data);exit; } $wordsIdpageStr = implode(',', $wordsIdPage); $condition['words_id'] = array('IN',$wordsIdPage); $orderby = 'field(words_id,'. $wordsIdpageStr .')'; $res = M('Words')->where($condition)->order($orderby)->select(); //echo M('Words')->getLastSql();exit; } } $wordsList = array(); foreach ($res as $row){ $wnRes = M('WordsNotepad')->where(array('words_id'=>$row['words_id'],'user_id'=>$this->userId))->field('wn_content')->find(); $wnContent = ''; if ($wnRes!=NULL){ $wnContent = $wnRes['wn_content']; } unset($row['is_delete']); unset($row['words_source']); $row['wn_content'] = $wnContent; $wordsList[] = $row; /* $wordsList[] = array( 'words_id' => $row['words_id'], 'course_id' => $row['course_id'], 'words_name' => $row['words_name'], 'wn_content'=>$wnContent, 'operate_dt' => $row['operate_dt'], 'words_text' => $this->getWordsText($row), ); */ } if ($res==NULL&&$lastId>0){ $data = array('code'=>0,'msg'=>'无更多数据','data'=>array()); $this->returnData($data);exit; } if ($lastId==0){ if ($courseInfo['user_id']!=$this->userId){ $fansInfo = M('Fans')->where(array('user_id'=>$this->userId,'fans_user_id'=>$courseInfo['user_id']))->field('fans_id')->find(); $courseInfo['is_fans'] = $fansInfo==NULL?0:1; /* if ($courseInfo['course_source']==1){ $courseInfo['user_name'] = '系统课程'; $courseInfo['user_icon'] = C('DOMAIN').'/Public/img/admin_icon.png'; }else{ $userInfo = M('User')->where(array('user_id'=>$courseInfo['user_id']))->field('user_name,user_icon,user_sex')->find(); $courseInfo['user_name'] = $userInfo['user_name']; $courseInfo['user_icon'] = $userInfo['user_icon']; } */ }else{ $courseInfo['is_fans'] = 2; } $userInfo = M('User')->where(array('user_id'=>$courseInfo['user_id']))->field('user_id,user_name,user_icon,user_sex')->find(); $courseInfo['user_id'] = $userInfo['user_id']; $courseInfo['user_sex'] = $userInfo['user_sex']; $courseInfo['user_icon'] = $userInfo['user_icon']; $courseInfo['user_name'] = $userInfo['user_name']; }else{ $courseInfo = new \stdClass(); } $data = array('code'=>0,'msg'=>'','data'=>$wordsList); if ($lastId==0){ $data['info'] = $courseInfo; } $this->returnData($data);exit; } //获取指定章节单词列表 public function part(){ $sort = I('sort',1); $courseId = I('course_id'); $partNum = I('part_num'); if (empty($partNum) || $partNum<=0){ $data = array('code'=>10,'msg'=>'章节ID错误'); $this->returnData($data);exit; } if (empty($courseId) || $courseId<1000000){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $partInfo = M('UserWords')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('uw_id,user_part,part_num')->find(); if ($partInfo==NULL){ $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('course_num')->find(); $partInfo['user_part'] = 15; $partInfo['part_num'] = ceil($courseInfo['course_num']/$partInfo['user_part']); } if (empty($partInfo['part_num'])){ $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('course_num')->find(); $partInfo['user_part'] = 15; $partInfo['part_num'] = ceil($courseInfo['course_num']/$partInfo['user_part']); M('UserWords')->where(array('uw_id'=>$partInfo['uw_id']))->save(array('part_num'=>$partInfo['part_num'])); } if ($partNum>$partInfo['part_num']){ $data = array('code'=>10,'msg'=>'章节ID错误'); $this->returnData($data);exit; } $wordsSortInfo = M('WordsSort')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('word_ids')->find(); if ($wordsSortInfo==NULL){ $condition = array('is_delete'=>1,'course_id'=>$courseId); $orderby = ''; if ($sort==1){ $orderby = 'words_id asc'; } $condition['user_id'] = $this->userId; //$join = 'w LEFT JOIN t_words_notepad wn ON w.words_id=wn.words_id'; $res =M('Words')->where($condition)->order($orderby)->limit(($partNum-1)*$partInfo['user_part'], $partInfo['user_part'])->select(); }else{ $wordIdArr = explode(',', $wordsSortInfo['word_ids']); $wordsIdPage = array_slice($wordIdArr,($partNum-1)*$partInfo['user_part'], $partInfo['user_part']); if (empty($wordsIdPage)){ $data = array('code'=>0,'msg'=>'章节ID错误','data'=>array()); $this->returnData($data);exit; } $wordsIdpageStr = implode(',', $wordsIdPage); $condition['words_id'] = array('IN',$wordsIdPage); $orderby = 'field(words_id,'. $wordsIdpageStr .')'; $res = M('Words')->where($condition)->order($orderby)->select(); } $wordsList = array(); foreach ($res as $k=>$row){ $wnRes = M('WordsNotepad')->where(array('words_id'=>$row['words_id'],'user_id'=>$this->userId))->field('wn_content')->find(); $wnContent = ''; if ($wnRes!=NULL){ $wnContent = $wnRes['wn_content']; } unset($row['is_delete']); unset($row['words_source']); $row['wn_content'] = $wnContent; $wordsList[] = $row; } $data = array('code'=>0,'msg'=>'','data'=>$wordsList); $this->returnData($data);exit; } //添加编辑单词 public function edit(){ $courseId = I('course_id'); $wordsId = I('words_id',''); $wordsName = I('words_name',''); if (empty($courseId) || $courseId<1000000){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } //判断单词是否重复 if (empty($wordsId)){ $wordsInfo = M('Words')->where(array('course_id'=>$courseId,'words_name'=>$wordsName))->field('words_id,words_name')->find(); if ($wordsInfo!=NUll){ $data = array('code'=>1,'msg'=>'该课程已经添加过该单词,请勿重复添加!'); $this->returnData($data);exit; } } if (!empty($wordsId)){ $wordsInfo = M('Words')->where(array('course_id'=>$courseId,'words_name'=>$wordsName))->field('words_id,words_name')->find(); if ($wordsInfo!=NUll && $wordsInfo['words_id']!=$wordsId){ $data = array('code'=>1,'msg'=>'该课程已经添加过该单词,请勿重复添加!'); $this->returnData($data);exit; } } $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('course_id,user_id,course_name,course_num,course_status,course_source')->find(); if ($courseInfo==NULL){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $oldCourseInfo = $courseInfo; if ($courseInfo['course_status']==3 || $courseInfo['user_id']!=$this->userId){ //创建新课程,并把就课程里面的所有的单词添加到新创建的课程中 $userCourseInfo = M('Course')->where(array('user_id'=>$this->userId))->field('operate_dt')->find(); if($userCourseInfo!=NULL){ $time = time() - $userCourseInfo['operate_dt']; if ($time1,'msg'=>'3分钟内无法连续创建课程'); $this->returnData($data);exit; } } $oldCourseId = $courseInfo['course_id']; if ($courseInfo['user_id']==$this->userId){ M('Course')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->save(array('is_show'=>2)); }else if($courseInfo['course_source']==1){ //系统课程 $sysCourse = M('UserWords')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($sysCourse==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $sysCourseInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'is_show'=>2, 'operate_dt'=>time(), ); M('UserWords')->add($sysCourseInfo); }else{ M('UserWords')->where(array('uw_id'=>$sysCourse['uw_id']))->save(array('is_show'=>2)); } } //创建课程 unset($courseInfo['course_id']); $courseInfo['course_status'] = 1; $courseInfo['operate_dt'] = time(); $courseInfo['user_id'] = $this->userId; $courseInfo['course_source']=2; $courseInfo['course_name'] = $courseInfo['course_name'];//$this->getCourseName($courseInfo['course_name']); $courseId = M('Course')->add($courseInfo); $userWordsInfo = M('UserWords')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($userWordsInfo==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $saveCourseWordsInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'operate_dt'=>time(), ); M('UserWords')->add($saveCourseWordsInfo); }else{ M('UserWords')->where(array('uw_id'=>$userWordsInfo['uw_id']))->save(array('course_id'=>$courseId)); //M('UserWords')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->save(array('course_id'=>$courseId)); } //复制单词 $this->copyWords($oldCourseId,$courseId); }else{ $userWordsInfo = M('UserWords')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($userWordsInfo==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $saveCourseWordsInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'operate_dt'=>time(), ); M('UserWords')->add($saveCourseWordsInfo); } } $wordsKeys = array('n'=>'words_n','pron'=>'words_pron','adj'=>'words_adj','num'=>'words_num','v'=>'words_v','adv'=>'words_adv','art'=>'words_art', 'prep'=>'words_prep','conj'=>'words_conj','int'=>'words_int','vt'=>'words_vt','vi'=>'words_vi','other'=>'words_other',); $saveData['course_id'] = $courseId; $saveData['words_name'] = I('words_name',''); /* $wordsVoice = I('words_voice',''); $wordsRead = I('words_read',''); if (substr($wordsVoice,-1)==','){ $wordsVoice = substr($wordsVoice, 0, -1); } $wordsVoiceArr = explode(',', $wordsVoice); $wordsReadArr = explode(',', $wordsRead); for ($i=0;$i1,'msg'=>'单词不能为空'); $this->returnData($data);exit; } if (empty($saveData['words_voice1'])){ $data = array('code'=>1,'msg'=>'读音不能为空'); $this->returnData($data);exit; } if (empty($saveData['words_read1'])){ $data = array('code'=>1,'msg'=>'音标不能为空'); $this->returnData($data);exit; } if ($checkWords){ $data = array('code'=>1,'msg'=>'中文释义不能为空'); $this->returnData($data);exit; } $saveData['jz_en1'] = I('jz_en1',''); $saveData['jz_cn1'] = I('jz_cn1',''); $saveData['jz_en2'] = I('jz_en2',''); $saveData['jz_cn2'] = I('jz_cn2',''); $saveData['jz_en3'] = I('jz_en3',''); $saveData['jz_cn3'] = I('jz_cn3',''); $saveData['similar_cn'] = I('similar_cn',''); $saveData['similar_en'] = I('similar_en',''); $saveData['words_similar'] = I('words_similar'); $saveData['annotation_cn'] = I('annotation_cn',''); if (!empty($saveData['jz_en1']) && strpos(strtolower($saveData['jz_en1']), $saveData['words_name'])===FALSE){ $data = array('code'=>1,'msg'=>'您添加的例句1不包含对应单词,请仔细核对后提交'); $this->returnData($data);exit; } if (!empty($saveData['jz_en2']) && strpos(strtolower($saveData['jz_en2']), $saveData['words_name'])===FALSE){ $data = array('code'=>1,'msg'=>'您添加的例句2不包含对应单词,请仔细核对后提交交'); $this->returnData($data);exit; } if (!empty($saveData['jz_en3']) && strpos(strtolower($saveData['jz_en3']), $saveData['words_name'])===FALSE){ $data = array('code'=>1,'msg'=>'您添加的例句3不包含对应单词,请仔细核对后提交'); $this->returnData($data);exit; } if (!empty($saveData['jz_en1']) && empty($saveData['jz_cn1'])){ $data = array('code'=>1,'msg'=>'您添加的例句1释义不能为空,请仔细核对后提交'); $this->returnData($data);exit; } if (!empty($saveData['jz_en2']) && empty($saveData['jz_cn2'])){ $data = array('code'=>1,'msg'=>'您添加的例句1释义不能为空,请仔细核对后提交'); $this->returnData($data);exit; } if (!empty($saveData['jz_en3']) && empty($saveData['jz_cn3'])){ $data = array('code'=>1,'msg'=>'您添加的例句1释义不能为空,请仔细核对后提交'); $this->returnData($data);exit; } if (!empty($saveData['words_similar']) && strlen($saveData['words_similar'])>50){ $data = array('code'=>1,'msg'=>'英文释义不能大于50个字节'); $this->returnData($data);exit; } if (!empty($saveData['similar_cn']) && strlen($saveData['similar_cn'])>50){ $data = array('code'=>1,'msg'=>'近义词不能大于50个字节'); $this->returnData($data);exit; } if (!empty($saveData['similar_en']) && strlen($saveData['similar_en'])>240){ $data = array('code'=>1,'msg'=>'英文释义不能大于240个字节'); $this->returnData($data);exit; } $saveData['operate_dt'] = time(); if ($wordsId){ if ($oldCourseInfo['course_status']==3 || $oldCourseInfo['user_id']!=$this->userId){ //$wordsId = M('Words')->add($saveData); $wordsOldInfo = M('Words')->where(array('words_id'=>$wordsId,))->field('words_id,words_name')->find(); $wordsNewInfo = M('Words')->where(array('course_id'=>$saveData['course_id'],'words_name'=>$wordsOldInfo['words_name'],))->field('words_id')->find(); M('Words')->where(array('words_id'=>$wordsNewInfo['words_id']))->save($saveData); $returnWordsId = $wordsNewInfo['words_id']; }else{ M('Words')->where(array('words_id'=>$wordsId))->save($saveData); $returnWordsId = $wordsId; } }else{ $wordsId = M('Words')->add($saveData); $wordsSortInfo = M('WordsSort')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->field('sort_id,word_ids')->find(); if ($wordsSortInfo != NULL){ $wordsSortInfo['word_ids'] = $wordsSortInfo['word_ids'].','.$wordsId; M('WordsSort')->where(array('sort_id'=>$wordsSortInfo['sort_id']))->save(array('word_ids'=>$wordsSortInfo['word_ids'])); } M('Course')->where(array('course_id'=>$courseId))->setInc('course_num'); $returnWordsId = $wordsId; } $join = 'uw LEFT JOIN t_course c ON uw.course_id=c.course_id'; $resUserWords = M('UserWords')->join($join)->where(array('c.course_id'=>$saveData['course_id'],'uw.user_id'=>$this->userId,))->field('uw.course_id,uw.user_id,course_join,course_num,course_name,uw_id,uw.user_part,uw.part_num')->find(); $resUserWords['words_id'] = $returnWordsId; $data = array('code'=>0,'msg'=>'单词操作成功','data'=>$resUserWords); $this->returnData($data);exit; /* $data = array('code'=>0,'msg'=>'单词操作成功','data'=>array('words_id'=>$wordsId,'course_id'=>$courseId)); $this->returnData($data);exit; */ } //把其他课程里面的单词添加到指定课程中 public function addWordsToCourse(){ $wordsId = I('words_id'); $courseId = I('course_id'); if (empty($wordsId)){ $data = array('code'=>1,'msg'=>'单词ID错误'); $this->returnData($data);exit; } if (empty($courseId) || $courseId<1000000){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $wordsInfo = M('Words')->where(array('words_id'=>$wordsId,'is_delete'=>1))->find(); if ($wordsInfo!=NULL && $wordsInfo['course_id']==$courseId){ $data = array('code'=>1,'msg'=>'已是该课程单词'); $this->returnData($data);exit; } $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('course_id,user_id,course_name,course_num,course_status')->find(); if ($courseInfo==NULL){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } if ($courseInfo['course_status']==3 || $courseInfo['user_id']!=$this->userId){ //创建新课程,并把就课程里面的所有的单词添加到新创建的课程中 $userCourseInfo = M('Course')->where(array('user_id'=>$this->userId))->field('operate_dt')->find(); if($userCourseInfo!=NULL){ $time = time() - $userCourseInfo['operate_dt']; if ($time1,'msg'=>'3分钟内无法连续创建课程'); $this->returnData($data);exit; } } $oldCourseId = $courseInfo['course_id']; //创建课程 unset($courseInfo['course_id']); $courseInfo['course_status'] = 1; $courseInfo['operate_dt'] = time(); $courseInfo['user_id'] = $this->userId; $courseInfo['course_source']=2; $courseInfo['course_name'] = $this->getCourseName($courseInfo['course_name']); $courseId = M('Course')->add($courseInfo); //复制单词 $this->copyWords($oldCourseId,$courseId); } $wordsInfo['operate_dt'] = time(); $wordsInfo['course_id'] = $courseId; $wordsInfo['words_source'] = 2; unset($wordsInfo['words_id']); M('Words')->add($wordsInfo); M('Course')->where(array('course_id'=>$courseId))->setInc('course_num'); $data = array('code'=>0,'msg'=>'单词添加成功','data'=>''); $this->returnData($data);exit; } //删除单词 public function del(){ $wordsId = I('words_id'); $courseId = I('course_id'); if (empty($wordsId)){ $data = array('code'=>1,'msg'=>'单词ID错误'); $this->returnData($data);exit; } if (empty($courseId) || $courseId<1000000){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $wordsInfo = M('Words')->where(array('words_id'=>$wordsId,'is_delete'=>1))->find(); if ($wordsInfo!=NULL && $wordsInfo['course_id']!=$courseId){ $data = array('code'=>1,'msg'=>'不是该课程单词'); $this->returnData($data);exit; } $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('course_id,user_id,course_name,course_num,course_status,course_source')->find(); if ($courseInfo==NULL){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $oldCourseInfo = $courseInfo; if ($courseInfo['course_status']==3 || $courseInfo['user_id']!=$this->userId){ //创建新课程,并把就课程里面的所有的单词添加到新创建的课程中 $userCourseInfo = M('Course')->where(array('user_id'=>$this->userId))->field('operate_dt')->find(); if($userCourseInfo!=NULL){ $time = time() - $userCourseInfo['operate_dt']; if ($time1,'msg'=>'3分钟内无法连续创建课程'); $this->returnData($data);exit; } } $oldCourseId = $courseInfo['course_id']; if ($courseInfo['user_id']==$this->userId){ M('Course')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->save(array('is_show'=>2)); }else if($courseInfo['course_source']==1){ //系统课程 $sysCourse = M('UserWords')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($sysCourse==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $sysCourseInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'is_show'=>2, 'operate_dt'=>time(), ); M('UserWords')->add($sysCourseInfo); }else{ M('UserWords')->where(array('uw_id'=>$sysCourse['uw_id']))->save(array('is_show'=>2)); } } //创建课程 unset($courseInfo['course_id']); $courseInfo['course_status'] = 1; $courseInfo['operate_dt'] = time(); $courseInfo['user_id'] = $this->userId; $courseInfo['course_source']=2; $courseInfo['course_name'] = $courseInfo['course_name'];//$this->getCourseName($courseInfo['course_name']); $courseId = M('Course')->add($courseInfo); $userWordsInfo = M('UserWords')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($userWordsInfo==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $saveCourseWordsInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'operate_dt'=>time(), ); M('UserWords')->add($saveCourseWordsInfo); }else{ M('UserWords')->where(array('uw_id'=>$userWordsInfo['uw_id']))->save(array('course_id'=>$courseId)); //M('UserWords')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->save(array('course_id'=>$courseId)); } //复制单词 $this->copyWords($oldCourseId,$courseId,$wordsId); }else{ $userWordsInfo = M('UserWords')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('uw_id')->find(); if ($userWordsInfo==NULL){ $userInfo = M('User')->where(array('user_id'=>$this->userId))->field('user_part')->find(); if ($userInfo==NULL || empty($userInfo['user_part'])){ $userPart = 15; $partNum =ceil($courseInfo['course_num']/15); }else{ $userPart = $userInfo['user_part']; $partNum =ceil($courseInfo['course_num']/$userInfo['user_part']); } $saveCourseWordsInfo = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'user_part'=>$userPart, 'part_num'=>$partNum, 'operate_dt'=>time(), ); M('UserWords')->add($saveCourseWordsInfo); } M('Words')->where(array('words_id'=>array('IN',$wordsId)))->delete(); } $wordsIdArr = explode(',', $wordsId); $num = count($wordsIdArr); M('Course')->where(array('course_id'=>$courseId))->setDec('course_num',$num); $wordsSortInfo = M('WordsSort')->where(array('course_id'=>$oldCourseId,'user_id'=>$this->userId))->field('sort_id,word_ids')->find(); if ($wordsSortInfo != NULL){ $wordsSortIdArr = explode(',', $wordsSortInfo['word_ids']); $wordsSortInfo['word_ids'] = array_shift($wordsSortIdArr,$wordsIdArr); M('WordsSort')->where(array('sort_id'=>$wordsSortInfo['sort_id']))->save(array('word_ids'=>$wordsSortInfo['word_ids'])); } $data = array('code'=>0,'msg'=>'单词删除成功','data'=>''); $this->returnData($data);exit; } //添加单词笔记 public function notepad(){ $wordsId = I('words_id'); $courseId = I('course_id'); $wnContent = I('wn_content'); if(empty($wordsId)){ $data = array('code'=>1,'msg'=>'单词ID错误'); $this->returnData($data);exit; } if(empty($courseId)){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } if (mb_strlen($wnContent,'UTF8')<2 || mb_strlen($wnContent,'UTF8')>80){ $data = array('code'=>1,'msg'=>'单词笔记2到80个汉字'); $this->returnData($data);exit; } $res = M('WordsNotepad')->where(array('words_id'=>$wordsId,'user_id'=>$this->userId))->field('wn_id')->find(); if ($res==NULL){ $saveData = array('user_id'=>$this->userId,'words_id'=>$wordsId,'course_id'=>$courseId,'wn_content'=>$wnContent,'operate_dt'=>time()); $wnId = M('WordsNotepad')->add($saveData); $msg = '单词笔记添加成功'; }else{ $wnId = $res['wn_id']; M('WordsNotepad')->where(array('wn_id'=>$wnId))->save(array('wn_content'=>$wnContent)); $msg = '单词笔记修改成功'; } $info = M('WordsNotepad')->where(array('wn_id'=>$wnId))->field('user_id,words_id,course_id,wn_content')->find(); $data = array('code'=>0,'msg'=>$msg,'data'=>$info); $this->returnData($data);exit; } //添加错误单词到易错单词课程中 private function addErrorWords($wordsId){ $wordsId = rtrim(I('words_id'),','); if (empty($wordsId)){ return false; } $courseInfo = M('Course')->where(array('user_id'=>$this->userId,'course_name'=>'易错单词','course_flag'=>1))->field('course_id')->find(); if ($courseInfo==NULL){ $courseId = M('Course')->add(array('course_type'=>0,'course_name'=>'易错单词','course_source'=>2,'user_id'=>$this->userId,'operate_dt'=>time())); }else{ $courseId = $courseInfo['course_id']; } $wordsList = M('Words')->where(array('words_id'=>array('IN',$wordsId),'is_delete'=>1))->order('words_id asc')->select(); //var_dump($wordsList);exit; foreach ($wordsList as $words){ unset($words['words_id']); $words['course_id'] = $courseId; $words['words_source'] = 2; $words['operate_dt'] = time(); M('Words')->add($words); } return false; } //测试模式上报 public function test(){ $testType = I('test_type'); $wordsId = rtrim(I('words_id'),','); //$wordsTotal = I('words_total'); $wordsError = rtrim(I('words_error'),','); //$wordsSuccess = rtrim(I('words_success')); //$testNum = I('test_num'); //$testScore = I('test_score'); if (!in_array($testType, array(1,2,3,4,5,6))){ $data = array('code'=>1,'msg'=>'测试模式错误'); $this->returnData($data);exit; } if (empty($wordsId)){ $data = array('code'=>1,'msg'=>'测试单词id错误'); $this->returnData($data);exit; } $wordsTotal = substr_count($wordsId,',')+1; if (empty($wordsError)){ $wordsErrLen = 0; }else{ $wordsErrLen = substr_count($wordsError,',')+1; } $wordsSucLen = $wordsTotal-$wordsErrLen; $score = round($wordsSucLen/$wordsTotal*100); $wordsIdArr = explode(',', $wordsId); $wordsErrorArr = explode(',', $wordsError); $wordsSuccess = implode(',', array_diff($wordsIdArr, $wordsErrorArr)); //var_dump($wordsId,$wordsError,$wordsSuccess,$wordsSucLen,$wordsTotal);exit; $saveData = array( 'user_id'=>$this->userId,'test_type'=>$testType,'words_ids'=>$wordsId, 'words_total'=>$wordsTotal,'words_error'=>$wordsError,'words_success'=>$wordsSuccess, 'test_num'=>$wordsTotal,'test_score'=>$score,'operate_dt'=>time(), ); M('Test')->add($saveData); $this->addErrorWords($wordsError); $data = array('code'=>0,'msg'=>'单词测试上报成功','data'=>array('score'=>$score)); $this->returnData($data);exit; } //获取单词信息接口 public function dict(){ $wordsName = I('words_name',''); if (empty($wordsName)){ $data = array('code'=>1,'msg'=>'单词不能为空'); $this->returnData($data);exit; } $wordsKeys = array('n'=>'words_n','pron'=>'words_pron','adj'=>'words_adj','num'=>'words_num','v'=>'words_v','adv'=>'words_adv','art'=>'words_art','prep'=>'words_prep','conj'=>'words_conj','int'=>'words_int','vt'=>'words_vt','vi'=>'words_vi',); $httpCurl = new \Org\Net\HttpCurl(); $url = C('TRANS').'&w='.$wordsName; $res = $httpCurl->get($url,'xml'); $res = json_decode(json_encode(simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA)), true); /* $url = C('TRANS').'&type=json&w='.$wordsName; $res = $httpCurl->get($url); */ if (!isset($res['key'])){ $data = array('code'=>1,'msg'=>'单词翻译出错'); echo json_encode($data); } $saveData = array(); if (isset($res['ps'])){ if (is_array($res['ps'])){ for ($i=0;$i$v){ if (isset($wordsKeys[str_replace('.', '', $v)])){ $saveData[$wordsKeys[str_replace('.', '', $v)]] = trim($res['acceptation'][$k]); } } }else{ if (isset($wordsKeys[str_replace('.', '', $res['pos'])])){ $saveData[$wordsKeys[str_replace('.', '', $res['pos'])]] = trim($res['acceptation']); }else{ $saveData['words_other'] = trim($res['acceptation']); } } } if (isset($res['sent'])){ for ($i=0;$i3){ continue; } $saveData['jz_en'.$j] = trim($res['sent'][$i]['orig']); $saveData['jz_cn'.$j] = trim($res['sent'][$i]['trans']); } } $data = array('code'=>0,'msg'=>'','data'=>$saveData); $this->returnData($data);exit; } //删除单词笔记 public function delNote(){ $wordsId = I('words_id',''); if (empty($wordsId)){ $data = array('code'=>1,'msg'=>'单词ID出错'); echo json_encode($data); } M('WordsNotepad')->where(array('words_id'=>$wordsId,'user_id'=>$this->userId))->delete(); $data = array('code'=>0,'msg'=>'删除成功','data'=>''); $this->returnData($data);exit; } //单词乱序 public function sort(){ $courseId = I('course_id'); if (empty($courseId) || $courseId<1000000){ $data = array('code'=>1,'msg'=>'课程ID错误'); $this->returnData($data);exit; } $info = M('WordsSort')->where(array('course_id'=>$courseId,'user_id'=>$this->userId))->field('sort_id')->find(); if ($info!=NULL){ $data = array('code'=>1,'msg'=>'已经设置过乱序排列'); echo json_encode($data); } $wordsInfo = M('Words')->where(array('course_id'=>$courseId))->order('RAND()')->field('words_id')->select(); if (function_exists('array_column')){ $wordsIdArr = array_column($wordsInfo, 'words_id'); }else{ foreach ($wordsInfo as $row){ $wordsIdArr[] = $row['words_id']; } } $saveData = array( 'user_id'=>$this->userId, 'course_id'=>$courseId, 'word_ids'=>implode(',', $wordsIdArr), 'operate_dt'=>time(), ); M('WordsSort')->add($saveData); } }