123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php
- namespace Api\Controller;
- use Common\Controller\ApiController;
- class FansController extends ApiController {
- public function __construct(){
- parent::__construct();
- }
-
- //用户关注的所有人的列表
- public function index(){
- $userId = I('uid');
- $lastId = I('last_id',0);
- $pageSize = I('page_size',20);
- $user_name = I('user_name');
- if (empty($userId)){
- $userId = $this->userId;
- }
- $res = $this->fans($userId, $lastId, $pageSize, $user_name );
- /* if ($res==NULL){
- $res = array(new \stdClass());
- } */
- if ($res==NULL && $lastId>0){
- $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
- $this->returnData($data);exit;
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res,);
- $this->returnData($data);exit;
- }
- //关注此用户的所有人的列表
- public function user(){
- $userId = I('uid');
- $lastId = I('last_id',0);
- $pageSize = I('page_size',20);
- $user_name = I('user_name');
- if (empty($userId)){
- $userId = $this->userId;
- }
- $res = $this->fans_user($userId, $lastId, $pageSize, $user_name );
- /* if ($res==NULL){
- $res = array(new \stdClass());
- } */
- if ($res==NULL && $lastId>0){
- $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
- $this->returnData($data);exit;
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res,);
- $this->returnData($data);exit;
- }
-
- //用户关注的所有人的动态
- public function course(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',20);
- $uid = I('user_id');
- if(!$uid)$uid=$this->userId;
- $userRes = $this->fans($uid, $lastId, $pageSize);
- if ($userRes==NULL && $lastId>0){
- $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
- $this->returnData($data);exit;
- }
- $fansArr = array();
- $userIdArr = array();
- foreach ($userRes as $row){
- $userIdArr[] = $row['user_id'];
- $fansArr[$row['user_id']] = $row['fans_id'];
- }
- if (empty($userIdArr)){
- $data = array('code'=>0,'msg'=>'','data'=>array());
- $this->returnData($data);exit;
- }
- $condition = array('course_status'=>3,'course_flag'=>1,'is_show'=>1);
- $condition['user_id']=array('IN',$userIdArr);
- $orderby = 'course_id desc';
- $pageSize = I('page_size',1000);
- $res = D('Course')->getCourseList($condition, $pageSize, $orderby);
- if ($res!=NULL){
- $userWordsRes = $this->square();
- foreach ($res as $key=>$row){
- if (in_array($row['course_id'], $userWordsRes) || $row['user_id']==$this->userId){
- $res[$key]['is_add'] = 1;
- }else{
- $res[$key]['is_add'] = 0;
- }
- $res[$key]['fans_id'] = $fansArr[$row['user_id']];
- }
- }
- $data = array('code'=>0,'msg'=>'','data'=>$res);
- $this->returnData($data);exit;
- }
-
- //关注和取消关注
- public function edit(){
- $uid = I('uid');
- //1:关注,0:取关
- $toFollow = I('to_follow');
- if (!in_array($toFollow, array(0,1))){
- $data = array('code'=>0,'msg'=>'类型错误');
- $this->returnData($data);exit;
- }
- $userInfo = M('User')->where(array('user_id'=>$uid))->field('user_id')->find();
- if ($userInfo==NULL){
- $data = array('code'=>0,'msg'=>'用户id错误');
- $this->returnData($data);exit;
- }
- $res = M('Fans')->where(array('user_id'=>$this->userId,'fans_user_id'=>$uid))->field('fans_id')->find();
- if ($toFollow==1){
- if ($res==NULL){
- M('Fans')->add(array('user_id'=>$this->userId,'fans_user_id'=>$uid,'operate_dt'=>time(),));
- $data = array('code'=>0,'msg'=>'关注成功');
- $this->returnData($data);exit;
- }else{
- $data = array('code'=>0,'msg'=>'关注成功');
- $this->returnData($data);exit;
- }
- }else if($toFollow==0){
- if ($res==NULL){
- $data = array('code'=>0,'msg'=>'获取关注信息错误');
- $this->returnData($data);exit;
- }else{
- M('Fans')->where(array('user_id'=>$this->userId,'fans_user_id'=>$uid))->delete();
- $data = array('code'=>0,'msg'=>'取消关注成功');
- $this->returnData($data);exit;
- }
- }else{
- $data = array('code'=>1,'msg'=>'用户id错误');
- $this->returnData($data);exit;
- }
- }
-
- //获取关注列表
- private function fans($userId, $lastId, $pageSize, $user_name=''){
- if (!empty($lastId)){
- $join = 'f LEFT JOIN t_user u ON u.user_id=f.fans_user_id';
- $arr=array('f.user_id'=>$userId,'fans_id'=>array('LT',$lastId),);
- if($user_name){
- $arr['user_name']=array('like', "%{$user_name}%");
- }
- $res = M('Fans')->join($join)->where($arr)->order('fans_id desc')->limit($pageSize)->field('fans_id,u.user_id,user_name,user_icon')->select();
- }else{
- $join = 'f LEFT JOIN t_user u ON u.user_id=f.fans_user_id';
- $arr=array('f.user_id'=>$userId,);
- if($user_name){
- $arr['user_name']=array('like', "%{$user_name}%");
- }
- $res = M('Fans')->join($join)->where($arr)->order('fans_id desc')->limit($pageSize)->field('fans_id,u.user_id,user_name,user_icon')->select();
- }
- return $res;
- }
- //获取被关注列表
- private function fans_user($userId, $lastId, $pageSize, $user_name=''){
-
- $join = 'f LEFT JOIN t_user u ON u.user_id=f.user_id';
-
- $arr=array('f.fans_user_id'=>$userId);
- if (!empty($lastId)){
- $arr['fans_id']=array('LT',$lastId);
- }
- if($user_name){
- $arr['user_name']=array('like', "%{$user_name}%");
- }
- $res = M('Fans')->join($join)->where($arr)->order('fans_id desc')->limit($pageSize)->field('fans_id,u.user_id,user_name,user_icon')->select();
-
- foreach($res as $k=>&$v){
- $fansInfo = M('Fans')->where(array('user_id'=>$userId,'fans_user_id'=>$v['user_id']))->field('fans_id')->find();
- $v['is_fans'] = $fansInfo==NULL?0:1;
- }
- return $res;
- }
-
- //获取已经添加的课程或者自由记
- private function square($uwType=0){
- $condition = array('user_id'=>$this->userId);
- if (!empty($uwType)){
- $condition['uw_type'] = $uwType;
- }
- $res = M('UserWords')->where($condition)->field('course_id')->select();
- if ($res==NULL){
- return array();
- }
- $arr = array();
- foreach ($res as $r){
- $arr[] = $r['course_id'];
- }
- return $arr;
- }
- }
|