|
@@ -126,7 +126,7 @@ exit;
|
|
|
print_r($groupInfo);exit;
|
|
|
}
|
|
|
|
|
|
- public function substr(string $string, int $start, int $length = null): string
|
|
|
+ public function substr(string $string, int $start, int $length = null)
|
|
|
{
|
|
|
return mb_substr($string, $start, $length, 'UTF-8');
|
|
|
}
|
|
@@ -679,7 +679,7 @@ exit;
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
- case 'Group.CallbackAfterNewMemberJoin': // 新成员入群
|
|
|
+ /*case 'Group.CallbackAfterNewMemberJoin': // 新成员入群
|
|
|
$redis = new Redis();
|
|
|
$redisconfig = config("redis");
|
|
|
$redis->connect($redisconfig["host"], $redisconfig["port"]);
|
|
@@ -709,8 +709,8 @@ exit;
|
|
|
$res["ErrorCode"] = 0;
|
|
|
$res["ErrorInfo"] = "";
|
|
|
echo json_encode($res);
|
|
|
- break;
|
|
|
- case 'Group.CallbackAfterMemberExit': // 成员离开
|
|
|
+ break;*/
|
|
|
+ /*case 'Group.CallbackAfterMemberExit': // 成员离开
|
|
|
$redis = new Redis();
|
|
|
$redisconfig = config("redis");
|
|
|
$redis->connect($redisconfig["host"], $redisconfig["port"]);
|
|
@@ -753,7 +753,7 @@ exit;
|
|
|
$res["ErrorCode"] = 0;
|
|
|
$res["ErrorInfo"] = "";
|
|
|
echo json_encode($res);
|
|
|
- break;
|
|
|
+ break;*/
|
|
|
/* case 'Group.CallbackBeforeSendMsg': // 群内发送消息之前
|
|
|
|
|
|
$config = config("wxMiniProgram");
|
|
@@ -870,6 +870,86 @@ exit;
|
|
|
$this->sendMessageToUser($from_user,$to_user,$message);
|
|
|
}
|
|
|
|
|
|
+ //请求的基础参数
|
|
|
+ private function baseTencentObj($url)
|
|
|
+ {
|
|
|
+ $random = rand(10000000,99999999);
|
|
|
+ $usersig = $this->usersig("administrator");
|
|
|
+ // 获取配置信息
|
|
|
+ $config = config("tencent_im");
|
|
|
+ $url = "$url";
|
|
|
+ $url .= "?sdkappid=".$config["sdkappid"];
|
|
|
+ $url .= "&identifier=administrator";
|
|
|
+ $url .= "&usersig=".$usersig;
|
|
|
+ $url .= "&random=".$random;
|
|
|
+ $url .= "&contenttype=json";
|
|
|
+ return new tencentim($url);
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 设置管理员(im端的改变)
|
|
|
+ * @param $user_id
|
|
|
+ * @param $party_id
|
|
|
+ * @param int $status 1:yes 0:no
|
|
|
+ * @return array|false|mixed
|
|
|
+ */
|
|
|
+ public function setUpIMAdmin($user_id, $party_id, int $status=0) {
|
|
|
+ $url = "https://console.tim.qq.com/v4/group_open_http_svc/modify_group_member_info";
|
|
|
+ $tencentObj = $this->baseTencentObj($url);
|
|
|
+
|
|
|
+ $groupInfo = $this->getGroupInfo($party_id);
|
|
|
+ if($groupInfo["GroupInfo"][0]["ErrorCode"] > 0) return false;
|
|
|
+ // 更新的信息
|
|
|
+ $data = [];
|
|
|
+ $data["GroupId"] = $party_id;
|
|
|
+ if ($status==1){
|
|
|
+ $data['Role'] = 'Admin';
|
|
|
+ }else{
|
|
|
+ $data['Role'] = 'Member';
|
|
|
+ }
|
|
|
+ $data['Member_Account'] = $user_id;
|
|
|
+ return $tencentObj->toSend($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取群成员详细资料(目前没用到)
|
|
|
+ private function getGroupMemberDetails($party_id)
|
|
|
+ {
|
|
|
+ $url = "https://console.tim.qq.com/v4/group_open_http_svc/get_group_member_info";
|
|
|
+ $tencentObj = $this->baseTencentObj($url);
|
|
|
+ // 获取群组信息
|
|
|
+ $groupInfo = $this->getGroupInfo($party_id);
|
|
|
+ if($groupInfo["GroupInfo"][0]["ErrorCode"] > 0) return false;
|
|
|
+
|
|
|
+ // 更新的信息
|
|
|
+ $data = [];
|
|
|
+ $data["GroupId"] = $party_id;
|
|
|
+ return $tencentObj->toSend($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ //IM管理员维护,同步本地管理员
|
|
|
+ public function imAdminMaintenance()
|
|
|
+ {
|
|
|
+ $partyIds = \app\admin\model\party\Party::column('id');
|
|
|
+ foreach ($partyIds as $party_id){
|
|
|
+ $groupInfo = $this->getGroupInfo($party_id);
|
|
|
+
|
|
|
+ if($groupInfo["GroupInfo"][0]["ErrorCode"] > 0) continue;
|
|
|
+ $roomInfoData = $groupInfo["GroupInfo"][0]["AppDefinedData"];
|
|
|
+ $roomInfo = [];
|
|
|
+ if($roomInfoData) foreach($roomInfoData as $k => $v) {
|
|
|
+ if($v["Key"] == "roomInfo") $roomInfo = $v["Value"];
|
|
|
+ }
|
|
|
+ $roomInfo = json_decode($roomInfo,true);
|
|
|
+
|
|
|
+ // 更新管理员
|
|
|
+ if(isset($roomInfo["managers"]) && !empty($roomInfo['managers'])) {
|
|
|
+ foreach ($roomInfo['managers'] as $v){
|
|
|
+ $this->setUpIMAdmin($v,$party_id,1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $this->success("成功!");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取用户在线更新
|
|
|
*/
|