SquareController.class.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. namespace Api\Controller;
  3. use Common\Controller\ApiController;
  4. class SquareController extends ApiController {
  5. public function __construct(){
  6. parent::__construct();
  7. }
  8. //上传列表
  9. public function index(){
  10. $sort = I('sort',1);
  11. $lastId = I('last_id',0);
  12. $keyword = I('keyword','');
  13. $pageSize = I('page_size',1000);
  14. $courseStatus = I('course_status');
  15. $condition = array('is_delete'=>1,'user_id'=>$this->userId,'is_show'=>1);
  16. if (!empty($keyword)){
  17. $condition['course_name'] = array('LIKE','%'.$keyword.'%');
  18. }
  19. if (!empty($courseStatus) && $courseStatus==1){
  20. $condition['course_status'] = array('IN','2,3');
  21. }
  22. if ($lastId>0){
  23. $condition['course_id'] = array('LT',$lastId);
  24. }
  25. //$count = M('Course')->where($condition)->count();
  26. $orderby = '';
  27. if ($sort==1){
  28. $orderby = 'course_join desc';
  29. }else if($sort==2){
  30. $orderby = 'course_id desc';
  31. }
  32. //$res = D('Course')->where($condition)->order($orderby)->limit($pageSize)->field('course_id,course_name,course_num,course_join,course_flag,operate_dt')->select();
  33. $res = D('Square')->getSquareList($condition, $pageSize, $orderby, $this->userId);
  34. if ($res!=NULL){
  35. $userWordsRes = $this->square();
  36. foreach ($res as $key=>$row){
  37. if (in_array($row['course_id'], $userWordsRes) || $row['user_id']==$this->userId){
  38. $res[$key]['is_add'] = 1;
  39. }else{
  40. $res[$key]['is_add'] = 0;
  41. }
  42. }
  43. }
  44. if (!empty($courseStatus) && $courseStatus==2){
  45. //$res1 = $this->getUserWords();
  46. }
  47. if ($res==NULL&&$lastId>0){
  48. $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
  49. $this->returnData($data);exit;
  50. }
  51. $data = array('code'=>0,'msg'=>'','data'=>$res);
  52. $this->returnData($data);exit;
  53. }
  54. public function getUserWords(){
  55. $condition = array(
  56. 'uw.user_id'=>$this->userId,
  57. 'uw.is_delete'=>1,
  58. 'c.is_delete'=>1,
  59. );
  60. $join = 'uw LEFT JOIN t_course c ON uw.course_id=c.course_id';
  61. $res1 = M('UserWords')->join($join)->where($condition)->field('c.course_id,c.user_id,c.course_name,c.course_num,c.course_join,c.course_status,uw.operate_dt,uw.uw_id,uw.uw_type')->order('uw_id desc')->select();
  62. }
  63. //指定用户的单词广场列表
  64. public function user(){
  65. $sort = I('sort',1);
  66. $lastId = I('last_id',0);
  67. $uId = I('u_id','');
  68. $pageSize = I('page_size',1000);
  69. if ($uId>0 && $uId<1000000){
  70. $data = array('code'=>1,'msg'=>'用户ID错误');
  71. $this->returnData($data);exit;
  72. }
  73. $condition = array('user_id'=>$uId,'course_status'=>3,'is_delete'=>1);
  74. if ($lastId>0){
  75. $condition['course_id'] = array('LT',$lastId);
  76. }
  77. $orderby = '';
  78. if ($sort==1){
  79. $orderby = 'course_join desc';
  80. }else if($sort==2){
  81. $orderby = 'course_id desc';
  82. }
  83. //$res = D('SquareModel')->getSquareList($condition,$pageSize,$orderby);
  84. $res = D('Course')->where($condition)->order($orderby)->limit($pageSize)->field('course_id,user_id,course_name,course_num,course_join,course_flag,operate_dt')->select();
  85. if ($res!=NULL){
  86. $userWordsRes = $this->square();
  87. foreach ($res as $key=>$row){
  88. if (in_array($row['course_id'], $userWordsRes) || $row['user_id']==$this->userId){
  89. $res[$key]['is_add'] = 1;
  90. }else{
  91. $res[$key]['is_add'] = 0;
  92. }
  93. }
  94. }
  95. if ($res==NULL && $lastId>0){
  96. $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
  97. $this->returnData($data);exit;
  98. }
  99. if ($lastId==0){
  100. $userInfo = M('User')->where(array('user_id'=>$uId))->field('user_id,user_name,user_icon,user_sex')->find();
  101. if ($uId!=$this->userId){
  102. $fansInfo = M('Fans')->where(array('user_id'=>$this->userId,'fans_user_id'=>$uId))->field('fans_id')->find();
  103. $userInfo['is_fans'] = $fansInfo==NULL?0:1;
  104. }else{
  105. $userInfo['is_fans'] = 2;
  106. }
  107. $fansCount = M('Fans')->where(array('fans_user_id'=>$uId))->count();
  108. $userInfo['fans_nums'] = $fansCount==NULL?0:$fansCount;
  109. }else{
  110. $userInfo = new \stdClass();
  111. }
  112. $data = array('code'=>0,'msg'=>'','data'=>$res,'info'=>$userInfo);
  113. if ($lastId==0){
  114. $data['info'] = $userInfo;
  115. }
  116. $this->returnData($data);exit;
  117. }
  118. //搜索课程和自由记
  119. public function search(){
  120. $sort = I('sort',1);
  121. $lastId = I('last_id',0);
  122. $pageSize = I('page_size',10);
  123. $keyword = I('keyword','');
  124. $condition = array('course_status'=>3);
  125. if (empty($keyword)){
  126. $data = array('code'=>1,'msg'=>'关键词不能为空');
  127. $this->returnData($data);exit;
  128. }
  129. if (!empty($keyword)){
  130. $condition['course_name'] = array('LIKE','%'.$keyword.'%');
  131. }
  132. if ($lastId>0){
  133. $condition['course_id'] = array('LT',$lastId);
  134. }
  135. //$count = M('Course')->where($condition)->count();
  136. $orderby = '';
  137. if ($sort==1){
  138. $orderby = 'course_join desc';
  139. }else if($sort==2){
  140. $orderby = 'course_id desc';
  141. }
  142. $res = D('Square')->getSquareList($condition, $pageSize, $orderby);
  143. if ($res!=NULL){
  144. $userWordsRes = $this->square();
  145. foreach ($res as $key=>$row){
  146. if (in_array($row['course_id'], $userWordsRes) || $row['user_id']==$this->userId){
  147. $res[$key]['is_add'] = 1;
  148. }else{
  149. $res[$key]['is_add'] = 0;
  150. }
  151. }
  152. }
  153. if ($res==NULL && $lastId>0){
  154. $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
  155. $this->returnData($data);exit;
  156. }
  157. $data = array('code'=>0,'msg'=>'','data'=>$res);
  158. $this->returnData($data);exit;
  159. }
  160. //获取已经添加的课程或者自由记
  161. private function square($uwType=0){
  162. $condition = array('user_id'=>$this->userId);
  163. if (!empty($uwType)){
  164. $condition['uw_type'] = $uwType;
  165. }
  166. $res = M('UserWords')->where($condition)->field('course_id')->select();
  167. if ($res==NULL){
  168. return array();
  169. }
  170. $arr = array();
  171. foreach ($res as $r){
  172. $arr[] = $r['course_id'];
  173. }
  174. return $arr;
  175. }
  176. }