ShareController.class.php20180105 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. namespace Api\Controller;
  3. use Common\Controller\ApiController;
  4. class ShareController extends ApiController {
  5. public function __construct(){
  6. parent::__construct();
  7. }
  8. //好友动态
  9. public function friend(){
  10. $uid = I('uid');
  11. $lastId = I('last_id',0);
  12. $pageSize = I('page_size',15);
  13. if (empty($uid) || $uid<1000000){
  14. $data = array('code'=>1,'msg'=>'用户ID错误');
  15. echo json_encode($data);exit;
  16. }
  17. $condition = array('user_id'=>$uid,'share_status'=>1);
  18. if ($lastId>0){
  19. $condition['share_id'] = array('LT',$lastId);
  20. }
  21. $res = M('Share')->where($condition)->field('share_id,share_content,operate_dt')->order('share_id desc')->limit($pageSize)->select();
  22. if ($res == NULL){
  23. $data = array('code'=>0,'msg'=>'', 'data'=>'{}');
  24. echo json_encode($data);exit;
  25. }
  26. foreach ($res as $k=>$r){
  27. $shareRes = M('ShareUser')->where(array('share_id'=>$r['share_id']))->field('user_id')->select();
  28. if ($shareRes==NULL){
  29. $res[$k]['user_list'] = array();
  30. }
  31. $userIdArr = array();
  32. if (function_exists('array_column')){
  33. $userIdArr = array_column($shareRes, 'user_id');
  34. }else{
  35. foreach ($shareRes as $share){
  36. $userIdArr[] = $share['user_id'];
  37. }
  38. }
  39. //$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();
  40. //$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();
  41. $cons = 'friend_status = 2 AND user_id = 3 AND ref_user_id IN ('.implode(',', $userIdArr).')';
  42. $userList = M('Friend')->field('user_id,user_nickname')
  43. ->where(array('friend_status'=>2,'ref_user_id'=>$this->userId,'user_id'=>array('IN',implode(',', $userIdArr))))
  44. ->union("SELECT ref_user_id as user_id,ref_user_nickname as user_nickname FROM t_friend WHERE $cons",TRUE)
  45. ->select();
  46. $res[$k]['user_list'] = $userList;
  47. }
  48. $data = array('code'=>0,'msg'=>'', 'data'=>$res);
  49. echo json_encode($data);exit;
  50. }
  51. //全部动态
  52. public function index(){
  53. $lastId = I('last_id',0);
  54. $pageSize = I('page_size',15);
  55. $condition = array('share_status'=>1);
  56. if ($lastId>0){
  57. $condition['share_id'] = array('LT',$lastId);
  58. }
  59. /* $join = ' s LEFT JOIN t_user u ON s.user_id=u.user_id';
  60. $field = 'share_id,s.user_id,share_content,operate_dt,u.user_name,user_icon';
  61. $res = M('Share')->join($join)->where($condition)->field($field)->order('share_id desc')->limit($pageSize)->select(); */
  62. $res = M('Share')->where($condition)->field('share_id,user_id,share_content,operate_dt')->order('share_id desc')->limit($pageSize)->select();
  63. if ($res == NULL){
  64. $data = array('code'=>0,'msg'=>'', 'data'=>'{}');
  65. echo json_encode($data);exit;
  66. }
  67. foreach ($res as $k=>$r){
  68. //获取用户头像、昵称、用户名
  69. if ($r['user_id']<$this->userId){
  70. //$field = 'u.user_id,user_phone,user_name,user_level,user_sex,user_icon,f.user_nickname';
  71. $field = 'user_name,user_icon,f.user_nickname';
  72. $info = M('Friend')->join(' f LEFT JOIN t_user u ON f.user_id=u.user_id')
  73. ->where(array('f.user_id'=>$r['user_id'],'ref_user_id'=>$this->userId))
  74. ->field($field)->find();
  75. }else{
  76. //$field = 'u.user_id,user_phone,user_name,user_level,user_sex,user_icon,f.ref_user_nickname as user_nickname';
  77. $field = 'user_name,user_icon,f.ref_user_nickname as user_nickname';
  78. $info = M('Friend')->join(' f LEFT JOIN t_user u ON f.ref_user_id=u.user_id')
  79. ->where(array('ref_user_id'=>$r['user_id'],'f.user_id'=>$this->userId))
  80. ->field($field)->find();
  81. }
  82. if ($info==NULL){
  83. $info = M('User')->where(array('user_id'=>$r['user_id']))->field('user_name,user_icon')->find();
  84. $info['user_nickname'] = '';
  85. }
  86. $res[$k]['user_icon'] = $info['user_icon'];
  87. $res[$k]['user_name'] = $info['user_name'];
  88. $res[$k]['user_nickname'] = $info['user_nickname'];
  89. //获取好友点赞
  90. $shareRes = M('ShareUser')->join('sw LEFT JOIN t_user u ON sw.user_id=u.user_id')
  91. ->where(array('share_id'=>$r['share_id']))
  92. ->field('sw.user_id,u.user_icon,u.user_name')->select();
  93. if ($shareRes==NULL){
  94. $res[$k]['user_list'] = array();
  95. }
  96. //处理如果是好友的展示备注
  97. foreach ($shareRes as $key=>$row){
  98. if ($row['user_id']<$this->userId){
  99. $fieldF = 'user_nickname';
  100. $infoFriend = M('Friend')->where(array('f.user_id'=>$row['user_id'],'ref_user_id'=>$this->userId))->field($fieldF)->find();
  101. }else{
  102. $fieldF = 'f.ref_user_nickname as user_nickname';
  103. $infoFriend = M('Friend')->where(array('ref_user_id'=>$r['user_id'],'f.user_id'=>$this->userId))->field($fieldF)->find();
  104. }
  105. if ($infoFriend==NULL){
  106. $shareRes[$key]['user_nickname'] = '';
  107. }else{
  108. $shareRes[$key]['user_nickname'] = $infoFriend['user_nickname'];
  109. }
  110. }
  111. $res[$k]['user_list'] = $shareRes;
  112. }
  113. $data = array('code'=>0,'msg'=>'', 'data'=>$res);
  114. echo json_encode($data);exit;
  115. }
  116. }