123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 16/7/21
- * Time: 下午12:07
- */
- require_once (BASE_ROOT_PATH . '/helper/relation_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/util_helper.php');
- require_once (BASE_ROOT_PATH . '/helper/room_helper.php');
- class member_relationControl extends mbMemberControl
- {
- //subscriber TEXT COMMENT '订阅我为好友的人。',
- //follower TEXT COMMENT '我订阅别人成为好友通过的人。'
- public function __construct()
- {
- parent::__construct();
- relation_helper::onLogin($_SESSION['member_id']);
- }
- //我关注的人
- public function subscriberOp()
- {
- $iRelation = new relation\mem_relation($_SESSION['member_id']);
- $follower = $iRelation->follower();
- $mem_desc = array();
- $pages = 0;
- $follower_infos = array();
- if(!empty($follower))
- {
- $follower = self::separate_page($follower,$pages);
- $members = Model('member')->getMemberList(array('member_id' => array('in',$follower)));
- foreach ($members as $val) {
- $info = new member_info($val);
- array_push($mem_desc,$info->filter());
- }
- $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follower)));
- foreach ($f_infos as $val)
- {
- $relation = new relation\mem_relation($val);
- $item = ['fans_count' =>$relation->subscriber_count(),
- 'member_id' => $relation->member_id(),
- 'subscribed' => true];
- array_push($follower_infos,$item);
- }
- }
- return self::outsuccess(array('subscribers' => $follower_infos,
- 'count' => $iRelation->follower_count(),
- 'mem_desc' => $mem_desc,
- 'mobile_page' => mobile_page($pages)));
- }
- //我的粉丝
- public function followerOp()
- {
- $iRelation = new relation\mem_relation($_SESSION['member_id']);
- $follows = $iRelation->subscriber();
- $mem_desc = array();
- $pages = 0;
- $follower_infos = array();
- if(!empty($follows))
- {
- $follows = self::separate_page($follows,$pages);
- $members = Model('member')->getMemberList(array('member_id' => array('in',$follows)));
- foreach ($members as $val) {
- $info = new member_info($val);
- array_push($mem_desc,$info->filter());
- }
- $f_infos = Model('member_relation')->getRelationList(array('member_id' => array('in',$follows)));
- foreach ($f_infos as $val)
- {
- $relation = new relation\mem_relation($val);
- $item = [ 'fans_count' => $relation->subscriber_count(),
- 'member_id' => $relation->member_id(),
- 'subscribed' => $iRelation->is_follower($relation->member_id())];
- array_push($follower_infos,$item);
- }
- }
- return self::outsuccess(['followers' => $follower_infos,
- 'count' => $iRelation->subscriber_count(),
- 'mem_desc' => $mem_desc,
- 'mobile_page' => mobile_page($pages)]);
- }
- public function subscribeOp()
- {
- if(!isset($_GET['userid']) || empty($_GET['userid'])) {
- return self::outerr(errcode::ErrParamter,"需要传递userid参数.");
- }
- $userid = intval($_GET['userid']);
- if($userid <= 0) {
- return self::outerr(errcode::ErrParamter,"userid必须大于0.");
- }
- try
- {
- if(relation_helper::is_follow(session_helper::memberid(),$userid))
- {
- try
- {
- if(relation_helper::onUnSubscribe(session_helper::memberid(),$userid) == true) {
- return self::outsuccess(NULL);
- } else{
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- } catch (Exception $ex) {
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
- else
- {
- if(relation_helper::onSubscribe(session_helper::memberid(),$userid) == true) {
- return self::outsuccess(NULL);
- } else{
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
- }
- catch (Exception $ex) {
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
-
- public function unsubscribeOp()
- {
- if(!isset($_GET['userid']) || empty($_GET['userid'])) {
- return self::outerr(errcode::ErrParamter,"需要传递userid参数.");
- }
- $userid = intval($_GET['userid']);
- if($userid <= 0) {
- return self::outerr(errcode::ErrParamter,"userid必须大于0.");
- }
- try
- {
- if(relation_helper::is_follow($_SESSION['member_id'],$userid))
- {
- if(relation_helper::onUnSubscribe($_SESSION['member_id'],$userid) == true) {
- return self::outsuccess(NULL);
- } else{
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
- else
- {
- if(relation_helper::onSubscribe($_SESSION['member_id'],$userid) == true) {
- return self::outsuccess(NULL);
- } else{
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
- }
- catch (Exception $ex) {
- return self::outerr(errcode::ErrRelation,"关注的用户不存在");
- }
- }
- public function kinsOp()
- {
- $mem_desc = [];
- $kins = [];
- $invitor = $this->inviter();
- if($this->page_no() == 1 && !empty($invitor)) {
- $info = new member_info($invitor);
- $item = $info->filter();
- $item['is_invitor'] = true;
- $kin['fans_count'] = 3;
- $kin['member_id'] = $info->member_id();
- $kin['subscribed'] = true;
- $kins[] = $kin;
- $mem_desc [] = $item;
- }
- $mod_member = Model('member');
- $invitees = $mod_member->getMemberList(['inviter_id' => $_SESSION['member_id']],'*',$this->page_size());
- foreach ($invitees as $val) {
- $info = new member_info($val);
- $item = $info->filter();
- $item['is_invitor'] = true;
- $mem_desc [] = $item;
- $kin['fans_count'] = 3;
- $kin['member_id'] = $info->member_id();
- $kin['subscribed'] = true;
- $kins[] = $kin;
- }
- $pages = $mod_member->gettotalpage();
- $count = $mod_member->gettotalnum() + (empty($invitor) ? 0 : 1);
- return self::outsuccess(['count' => $count,
- 'kins' => $kins,
- 'mem_desc' => $mem_desc,
- 'mobile_page' => mobile_page($pages)]);
- }
- private function inviter()
- {
- $mod_member = Model('member');
- if(isset($_SESSION['inviter_id']) == false) {
- $inviter_id = $mod_member->getMemberInfo(['member_id' => $_SESSION['member_id']],'inviter_id');
- $_SESSION['inviter_id'] = $inviter_id;
- }
- $inviter_id = $_SESSION['inviter_id'];
- if($inviter_id > 0) {
- $info = $mod_member->getMemberInfoByID($inviter_id);
- return $info;
- } else {
- return false;
- }
- }
- //处理好友申请
- public function handle_applysOp()
- {
- $msgid = intval($_GET['msg_id']);
- $pass = boolval($_GET['pass']);
- $item = room_helper::message($msgid);
- if($item == false) {
- return self::outerr(errcode::ErrParamter);
- }
- $msg = json_decode($item['orgmsg'],true);
- $apply_user = intval($msg['from']['userid']);
- if($apply_user <= 0) {
- return self::outerr(errcode::ErrParamter);
- }
- if($msg['state'] === 'pending')
- {
- $mod_room = Model('room');
- if($msg['type'] == 'apply_friend')
- {
- if($pass)
- {
- $relateion = new relation\mem_relation(session_helper::memberid());
- $isfriend = $relateion->is_friends($apply_user);
- if($isfriend) {
- $msg['state'] = 'accept';
- $mod_room->updateMsg($msgid,['orgmsg' => json_encode($msg,JSON_UNESCAPED_UNICODE)]);
- return self::outerr(errcode::ErrMemberNotExist,"你们已经是好友了");
- }
- relation_helper::onAccept(session_helper::memberid(),$apply_user);
- room\pusher::instance()->new_friend(session_helper::memberid(),$apply_user);
- room\pusher::instance()->new_friend($apply_user,session_helper::memberid());
- $msg['state'] = 'accept';
- } else {
- $msg['state'] = 'refuse';
- }
- }
- elseif($msg['type'] == 'apply_room')
- {
- $roomid = $msg['room_id'];
- if($pass) {
- room\factory_client::instance()->invite($roomid, session_helper::memberid(),[$apply_user]);
- $msg['state'] = 'accept';
- } else {
- $msg['state'] = 'refuse';
- }
- }
- else {
- }
- if($msg['state'] != 'pending') {
- $mod_room->updateMsg($msgid,['orgmsg' => json_encode($msg,JSON_UNESCAPED_UNICODE)]);
- }
- }
- return self::outsuccess(null,"处理成功");
- }
- }
|