Relation.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 关系
  7. */
  8. class Relation extends Api
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. //关系列表
  13. public function lists(){
  14. $uid = input('uid',$this->auth->id);
  15. //所有
  16. $list = Db::name('relation')->where('is_show',1)->order('weigh desc')->select();
  17. //已有关系
  18. $user_relation = Db::name('user_relation')->alias('ur')
  19. ->field('ur.*,u.avatar,u.nickname,to.avatar as to_avatar,to.nickname as to_nickname')
  20. ->join('user u','ur.uid = u.id','LEFT')
  21. ->join('user to','ur.to_uid = to.id','LEFT')
  22. ->where('ur.uid|ur.to_uid',$uid)->where('ur.status',1)->select();
  23. $user_relation = list_domain_image($user_relation,['avatar','to_avatar']);
  24. $new_user_relation = array_column($user_relation,null,'relation_id');
  25. //处理,留对方的头像和昵称
  26. foreach($list as $key => &$val){
  27. $val['info'] = [];
  28. if(isset($new_user_relation[$val['id']])){
  29. $info = $new_user_relation[$val['id']];
  30. if($info['uid'] == $uid){
  31. $info['avatar'] = $info['to_avatar'];
  32. $info['nickname'] = $info['to_nickname'];
  33. unset($info['to_avatar']);
  34. unset($info['to_nickname']);
  35. }else{
  36. unset($info['to_avatar']);
  37. unset($info['to_nickname']);
  38. }
  39. $val['info'] = $info;
  40. }
  41. }
  42. $this->success('success',$list);
  43. }
  44. //新增举报
  45. public function addone(){
  46. $to_uid = input('to_uid',0);
  47. if($to_uid == $this->auth->id){
  48. $this->error('不能跟自己建立关系');
  49. }
  50. //关系检测
  51. $relation_id = input('relation_id','');
  52. $relation = Db::name('relation')->where('id',$relation_id)->find();
  53. if(empty($relation)){
  54. $this->error('不存在的关系');
  55. }
  56. //检查已有关系
  57. $where = '(uid = '.$this->auth->id.' and to_uid = '.$to_uid.') or (uid = '.$to_uid.' and to_uid = '.$this->auth->id.')';
  58. $check = Db::name('user_relation')->where($where)->find();
  59. if($check){
  60. $now_relation = Db::name('relation')->where('id',$check['relation_id'])->value('name');
  61. if($check['status'] == 1){
  62. if($check['uid'] = $this->auth->id){
  63. $this->error('您已经与该用户建立'.$now_relation.'关系');
  64. }else{
  65. $this->error('该用户已经与您建立'.$now_relation.'关系');
  66. }
  67. }elseif($check['status'] == 0){
  68. if($check['uid'] = $this->auth->id){
  69. $this->error('您已经申请建立'.$now_relation.'关系,待对方同意');
  70. }else{
  71. $this->error('对方已经申请建立'.$now_relation.'关系,待您同意');
  72. }
  73. }elseif($check['status'] == 2){
  74. $this->error($now_relation.'关系的申请已被拒绝,七日内不能申请');
  75. }else{
  76. //可以申请
  77. }
  78. }else{
  79. //可以申请
  80. }
  81. //新增
  82. $data = [
  83. 'uid' => $this->auth->id,
  84. 'relation_id' => $relation_id,
  85. 'to_uid' => $to_uid,
  86. 'status' => 0,
  87. 'createtime' => time(),
  88. 'updatetime' => time(),
  89. ];
  90. $id = Db::name('user_relation')->insertGetId($data);
  91. $this->success('申请成功,等待对方同意',$id);
  92. }
  93. //待审核关系
  94. public function audit_lists(){
  95. $list = Db::name('user_relation')->alias('ur')
  96. ->field('ur.*,relation.name as relation_name,user.nickname,user.avatar,user.gender,user.birthday,user.attribute,uw.vip_endtime')
  97. ->join('relation','ur.relation_id = relation.id','LEFT')
  98. ->join('user','ur.uid = user.id','LEFT')
  99. ->join('user_wallet uw','ur.uid = uw.user_id','LEFT')
  100. ->where('ur.to_uid',$this->auth->id)
  101. ->where('ur.status',0)
  102. ->order('ur.id desc')->autopage()->select();
  103. $list = list_domain_image($list,['avatar']);
  104. if(!empty($list)){
  105. foreach($list as $key => &$val){
  106. //用户年龄
  107. $val['age'] = birthtime_to_age($val['birthday']);
  108. unset($val['birthday']);
  109. //用户vip
  110. $val['is_vip'] = $val['vip_endtime'] > time() ? 1 : 0;
  111. unset($val['vip_endtime']);
  112. }
  113. }
  114. $this->success('success',$list);
  115. }
  116. //审核
  117. public function audit(){
  118. $id = input('id',0);
  119. $status = input('status',1);
  120. $info = Db::name('user_relation')->alias('ur')
  121. ->where('ur.id',$id)
  122. ->where('ur.to_uid',$this->auth->id)
  123. ->where('ur.status',0)
  124. ->find();
  125. if(!$info){
  126. $this->error('请刷新重试');
  127. }
  128. $data = [
  129. 'status' => $status,
  130. 'updatetime' => time(),
  131. ];
  132. Db::name('user_relation')->where('id',$id)->update($data);
  133. if($status == 1){
  134. $remark = '您已同意建立关系';
  135. }else{
  136. $remark = '已拒绝';
  137. }
  138. $this->success($remark);
  139. }
  140. }