member_relation.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/7/21
  6. * Time: 下午12:07
  7. */
  8. require_once (BASE_ROOT_PATH . '/helper/relation_helper.php');
  9. require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
  10. require_once (BASE_ROOT_PATH . '/helper/util_helper.php');
  11. class member_relationControl extends mbMemberControl
  12. {
  13. //subscriber TEXT COMMENT '订阅我为好友的人。',
  14. //follower TEXT COMMENT '我订阅别人成为好友通过的人。'
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. relation_helper::onLogin($_SESSION['member_id']);
  19. }
  20. //我关注的人
  21. public function subscriberOp()
  22. {
  23. $iRelation = new relation\mem_relation($_SESSION['member_id']);
  24. $follower = $iRelation->follower();
  25. $mem_desc = array();
  26. $pages = 0;
  27. $follower_infos = array();
  28. if(!empty($follower))
  29. {
  30. $follower = self::separate_page($follower,$pages);
  31. $members = Model('member')->getMemberList(array('member_id' => array('in',$follower)));
  32. foreach ($members as $val) {
  33. $info = new member_info($val);
  34. array_push($mem_desc,$info->filter());
  35. }
  36. $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follower)));
  37. foreach ($f_infos as $val)
  38. {
  39. $relation = new relation\mem_relation($val);
  40. $item = ['fans_count' =>$relation->subscriber_count(),
  41. 'member_id' => $relation->member_id(),
  42. 'subscribed' => true];
  43. array_push($follower_infos,$item);
  44. }
  45. }
  46. return self::outsuccess(array('subscribers' => $follower_infos,
  47. 'count' => $iRelation->follower_count(),
  48. 'mem_desc' => $mem_desc,
  49. 'mobile_page' => mobile_page($pages)));
  50. }
  51. //我的粉丝
  52. public function followerOp()
  53. {
  54. $iRelation = new relation\mem_relation($_SESSION['member_id']);
  55. $follows = $iRelation->subscriber();
  56. $mem_desc = array();
  57. $pages = 0;
  58. $follower_infos = array();
  59. if(!empty($follows))
  60. {
  61. $follows = self::separate_page($follows,$pages);
  62. $members = Model('member')->getMemberList(array('member_id' => array('in',$follows)));
  63. foreach ($members as $val) {
  64. $info = new member_info($val);
  65. array_push($mem_desc,$info->filter());
  66. }
  67. $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follows)));
  68. foreach ($f_infos as $val)
  69. {
  70. $relation = new relation\mem_relation($val);
  71. $item = [ 'fans_count' => $relation->subscriber_count(),
  72. 'member_id' => $relation->member_id(),
  73. 'subscribed' => $iRelation->is_follower($relation->member_id())];
  74. array_push($follower_infos,$item);
  75. }
  76. }
  77. return self::outsuccess(['followers' => $follower_infos,
  78. 'count' => $iRelation->subscriber_count(),
  79. 'mem_desc' => $mem_desc,
  80. 'mobile_page' => mobile_page($pages)]);
  81. }
  82. public function subscribeOp()
  83. {
  84. if(!isset($_GET['userid']) || empty($_GET['userid'])) {
  85. return self::outerr(errcode::ErrParamter,"需要传递userid参数.");
  86. }
  87. $userid = intval($_GET['userid']);
  88. if($userid <= 0) {
  89. return self::outerr(errcode::ErrParamter,"userid必须大于0.");
  90. }
  91. try
  92. {
  93. if(relation_helper::is_follow(session_helper::memberid(),$userid))
  94. {
  95. try
  96. {
  97. if(relation_helper::onUnSubscribe(session_helper::memberid(),$userid) == true) {
  98. return self::outsuccess(NULL);
  99. } else{
  100. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  101. }
  102. } catch (Exception $ex) {
  103. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  104. }
  105. }
  106. else
  107. {
  108. if(relation_helper::onSubscribe(session_helper::memberid(),$userid) == true) {
  109. return self::outsuccess(NULL);
  110. } else{
  111. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  112. }
  113. }
  114. }
  115. catch (Exception $ex) {
  116. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  117. }
  118. }
  119. public function unsubscribeOp()
  120. {
  121. if(!isset($_GET['userid']) || empty($_GET['userid'])) {
  122. return self::outerr(errcode::ErrParamter,"需要传递userid参数.");
  123. }
  124. $userid = intval($_GET['userid']);
  125. if($userid <= 0) {
  126. return self::outerr(errcode::ErrParamter,"userid必须大于0.");
  127. }
  128. try
  129. {
  130. if(relation_helper::is_follow($_SESSION['member_id'],$userid))
  131. {
  132. if(relation_helper::onUnSubscribe($_SESSION['member_id'],$userid) == true) {
  133. return self::outsuccess(NULL);
  134. } else{
  135. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  136. }
  137. }
  138. else
  139. {
  140. if(relation_helper::onSubscribe($_SESSION['member_id'],$userid) == true) {
  141. return self::outsuccess(NULL);
  142. } else{
  143. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  144. }
  145. }
  146. }
  147. catch (Exception $ex) {
  148. return self::outerr(errcode::ErrRelation,"关注的用户不存在");
  149. }
  150. }
  151. public function kinsOp()
  152. {
  153. $mem_desc = [];
  154. $kins = [];
  155. $invitor = $this->invitor();
  156. if($this->page_no() == 1 && !empty($invitor)) {
  157. $info = new member_info($invitor);
  158. $item = $info->filter();
  159. $item['is_invitor'] = true;
  160. $kin['fans_count'] = 3;
  161. $kin['member_id'] = $info->member_id();
  162. $kin['subscribed'] = true;
  163. $kins[] = $kin;
  164. $mem_desc [] = $item;
  165. }
  166. $mod_member = Model('member');
  167. $invitees = $mod_member->getMemberList(['inviter_id' => $_SESSION['member_id']],'*',$this->page_size());
  168. foreach ($invitees as $val) {
  169. $info = new member_info($val);
  170. $item = $info->filter();
  171. $item['is_invitor'] = true;
  172. $mem_desc [] = $item;
  173. $kin['fans_count'] = 3;
  174. $kin['member_id'] = $info->member_id();
  175. $kin['subscribed'] = true;
  176. $kins[] = $kin;
  177. }
  178. $pages = $mod_member->gettotalpage();
  179. $count = $mod_member->gettotalnum() + (empty($invitor) ? 0 : 1);
  180. return self::outsuccess(['count' => $count,
  181. 'kins' => $kins,
  182. 'mem_desc' => $mem_desc,
  183. 'mobile_page' => mobile_page($pages)]);
  184. }
  185. private function invitor()
  186. {
  187. $mod_member = Model('member');
  188. if(isset($_SESSION['inviter_id']) == false) {
  189. $inviter_id = $mod_member->getMemberInfo(['member_id' => $_SESSION['member_id']],'inviter_id');
  190. $_SESSION['inviter_id'] = $inviter_id;
  191. }
  192. $inviter_id = $_SESSION['inviter_id'];
  193. if($inviter_id > 0) {
  194. $info = $mod_member->getMemberInfoByID($inviter_id);
  195. return $info;
  196. } else {
  197. return false;
  198. }
  199. }
  200. }