0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } //用户注册完成后 function callbackAfterUserRegisterCommand(Request $request): Response { $userID= Input('userID'); $nickname= Input('nickname'); $users = Input('users'); $im = new \support\OpenImSdk\Client([ 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 'secret' => 'n1e5a6s6m7', // OpenIM密钥 ]); foreach($users as $k=>$v){ // 'userID' => '0EO9K107ON', // 'nickname' => '坏蛋', // 'faceURL' => '/static/img/avatar.png', // 'ex' => '', // 'createTime' => 0, // 'appMangerLevel' => 0, // 'globalRecvMsgOpt' => 0, $im->message->sendBusinessNotification('official_team',idEncode($v['userID']),[ 'contentType' => 101, 'textElem' => [ 'content' => '欢迎使用'.Config('site.name') ] ]); } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 在发送单聊消息前的回调 * @return void */ public function callbackBeforeSendSingleMsgCommand(Request $request): Response { //log_alert(Input()); // $user_id = Input('sendID'); // $recv_user_id = Input( 'recvID'); // $status = Input('status',1); // $sessionType = Input('sessionType',null); // if($status == 1 && $sessionType != 4){ // //$max = 10000000000;//限制消息数量 // $user_rights = get_user_rights($user_id); // $max = $user_rights['max_send_msg_count']; // $sended_msg_count = cache('single_msg_count_'.$user_id)??0 + cache('group_msg_count_'.$user_id)??0; // if($sended_msg_count > $max){ // return json([ // "actionCode" => 0, // "errCode" => 1002, // "errMsg" => "超出消息数量限制,请先开通或升级会员", // "errDlt" => "超出消息数量限制,请先开通或升级会员", // "nextCode"=> 1 // ]); // } // } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 发送单聊消息后的回调 * @return void */ public function callbackAfterSendSingleMsgCommand(Request $request): Response { $user_id = Input('sendID'); $recv_user_id = Input('recvID'); $status = Input('status',1); $sessionType = Input('sessionType',null); if($status == 1 && $sessionType != 4){ $key = '_msg_count_'.$user_id; if($sessionType == 1){ $key = 'single'.$key; } if($sessionType == 2){ $key = 'group'.$key; } cache_add($key,1); } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 发送群聊消息前的回调 * @return void */ public function callbackBeforeSendGroupleMsgCommand(Request $request): Response { return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 发送群聊消息后的回调 * @return void */ public function callbackAfterSendGroupleMsgCommand(Request $request): Response { return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 发送好友申请之前的回调 * @return void */ public function callbackBeforeAddFriendCommand(Request $request): Response{ $from_user_id = Input('fromUserID'); $to_user_id = Input('toUserID'); $handleResult = Input('handleResult'); $key = 'friend_count_'.$from_user_id; $user_rights = get_user_rights($from_user_id); $max = isset($user_rights['max_friend_count']) ? $user_rights['max_friend_count'] : -1; if(cache($key) > $max){ return json([ "actionCode" => 0, "errCode" => 1001, "errMsg" => "超出好友数量限制,请先开通或升级会员", "errDlt" => "超出好友数量限制,请先开通或升级会员", "nextCode" => 1 ]); } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 发送好友申请之后的回调 * @return void */ public function callbackAfterAddFriendCommand(Request $request): Response { $from_user_id = Input('fromUserID'); $to_user_id = Input('toUserID'); cache_add('friend_count_'.$to_user_id,1); cache_add('friend_count_'.$from_user_id,1); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 在添加好友对方同意之前的回调 * @return void */ public function callbackBeforeAddFriendAgreeCommand(Request $request): Response { $from_user_id = Input('fromUserID'); $to_user_id = Input('toUserID'); $handleResult = Input('handleResult'); if($handleResult == 1){ $key = 'friend_count_'.$to_user_id; $user_rights = get_user_rights($to_user_id); $max = isset($user_rights['max_friend_count']) ? $user_rights['max_friend_count'] : -1; if(cache($key) > $max){ return json([ "actionCode" => 0, "errCode" => 1001, "errMsg" => "超出好友数量限制,请先开通或升级会员", "errDlt" => "超出好友数量限制,请先开通或升级会员", "nextCode"=> 1 ]); } } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 在添加好友对方同意之前的回调 * @param Request $request * @return void */ public function callbackAfterAddFriendAgreeCommand(Request $request):Response { return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 用户在线状态回调 * @return void */ public function callbackAfterUserOnlineCommand(Request $request): Response { $user_id = Input('userID'); //Db::name('user')->where('id',$user_id)->update(['online'=>1]); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 用户离线状态回调 * @return void */ public function callbackAfterUserOfflineCommand(Request $request): Response{ $user_id = Input('userID'); //Db::name('user')->where('id',$user_id)->update(['online'=>0]); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } //用户删除好友之后得回调 function callbackAfterDeleteFriendCommand() : Response { $friendUserID = Input('friendUserID'); $ownerUserID = Input('ownerUserID'); $sdk = $this->getSdk(); $relation = $sdk->friend->isFriend($friendUserID,$ownerUserID); if($relation){ if($relation['inUser1Friends']){ $this->getSdk()->friend->deleteFriend($friendUserID,$ownerUserID); } if($relation['inUser2Friends']){ $this->getSdk()->friend->deleteFriend($ownerUserID,$friendUserID); } } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 在创建群组之前的回调 * @return void */ public function callbackbeforeCreateGroupCommand(Request $request): Response { $from_user_id = Input('fromUserID'); $to_user_id = Input('toUserID'); $handleResult = Input('handleResult'); if($handleResult == 1){ $key = 'friend_count_'.$to_user_id; $user_rights = get_user_rights($to_user_id); $max = isset($user_rights['max_friend_count']) ? $user_rights['max_friend_count'] : -1; if(cache($key) > $max){ return json([ "actionCode" => 0, "errCode" => 1001, "errMsg" => "超出好友数量限制,请先开通或升级会员", "errDlt" => "超出好友数量限制,请先开通或升级会员", "nextCode"=> 1 ]); } } return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 在创建群组之后的回调 * @param Request $request * @return void */ public function callbackafterCreateGroupCommand(Request $request):Response { return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 转让群主之后的回调 * @param Request $request * @return void */ public function callbackAfterTransferGroupOwnerCommand(Request $request):Response { $oldOwnerUserID = Input('oldOwnerUserID'); $newOwnerUserID = Input('newOwnerUserID'); cache_add('user_'.$oldOwnerUserID.'_create_group_count',-1); cache_add('user_'.$newOwnerUserID.'_create_group_count',1); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 解散群组后回调 * @param Request $request * @return void */ public function callbackAfterDisMissGroupCommand(Request $request):Response { $groupID = Input('groupID'); $ownerID = Input('ownerID'); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 用户退出群组的回调 * @param Request $request * @return void */ public function callbackAfterQuitGroupCommand(Request $request):Response { $groupID = Input('groupID'); $userID = Input('userID'); cache_add('user_'.$userID.'_join_group_count',-1); cache_add('group_'.$groupID.'_user_count',-1); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 群成员进群之前的回调 * @param Request $request * @return void */ public function callbackBeforeMembersJoinGroupCommand(Request $request):Response { $groupID = Input('groupID'); $memberList = Input('memberList'); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 踢除群组成员的回调 * @param Request $request * @return void */ public function callbackAfterKickGroupCommand(Request $request):Response { $groupID = Input('groupID'); $kickedUserIDs = Input('kickedUserIDs'); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 新成员加入群组之后的回调 * @param Request $request * @return void */ public function callbackAfterJoinGroupCommand(Request $request):Response { $groupID = Input('groupID'); $userID = Input('userID'); cache_add('user_'.$userID.'_join_group_count',-1); cache_add('group_'.$groupID.'_user_count',-1); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 邀请新成员加入群组之前的回调 * @param Request $request * @return void */ public function callbackBeforeInviteJoinGroupCommand(Request $request):Response { $groupID = Input('groupID'); $invitedUserIDs = Input('invitedUserIDs'); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } /** * 申请加入群组之前的回调 * @param Request $request * @return void */ public function callbackBeforeJoinGroupCommand(Request $request):Response { $groupID = Input('groupID'); $applyID = Input('applyID'); return json([ "actionCode" => 0, "errCode" => 0, "errMsg" => "", "errDlt" => "", "nextCode"=> 0 ]); } function getSdk(){ $IM = new \support\OpenImSdk\Client([ 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 'secret' => 'n1e5a6s6m7', // OpenIM密钥 ]); return $IM; } }