123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- namespace Api\Controller;
- use Common\Controller\ApiController;
- class ShareController extends ApiController {
- public function __construct(){
- parent::__construct();
- }
- //好友动态
- public function friend(){
- $uid = I('uid');
- $lastId = I('last_id',0);
- $pageSize = I('page_size',15);
- if (empty($uid) || $uid<1000000){
- $data = array('code'=>1,'msg'=>'用户ID错误');
- echo json_encode($data);exit;
- }
- $condition = array('user_id'=>$uid,'share_status'=>1);
- if ($lastId>0){
- $condition['share_id'] = array('LT',$lastId);
- }
- $res = M('Share')->where($condition)->field('share_id,share_content,operate_dt')->order('share_id desc')->limit($pageSize)->select();
- if ($res == NULL){
- $data = array('code'=>0,'msg'=>'', 'data'=>'{}');
- echo json_encode($data);exit;
- }
- foreach ($res as $k=>$r){
- $shareRes = M('ShareUser')->where(array('share_id'=>$r['share_id']))->field('user_id')->select();
- if ($shareRes==NULL){
- $res[$k]['user_list'] = array();
- }
- $userIdArr = array();
- if (function_exists('array_column')){
- $userIdArr = array_column($shareRes, 'user_id');
- }else{
- foreach ($shareRes as $share){
- $userIdArr[] = $share['user_id'];
- }
- }
- //$userList1 = M('Friend')->where(array('friend_status'=>2,'user_id'=>$this->userId,'ref_user_id'=>array('IN',implode(',', $userIdArr))))->field('ref_user_id as user_id,ref_user_nickname as user_nickname')->select();
- //$userList2 = M('Friend')->where(array('friend_status'=>2,'ref_user_id'=>$this->userId,'user_id'=>array('IN',implode(',', $userIdArr))))->field('user_id,user_nickname')->select();
- $cons = 'friend_status = 2 AND user_id = 3 AND ref_user_id IN ('.implode(',', $userIdArr).')';
- $userList = M('Friend')->field('user_id,user_nickname')
- ->where(array('friend_status'=>2,'ref_user_id'=>$this->userId,'user_id'=>array('IN',implode(',', $userIdArr))))
- ->union("SELECT ref_user_id as user_id,ref_user_nickname as user_nickname FROM t_friend WHERE $cons",TRUE)
- ->select();
- $res[$k]['user_list'] = $userList;
- }
- $data = array('code'=>0,'msg'=>'', 'data'=>$res);
- echo json_encode($data);exit;
- }
- //全部动态
- public function index(){
- $lastId = I('last_id',0);
- $pageSize = I('page_size',15);
- $condition = array('share_status'=>1);
- if ($lastId>0){
- $condition['share_id'] = array('LT',$lastId);
- }
- /* $join = ' s LEFT JOIN t_user u ON s.user_id=u.user_id';
- $field = 'share_id,s.user_id,share_content,operate_dt,u.user_name,user_icon';
- $res = M('Share')->join($join)->where($condition)->field($field)->order('share_id desc')->limit($pageSize)->select(); */
- $res = M('Share')->where($condition)->field('share_id,user_id,share_content,operate_dt')->order('share_id desc')->limit($pageSize)->select();
- if ($res == NULL){
- $data = array('code'=>0,'msg'=>'', 'data'=>'{}');
- echo json_encode($data);exit;
- }
- foreach ($res as $k=>$r){
- //获取用户头像、昵称、用户名
- if ($r['user_id']<$this->userId){
- //$field = 'u.user_id,user_phone,user_name,user_level,user_sex,user_icon,f.user_nickname';
- $field = 'user_name,user_icon,f.user_nickname';
- $info = M('Friend')->join(' f LEFT JOIN t_user u ON f.user_id=u.user_id')
- ->where(array('f.user_id'=>$r['user_id'],'ref_user_id'=>$this->userId))
- ->field($field)->find();
- }else{
- //$field = 'u.user_id,user_phone,user_name,user_level,user_sex,user_icon,f.ref_user_nickname as user_nickname';
- $field = 'user_name,user_icon,f.ref_user_nickname as user_nickname';
- $info = M('Friend')->join(' f LEFT JOIN t_user u ON f.ref_user_id=u.user_id')
- ->where(array('ref_user_id'=>$r['user_id'],'f.user_id'=>$this->userId))
- ->field($field)->find();
- }
- if ($info==NULL){
- $info = M('User')->where(array('user_id'=>$r['user_id']))->field('user_name,user_icon')->find();
- $info['user_nickname'] = '';
- }
- $res[$k]['user_icon'] = $info['user_icon'];
- $res[$k]['user_name'] = $info['user_name'];
- $res[$k]['user_nickname'] = $info['user_nickname'];
- //获取好友点赞
- $shareRes = M('ShareUser')->join('sw LEFT JOIN t_user u ON sw.user_id=u.user_id')
- ->where(array('share_id'=>$r['share_id']))
- ->field('sw.user_id,u.user_icon,u.user_name')->select();
- if ($shareRes==NULL){
- $res[$k]['user_list'] = array();
- }
- //处理如果是好友的展示备注
- foreach ($shareRes as $key=>$row){
- if ($row['user_id']<$this->userId){
- $fieldF = 'user_nickname';
- $infoFriend = M('Friend')->where(array('f.user_id'=>$row['user_id'],'ref_user_id'=>$this->userId))->field($fieldF)->find();
- }else{
- $fieldF = 'f.ref_user_nickname as user_nickname';
- $infoFriend = M('Friend')->where(array('ref_user_id'=>$r['user_id'],'f.user_id'=>$this->userId))->field($fieldF)->find();
- }
- if ($infoFriend==NULL){
- $shareRes[$key]['user_nickname'] = '';
- }else{
- $shareRes[$key]['user_nickname'] = $infoFriend['user_nickname'];
- }
- }
- $res[$k]['user_list'] = $shareRes;
- }
- $data = array('code'=>0,'msg'=>'', 'data'=>$res);
- echo json_encode($data);exit;
- }
- }
|