514 lines
15 KiB
PHP
Executable File
514 lines
15 KiB
PHP
Executable File
<?php
|
|
namespace app\controller;
|
|
use support\Request;
|
|
use support\Response;
|
|
use think\facade\Db;
|
|
use app\model\User as UserModel;
|
|
class HookController{
|
|
function index(){
|
|
return 'ok';
|
|
}
|
|
function __call($method, $args):Response
|
|
{
|
|
//log_alert(Input());
|
|
return json([
|
|
"actionCode" => 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;
|
|
}
|
|
} |