IndexController.class.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace Api\Controller;
  3. use Think\Controller;
  4. class IndexController extends Controller {
  5. //官网课程
  6. public function course(){
  7. $sort = I('sort',1);
  8. $page = I('page');
  9. $keyword = I('keyword','','trim');
  10. $pageSize = I('page_size',10);
  11. $condition = array('course_status'=>3,'course_flag'=>1,'is_show'=>1,'a.is_delete'=>1);
  12. if (!empty($keyword)){
  13. $condition['course_name|user_name'] = array('LIKE','%'.$keyword.'%');
  14. }
  15. $orderby = '';
  16. if ($sort==1){
  17. $orderby = 'course_join desc';
  18. }else if($sort==2){
  19. $orderby = 'course_id desc';
  20. }
  21. $join = 'a LEFT JOIN __USER__ b ON a.user_id=b.user_id';
  22. $count = M('Course')->join($join)->where($condition)->count();
  23. $field = 'user_name,user_phone,user_icon,course_id,a.user_id,course_flag,course_name,course_join,course_num,course_source,a.operate_dt';
  24. $res = M('Course')->join($join)->where($condition)->field($field)->order($orderby)->page($page,$pageSize)->select();
  25. $data = array('code'=>0,'msg'=>'','data'=>['total'=>$count,'list'=>$res]);
  26. $this->returnData($data);exit;
  27. }
  28. //官网自由记
  29. public function notepad(){
  30. $sort = I('sort',1);
  31. $page = I('page');
  32. $keyword = I('keyword','','trim');
  33. $pageSize = I('page_size',10);
  34. $condition = array('course_status'=>3,'course_flag'=>2,'a.is_delete'=>1);
  35. if (!empty($keyword)){
  36. $condition['course_name|user_name'] = array('LIKE','%'.$keyword.'%');
  37. }
  38. $orderby = '';
  39. if ($sort==1){
  40. $orderby = 'course_join desc';
  41. }else if($sort==2){
  42. $orderby = 'course_id desc';
  43. }
  44. $join = 'a LEFT JOIN __USER__ b ON a.user_id=b.user_id';
  45. $count = M('Course')->join($join)->where($condition)->count();
  46. $field = 'user_name,user_phone,user_icon,course_id,a.user_id,course_flag,course_name,course_content,course_join,course_num,course_source,a.operate_dt';
  47. $res = M('Course')->join($join)->where($condition)->field($field)->order($orderby)->page($page,$pageSize)->select();
  48. $data = array('code'=>0,'msg'=>'','data'=>['total'=>$count,'list'=>$res]);
  49. $this->returnData($data);exit;
  50. }
  51. //获取单词列表
  52. public function words(){
  53. $sort = I('sort',1);
  54. $page = I('page');
  55. $courseId = I('course_id');
  56. $pageSize = I('page_size',10);
  57. $keyword = I('keyword','');
  58. if (empty($courseId) || $courseId<1000000){
  59. $data = array('code'=>1,'msg'=>'课程ID错误');
  60. $this->returnData($data);exit;
  61. }
  62. $condition = array('is_delete'=>1,'course_id'=>$courseId);
  63. if (!empty($keyword)){
  64. $condition['words_name'] = array('LIKE','%'.$keyword.'%');
  65. }
  66. $orderby = '';
  67. if ($sort==1){
  68. $orderby = 'words_id asc';
  69. }
  70. $count = M('Words')->where($condition)->count();
  71. $res = M('Words')->where($condition)->order($orderby)->page($page,$pageSize)->select();
  72. $wordsList = array();
  73. foreach ($res as $row){
  74. $wordsList[] = array(
  75. 'words_id' => $row['words_id'],
  76. 'course_id' => $row['course_id'],
  77. 'words_name' => $row['words_name'],
  78. 'words_voice' => $row['words_voice'],
  79. 'words_read' => $row['words_read'],
  80. 'operate_dt' => $row['operate_dt'],
  81. 'words_text' => $this->getWordsText($row),
  82. );
  83. }
  84. $data = array('code'=>0,'msg'=>'','data'=>['total'=>$count,'list'=>$wordsList]);
  85. $this->returnData($data);exit;
  86. }
  87. //自由记详情
  88. public function notepadInfo(){
  89. $courseId = I('course_id');
  90. $info = M('Course')->where(['course_id'=>$courseId])->field('course_id,course_name,course_content')->find();
  91. $data = array('code'=>0,'msg'=>'','data'=>$info);
  92. $this->returnData($data);exit;
  93. }
  94. //单词详情
  95. public function wordsInfo(){
  96. $wordsId = I('words_id');
  97. $info = M('Words')->where(['words_id'=>$wordsId])->find();
  98. $wordsPreId = '';
  99. $wordsNextId = '';
  100. if (!empty($info['course_id'])){
  101. $info = M('Words')->where(array('words_id'=>$wordsId))->find();
  102. $wordsPreInfo = M('Words')->where(array('course_id'=>$info['course_id'],'words_id'=>array('LT',$wordsId)))->order('words_id desc')->field('words_id')->find();
  103. if ($wordsPreInfo!=null){
  104. $wordsPreId = $wordsPreInfo['words_id'];
  105. }
  106. $wordsNextInfo = M('Words')->where(array('course_id'=>$info['course_id'],'words_id'=>array('GT',$wordsId)))->order('words_id asc')->field('words_id')->find();
  107. if ($wordsNextInfo!=null){
  108. $wordsNextId = $wordsNextInfo['words_id'];
  109. }
  110. $list = M('Words')->where(array('course_id'=>$info['course_id'],'words_id'=>array('GT',$wordsId)))->limit(9)->order('words_id asc')->field('course_id,words_id,words_name')->select();
  111. }
  112. $data = array('info'=>$info,'pre_id'=>$wordsPreId,'next_id'=>$wordsNextId,'list'=>$list);
  113. $data = array('code'=>0,'msg'=>'','data'=>$data);
  114. $this->returnData($data);exit;
  115. }
  116. //获取单词释义字符串
  117. public function getWordsText($row){
  118. $str = '';
  119. $wordsKeys = array('words_n','words_pron','words_adj','words_num','words_v','words_adv','words_art','words_prep','words_conj','words_int','words_vt','words_vi','words_other',);
  120. foreach ($wordsKeys as $key){
  121. if (!empty($row[$key])){
  122. $arr = explode('_', $key);
  123. $str .= $arr[1].'.'.$row[$key];
  124. }
  125. }
  126. return $str;
  127. }
  128. private function returnData($data){
  129. header('Content-Type:application/json; charset=utf-8');
  130. header("Access-Control-Allow-Origin: *");
  131. exit(json_encode($data));
  132. }
  133. }