diff --git a/app/api/controller/CommonController.php b/app/api/controller/CommonController.php index d3f523d..ffbc9bd 100755 --- a/app/api/controller/CommonController.php +++ b/app/api/controller/CommonController.php @@ -264,6 +264,7 @@ class CommonController extends BaseController{ * * @Apidoc\Method ("POST") * @Apidoc\Param("email", type="string",require=true, desc="邮箱") + * @Apidoc\Param("mobile", type="string",require=true, desc="手机号") * @Apidoc\Param("newpassword", type="string",require=true, desc="新密码") * @Apidoc\Param("code", type="string",require=true, desc="邮箱验证码,event=resetpwd") */ @@ -347,13 +348,12 @@ class CommonController extends BaseController{ captcha_verfiy('mobile','reset_trade_pwd',$user->mobile); } }else{ - if ($email && Validate::is($email, "email")) { - captcha_verfiy('email','reset_trade_pwd',$email); - $user = UserModel::getByEmail($email); - } if ($mobile && Validate::regex($mobile, "^1\d{10}$")) { captcha_verfiy('mobile','reset_trade_pwd',$mobile); $user = UserModel::getByMobile($mobile); + }elseif ($email && Validate::is($email, "email")) { + captcha_verfiy('email','reset_trade_pwd',$email); + $user = UserModel::getByEmail($email); } } if (!$user) { @@ -379,7 +379,7 @@ class CommonController extends BaseController{ * @Apidoc\Param("email", type="string",require=true, desc="邮箱,可选") */ public function captcha(Request $request){ - $debug = true; + $debug = false; $request->input('type'); $type = $request->input('type'); $event = $request->input('event'); diff --git a/app/api/controller/UserController.php b/app/api/controller/UserController.php index 251f511..b0d764f 100755 --- a/app/api/controller/UserController.php +++ b/app/api/controller/UserController.php @@ -27,7 +27,8 @@ class UserController extends BaseController{ public $noNeedLogin = []; /** * @Apidoc\Title("个人资料") - * @Apidoc\Method("GET") + * @Apidoc\Method("GET","POST") + * @Apidoc\Tag("常用") * @Apidoc\Desc("GET为获取用户信息,POST为修改数据") * @Apidoc\Param("nickname", type="string",require=true, desc="昵称") */ diff --git a/app/command/OpenIm.php b/app/command/OpenIm.php index 683a6c8..7b6e240 100755 --- a/app/command/OpenIm.php +++ b/app/command/OpenIm.php @@ -13,6 +13,7 @@ class OpenIm extends Command { protected static $defaultName = 'openim'; protected static $defaultDescription = 'OpenIm'; + public $sdk= null; /** * @return void @@ -37,23 +38,18 @@ class OpenIm extends Command if(method_exists($this, $action)){ return $this->$action($input, $output); } + $output->writeln($action.'不存在'); return self::FAILURE; } private function change_user(InputInterface $input, OutputInterface $output):int{ - $im = new \support\OpenImSdk\Client([ - 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 - 'secret' => 'n1e5a6s6m7', // OpenIM密钥 - ]); + $im = $this->getSdk(); $data = $im->user->updateUserInfo(idEncode('100006'),['userInfo'=>['userId'=>'wx100001']]); cp($data); return self::SUCCESS; } private function sync_users(InputInterface $input, OutputInterface $output):int{ - $im = new \support\OpenImSdk\Client([ - 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 - 'secret' => 'n1e5a6s6m7', // OpenIM密钥 - ]); + $im = $this->getSdk(); $data = $im->user->getAllUsersUid(1,1000); cp($data); return self::SUCCESS; @@ -82,4 +78,41 @@ class OpenIm extends Command } return self::SUCCESS; } + + function sync_cache(){ + $res = \app\model\Openim\Group::field('group_id,creator_user_id')->select(); + + $group_create = []; + foreach($res as $v){ + if(!isset($group_create[$v['creator_user_id']])){ + $group_create[$v['creator_user_id']] = 0; + } + if($v['status'] != 2){ + $group_create[$v['creator_user_id']]+=1; + } + cache('group_owner_'.$v['group_id'],$v['creator_user_id']); + $group_user_count = \app\model\Openim\GroupMember::field('group_id,count(*) as count') + ->where('group_id',$v['group_id']) + ->count('user_id'); + cp('群组数量',$v['group_id'],'成员数量:',$group_user_count); + cache('group_'.$v['group_id'].'_user_count',$group_user_count); + + } + //cp($group_create); + foreach($group_create as $userId =>$count){ + cp('用户:',$userId,'创建群组数量:',$count); + cache('user_'.$userId.'_create_group_count',$count); + } + return 0; + } + function getSdk(){ + if($this->sdk){ + return $this->sdk; + } + $this->sdk = new \support\OpenImSdk\Client([ + 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 + 'secret' => 'n1e5a6s6m7', // OpenIM密钥 + ]); + return $this->sdk; + } } diff --git a/app/controller/HookController.php b/app/controller/HookController.php index 53cf956..5fc34a5 100755 --- a/app/controller/HookController.php +++ b/app/controller/HookController.php @@ -5,19 +5,14 @@ use support\Response; use think\facade\Db; use app\model\User as UserModel; class HookController{ + public $sdk = null; function index(){ return 'ok'; } function __call($method, $args):Response { //log_alert(Input()); - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } //用户注册完成后 function callbackAfterUserRegisterCommand(Request $request): Response @@ -38,25 +33,16 @@ class HookController{ // 'createTime' => 0, // 'appMangerLevel' => 0, // 'globalRecvMsgOpt' => 0, - $im->message->sendBusinessNotification('official_team',idEncode($v['userID']),[ + $im->message->sendBusinessNotification('official_team',$v['userID'],[ 'contentType' => 101, 'textElem' => [ 'content' => '欢迎使用'.Config('site.name') ] ]); } - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 在发送单聊消息前的回调 - * @return void - */ + //在发送单聊消息前的回调 public function callbackBeforeSendSingleMsgCommand(Request $request): Response { //log_alert(Input()); @@ -68,30 +54,16 @@ class HookController{ // if($status == 1 && $sessionType != 4){ // //$max = 10000000000;//限制消息数量 // $user_rights = get_user_rights($user_id); - // $max = $user_rights['max_send_msg_count']; + // $max = $user_rights['right']['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 $this->error(1002,'超出消息数量限制,请先开通或升级会员'); // } // } - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 发送单聊消息后的回调 - * @return void - */ + + //发送单聊消息后的回调 public function callbackAfterSendSingleMsgCommand(Request $request): Response { @@ -109,76 +81,37 @@ class HookController{ } cache_add($key,1); } - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 发送群聊消息前的回调 - * @return void - */ + + //发送群聊消息前的回调 public function callbackBeforeSendGroupleMsgCommand(Request $request): Response { - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 发送群聊消息后的回调 - * @return void - */ + + //发送群聊消息后的回调 public function callbackAfterSendGroupleMsgCommand(Request $request): Response { - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 发送好友申请之前的回调 - * @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 - ]); + // $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['right']['max_friend_count']) ? $user_rights['right']['max_friend_count'] : -1; + // if(cache($key) > $max){ + + // return $this->error(1001,'超出好友数量限制,请先开通或升级会员'); + // } + return $this->success(); } - /** - * 发送好友申请之后的回调 - * @return void - */ + //发送好友申请之后的回调 public function callbackAfterAddFriendCommand(Request $request): Response { @@ -186,95 +119,46 @@ class HookController{ $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 $this->success(); } - /** - * 在添加好友对方同意之前的回调 - * @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 - ]); + // $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['right']['max_friend_count']) ? $user_rights['right']['max_friend_count'] : -1; + // if(cache($key) > $max){ + // return $this->error(1001,'超出好友数量限制,请先开通或升级会员'); + // } + // } + return $this->success(); } - /** - * 在添加好友对方同意之前的回调 - * @param Request $request - * @return void - */ + + //在添加好友对方同意之后的回调 public function callbackAfterAddFriendAgreeCommand(Request $request):Response { - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 用户在线状态回调 - * @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 $this->success(); } - /** - * 用户离线状态回调 - * @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 - ]); + return $this->success(); } //用户删除好友之后得回调 - function callbackAfterDeleteFriendCommand() : Response { + public function callbackAfterDeleteFriendCommand(Request $request): Response { $friendUserID = Input('friendUserID'); $ownerUserID = Input('ownerUserID'); $sdk = $this->getSdk(); @@ -287,212 +171,161 @@ class HookController{ $this->getSdk()->friend->deleteFriend($ownerUserID,$friendUserID); } } - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 在创建群组之前的回调 - * @return void - */ + //在创建群组之前的回调 + //执行顺序,callbackBeforeCreateGroupCommand -> callbackBeforeMembersJoinGroupCommand -> callbackAfterCreateGroupCommand 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 - ]); - } + $groupID = Input('groupID'); + $creatorUserID = Input('creatorUserID'); + $key = 'user_'.$creatorUserID.'_create_group_count'; + $user_rights = get_user_rights($creatorUserID); + $max_group_create_count = isset($user_rights['right']['max_group_create_count']) ? $user_rights['right']['max_group_create_count'] : -1; + if(cache($key) > $max_group_create_count){ + return $this->error(2001,'超出创建群组数量限制,请先开通或升级会员'); } - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + $max_group_user = $user_rights['right']['max_group_user_count']; + if(count(Input('initMemberList')) > $max_group_user){ + return $this->error(2002,'超出群组成员数量限制,请先开通或升级会员'); + } + return $this->success(); } - /** - * 在创建群组之后的回调 - * @param Request $request - * @return void - */ + //在创建群组之后的回调 public function callbackafterCreateGroupCommand(Request $request):Response { - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + $groupID = Input('groupID'); + $creatorUserID = Input('creatorUserID'); + cache_add('user_'.$creatorUserID.'_create_group_count',1); + //增加群组用户数量缓存 + cache_add('group_'.$groupID.'_user_count',count(Input('initMemberList'))); + return $this->success(); } - /** - * 转让群主之后的回调 - * @param Request $request - * @return void - */ + //转让群主之后的回调 public function callbackAfterTransferGroupOwnerCommand(Request $request):Response { $oldOwnerUserID = Input('oldOwnerUserID'); $newOwnerUserID = Input('newOwnerUserID'); + $groupID = Input('groupID'); 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 - ]); + cache_add('group_owner_'.$groupID,$newOwnerUserID); + return $this->success(); } - - /** - * 解散群组后回调 - * @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 - ]); + //减少群主创建群组数量缓存 + cache_add('user_'.$ownerID.'_create_group_count',-1); + //删除群组用户数量缓存 + cache('group_'.$groupID.'_user_count',null); + //删除群组群主缓存 + cache('group_owner_'.$groupID,null); + return $this->success(); } - /** - * 用户退出群组的回调 - * @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('user_'.$userID.'_join_group_count',-1); + //减少群组用户数量缓存 cache_add('group_'.$groupID.'_user_count',-1); - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + return $this->success(); } - /** - * 群成员进群之前的回调 - * @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 - ]); + $ownerID = $this->getGroupOwner($groupID); + //获取群组当前用户数量 + $group_user_count = cache('group_'.$groupID.'_user_count'); + if($group_user_count === null){ + $group_user_count = 0; + } + //获取群组最大用户数量 + $max_group_user = get_user_rights($ownerID)['right']['max_group_user_count']; + if((count($memberList) + $group_user_count) > $max_group_user){ + return $this->error(2003,'超出群组成员数量限制,请先开通或升级会员'); + } + return $this->success(); } - /** - * 踢除群组成员的回调 - * @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 - ]); + //减少群组用户数量缓存 + cache_add('group_'.$groupID.'_user_count',-count($kickedUserIDs)); + // foreach($kickedUserIDs as $kickedUserID){ + // //减少用户加入群组数量缓存 + // cache_add('user_'.$kickedUserID.'_join_group_count',-1); + // } + return $this->success(); } - /** - * 新成员加入群组之后的回调 - * @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 - ]); + // //增加用户加入群组数量缓存 + // cache_add('user_'.$userID.'_join_group_count',1); + //增加群组用户数量缓存 + cache_add('group_'.$groupID.'_user_count',1); + return $this->success(); } - /** - * 邀请新成员加入群组之前的回调 - * @param Request $request - * @return void - */ + //邀请新成员加入群组之前的回调 + //执行顺序,callbackBeforeInviteJoinGroupCommand -> callbackBeforeMembersJoinGroupCommand public function callbackBeforeInviteJoinGroupCommand(Request $request):Response { $groupID = Input('groupID'); $invitedUserIDs = Input('invitedUserIDs'); - return json([ - "actionCode" => 0, - "errCode" => 0, - "errMsg" => "", - "errDlt" => "", - "nextCode"=> 0 - ]); + //获取群组当前用户数量 + $group_user_count = cache('group_'.$groupID.'_user_count'); + if($group_user_count === null){ + $group_user_count = 0; + } + //获取群组最大用户数量 + $max_group_user = get_user_rights($this->getGroupOwner($groupID))['right']['max_group_user_count']; + if((count($invitedUserIDs) + $group_user_count) > $max_group_user){ + return $this->error(2003,'超出群组成员数量限制,请先开通或升级会员'); + } + return $this->success(); } - /** - * 申请加入群组之前的回调 - * @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 - ]); + //获取群组当前用户数量 + $group_user_count = cache('group_'.$groupID.'_user_count')?:0; + //获取群组最大用户数量 + $max_group_user = get_user_rights($this->getGroupOwner($groupID))['right']['max_group_user_count']; + if((1 + $group_user_count) > $max_group_user){ + return $this->error(2003,'群组已经满员'); + } + // //获取用户加入群组数量限制 + // $max_group_join_count = get_user_rights($applyID)['right']['max_group_join_count']; + // //获取用户加入群组数量 + // $user_join_group_count = cache('user_'.$applyID.'_join_group_count')?:0; + // if((1 + $user_join_group_count) > $max_group_join_count){ + // return $this->error(2004,'超出加入群组数量限制,请先开通或升级会员'); + // } + return $this->success(); } @@ -501,14 +334,43 @@ class HookController{ - - - + function getGroupOwner($groupID=''){ + $result = cache('group_owner_'.$groupID); + if($result){ + return $result; + } + $groupsInfo = $this->getSdk()->group->getGroupsInfo([$groupID]); + foreach($groupsInfo['groupInfos'] as $groupInfo){ + if($groupInfo['groupID'] == $groupID){ + cache('group_owner_'.$groupID,$groupInfo['ownerUserID']); + return $groupInfo['ownerUserID']; + } + } + return ''; + } + function result($code,$msg,$nextCode=0){ + return json([ + "actionCode" => 0, + "errCode" => $code, + "errMsg" => $msg, + "errDlt" => $msg, + "nextCode"=> $nextCode + ]); + } + function success(){ + return $this->result(0,""); + } + function error($errCode=0,$errMsg='',$nextCode=1){ + return $this->result($errCode,$errMsg,$nextCode); + } function getSdk(){ - $IM = new \support\OpenImSdk\Client([ + if($this->sdk){ + return $this->sdk; + } + $this->sdk = new \support\OpenImSdk\Client([ 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 'secret' => 'n1e5a6s6m7', // OpenIM密钥 ]); - return $IM; + return $this->sdk; } } \ No newline at end of file diff --git a/app/model/Openim/Black.php b/app/model/Openim/Black.php new file mode 100644 index 0000000..5e6fc51 --- /dev/null +++ b/app/model/Openim/Black.php @@ -0,0 +1,29 @@ + 'string', + 'block_user_id' => 'string', + 'create_time' => 'datetime', + 'add_source' => 'int', + 'operator_user_id' => 'string', + 'ex' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Config.php b/app/model/Openim/Config.php new file mode 100644 index 0000000..847cd9e --- /dev/null +++ b/app/model/Openim/Config.php @@ -0,0 +1,27 @@ + 'string', + 'value' => 'string', + 'description' => 'string', + 'create_time' => 'datetime', + 'update_time' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Conversation.php b/app/model/Openim/Conversation.php new file mode 100644 index 0000000..16a8c2e --- /dev/null +++ b/app/model/Openim/Conversation.php @@ -0,0 +1,53 @@ + 'string', + 'conversation_id' => 'string', + 'conversation_type' => 'int', + 'user_id' => 'string', + 'group_id' => 'string', + 'recv_msg_opt' => 'int', + 'is_pinned' => 'bool', + 'is_private_chat' => 'bool', + 'burn_duration' => 'int', + 'group_at_type' => 'int', + 'attached_info' => 'string', + 'ex' => 'string', + 'max_seq' => 'int', + 'min_seq' => 'int', + 'create_time' => 'datetime', + 'is_msg_destruct' => 'bool', + 'msg_destruct_time' => 'int', + 'latest_msg_destruct_time' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/ConversationVersion.php b/app/model/Openim/ConversationVersion.php new file mode 100644 index 0000000..2fd7d22 --- /dev/null +++ b/app/model/Openim/ConversationVersion.php @@ -0,0 +1,28 @@ + 'string', + 'logs' => 'array', + 'version' => 'int', + 'deleted' => 'bool', + 'last_update' => 'datetime', + ]; + + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/DataVersion.php b/app/model/Openim/DataVersion.php new file mode 100644 index 0000000..574551e --- /dev/null +++ b/app/model/Openim/DataVersion.php @@ -0,0 +1,21 @@ + 'string', + 'value' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Friend.php b/app/model/Openim/Friend.php new file mode 100644 index 0000000..aed1765 --- /dev/null +++ b/app/model/Openim/Friend.php @@ -0,0 +1,35 @@ + 'string', + 'friend_user_id' => 'string', + 'remark' => 'string', + 'create_time' => 'datetime', + 'add_source' => 'int', + 'operator_user_id' => 'string', + 'ex' => 'string', + 'is_pinned' => 'bool', + ]; + + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/FriendRequest.php b/app/model/Openim/FriendRequest.php new file mode 100644 index 0000000..be53134 --- /dev/null +++ b/app/model/Openim/FriendRequest.php @@ -0,0 +1,35 @@ + 'string', + 'to_user_id' => 'string', + 'handle_result' => 'int', + 'req_msg' => 'string', + 'create_time' => 'datetime', + 'handler_user_id' => 'string', + 'handle_msg' => 'string', + 'handle_time' => 'datetime', + 'ex' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/FriendVersion.php b/app/model/Openim/FriendVersion.php new file mode 100644 index 0000000..aaf2964 --- /dev/null +++ b/app/model/Openim/FriendVersion.php @@ -0,0 +1,27 @@ + 'string', + 'logs' => 'array', + 'version' => 'int', + 'deleted' => 'bool', + 'last_update' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Group.php b/app/model/Openim/Group.php new file mode 100644 index 0000000..f249203 --- /dev/null +++ b/app/model/Openim/Group.php @@ -0,0 +1,47 @@ + 'string', + 'group_name' => 'string', + 'notification' => 'string', + 'introduction' => 'string', + 'face_url' => 'string', + 'create_time' => 'datetime', + 'ex' => 'string', + 'status' => 'int', + 'creator_user_id' => 'string', + 'group_type' => 'int', + 'need_verification' => 'int', + 'look_member_info' => 'int', + 'apply_member_friend' => 'int', + 'notification_update_time' => 'datetime', + 'notification_user_id' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/GroupJoinVersion.php b/app/model/Openim/GroupJoinVersion.php new file mode 100644 index 0000000..1a27728 --- /dev/null +++ b/app/model/Openim/GroupJoinVersion.php @@ -0,0 +1,27 @@ + 'string', + 'logs' => 'array', + 'version' => 'int', + 'deleted' => 'bool', + 'last_update' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/GroupMember.php b/app/model/Openim/GroupMember.php new file mode 100644 index 0000000..4eedc41 --- /dev/null +++ b/app/model/Openim/GroupMember.php @@ -0,0 +1,39 @@ + 'string', + 'user_id' => 'string', + 'nickname' => 'string', + 'face_url' => 'string', + 'role_level' => 'int', + 'join_time' => 'datetime', + 'join_source' => 'int', + 'inviter_user_id' => 'string', + 'operator_user_id' => 'string', + 'mute_end_time' => 'datetime', + 'ex' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/GroupMemberVersion.php b/app/model/Openim/GroupMemberVersion.php new file mode 100644 index 0000000..f82c612 --- /dev/null +++ b/app/model/Openim/GroupMemberVersion.php @@ -0,0 +1,27 @@ + 'string', + 'logs' => 'array', + 'version' => 'int', + 'deleted' => 'bool', + 'last_update' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/GroupRequest.php b/app/model/Openim/GroupRequest.php new file mode 100644 index 0000000..cb22da6 --- /dev/null +++ b/app/model/Openim/GroupRequest.php @@ -0,0 +1,41 @@ + 'string', + 'group_id' => 'string', + 'handle_result' => 'int', + 'req_msg' => 'string', + 'handled_msg' => 'string', + 'req_time' => 'datetime', + 'handle_user_id' => 'string', + 'handled_time' => 'datetime', + 'join_source' => 'int', + 'inviter_user_id' => 'string', + 'ex' => 'string', + 'handle_msg' => 'string', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Log.php b/app/model/Openim/Log.php new file mode 100644 index 0000000..5aa0185 --- /dev/null +++ b/app/model/Openim/Log.php @@ -0,0 +1,28 @@ + 'string', + 'message' => 'string', + 'context' => 'array', + 'extra' => 'array', + 'timestamp' => 'datetime', + ]; + protected function getOptions(): array + { + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Msg.php b/app/model/Openim/Msg.php new file mode 100644 index 0000000..b9a7294 --- /dev/null +++ b/app/model/Openim/Msg.php @@ -0,0 +1,21 @@ + 'string', + 'msgs' => 'array', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/S3.php b/app/model/Openim/S3.php new file mode 100644 index 0000000..56cec05 --- /dev/null +++ b/app/model/Openim/S3.php @@ -0,0 +1,31 @@ + 'string', + 'name' => 'string', + 'content_type' => 'string', + 'create_time' => 'datetime', + 'group' => 'string', + 'key' => 'string', + 'size' => 'int', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/Seq.php b/app/model/Openim/Seq.php new file mode 100644 index 0000000..9ac8523 --- /dev/null +++ b/app/model/Openim/Seq.php @@ -0,0 +1,24 @@ + 'string', + 'max_seq' => 'int', + 'min_seq' => 'int', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/SeqUser.php b/app/model/Openim/SeqUser.php new file mode 100644 index 0000000..6772d50 --- /dev/null +++ b/app/model/Openim/SeqUser.php @@ -0,0 +1,27 @@ + 'string', + 'user_id' => 'string', + 'max_seq' => 'int', + 'min_seq' => 'int', + 'read_seq' => 'int', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/app/model/Openim/User.php b/app/model/Openim/User.php new file mode 100644 index 0000000..a525dc3 --- /dev/null +++ b/app/model/Openim/User.php @@ -0,0 +1,32 @@ + 'string', + 'nickname' => 'string', + 'face_url' => 'string', + 'ex' => 'string', + 'app_manger_level' => 'int', + 'global_recv_msg_opt' => 'int', + 'create_time' => 'datetime', + ]; + protected function getOptions(): array{ + return array_merge(parent::getOptions(),[ + 'connection' => 'immongodb', + ]); + } +} \ No newline at end of file diff --git a/config/app.php b/config/app.php index 5d27940..5538b41 100755 --- a/config/app.php +++ b/config/app.php @@ -15,7 +15,7 @@ use support\Request; return [ - 'debug' => \support\Env::get('app.debug',false), + 'debug' => false, 'error_reporting' => E_ALL & ~E_WARNING, 'default_timezone' => 'Asia/Shanghai', 'request_class' => Request::class, diff --git a/config/thinkorm.php b/config/thinkorm.php index 402c2c4..18002eb 100755 --- a/config/thinkorm.php +++ b/config/thinkorm.php @@ -28,31 +28,6 @@ return [ // 自定义分页类 'bootstrap' => '' ], - 'immysql' => [ - // 数据库类型 - 'type' => 'mysql', - 'hostname' => '172.17.0.2', - 'hostport' => \support\Env::get('mysql.port','3306'), - 'database' => 'im', - 'username' => 'root', - 'password' => 'n1e5a6s6m7', - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_general_ci', - 'prefix' => \support\Env::get('mysql.prefix','wa_'), - // 数据库连接参数 - 'params' => [ - \PDO::ATTR_TIMEOUT => 3,// 连接超时3秒 - \PDO::ATTR_PERSISTENT => true //设置是否使用持久化连接。 - ], - // 开启字段缓存 - 'fields_cache' => true, - // 断线重连 - 'break_reconnect' => true, - // 关闭SQL监听日志 - 'trigger_sql' => true, - // 自定义分页类 - 'bootstrap' => '' - ], 'mongodb' => [ 'type' => 'mongo', 'hostname' => \support\Env::get('mongodb.host','127.0.0.1'), @@ -69,6 +44,24 @@ return [ 'params' => [ 'persist' => 'mongodb_persist', // 持久化连接标识 ], + ], + 'immongodb' => [ + 'type' => 'mongo', + 'hostname' => '127.0.0.1', + 'hostport' => '37017', + 'database' => 'openim_v3', + 'username' => 'openIM', + 'password' => 'n1e5a6s6m7', + 'prefix' => 'wa_', + 'pk_convert_id' => true, + // 开启字段缓存 + 'fields_cache' => true, + // 监听SQL + 'trigger_sql' => true, + 'params' => [ + 'persist' => 'mongodb_persist', + 'authSource' => 'openim_v3', + ], ] ], ];