diff --git a/app/Models/GroupFile.php b/app/Models/GroupFile.php new file mode 100644 index 0000000..6281883 --- /dev/null +++ b/app/Models/GroupFile.php @@ -0,0 +1,13 @@ +saveMessage($params); } - public function recall($params) { + public function recall($params) + { $clientId = $params["clientId"]; if ($clientId) { - GroupMessage::where('im_msg_id', $clientId)->update(['is_recall'=> 1]); + GroupMessage::where('im_msg_id', $clientId)->update(['is_recall' => 1]); + + // 文件消息 撤回存储文件 } } @@ -33,18 +37,19 @@ class Team $im_msg_id = $params['msgidClient']; if ($im_msg_id) { $gm = GroupMessage::where('im_msg_id', $im_msg_id)->first(); - if ($gm) return; + if ($gm) + return; } $group_id = Group::where('im_chat_id', $params['to'])->value('id'); if ($params['msgType'] == 'TEXT') { - $content = json_encode(['body' => $params['body']],JSON_UNESCAPED_UNICODE); + $content = json_encode(['body' => $params['body']], JSON_UNESCAPED_UNICODE); } else { $content = $params['attach']; $content_arr = json_decode($content, true); - $content_arr["extend"] = $params["ext"]??""; - $content = json_encode($content_arr); + $content_arr["extend"] = $params["ext"] ?? ""; + $content = json_encode($content_arr); } $group_message = new GroupMessage(); @@ -52,16 +57,36 @@ class Team $group_message->group_id = $group_id; $group_message->content = $content; $group_message->content_type = $params['msgType']; - $group_message->im_msg_id = $params['msgidClient']??null; + $group_message->im_msg_id = $params['msgidClient'] ?? null; $group_message->msg_timestamp = $params["msgTimestamp"]; $group_message->data = json_encode($params, JSON_UNESCAPED_UNICODE); $group_message->save(); - Group::where("id", $group_id)->update(["last_msg_id"=>$group_message->id]); - GroupUser::where("group_id", $group_id)->where("is_hidden", 1)->update(['is_hidden'=>0]); + Group::where("id", $group_id)->update(["last_msg_id" => $group_message->id]); + GroupUser::where("group_id", $group_id)->where("is_hidden", 1)->update(['is_hidden' => 0]); + + + // 文件另存一份 + if ($params["msgType"] == "FILE") { + $fileJson = $params['attach']; + $fileArr = json_decode($fileJson, true); + $file = new GroupFile(); + $file->group_id = $group_id; + $file->im_chat_id = $params['to']; + $file->user_id = get_userid_by_accid($params['fromAccount']); + $file->name = $fileArr["name"] ?? ""; + $file->ext = $fileArr["ext"] ?? ""; + $file->url = $fileArr["url"] ?? ""; + $file->size = $fileArr["size"] ?? ""; + $file->im_msg_id = $params['msgidClient'] ?? null; + $file->msg_timestamp = $params["msgTimestamp"]; + $file->save(); + + } } - public function readMsg($params) { + public function readMsg($params) + { // 已读时间 $ackMsgTime = $params["ackMsgTime"]; // 已读群id @@ -71,13 +96,14 @@ class Team $user_id = get_userid_by_accid($accid); $group = Group::where('im_chat_id', $ackTeamId)->first(); - if (empty($group)) return; - - $config = GroupMessageConfig::where("user_id", $user_id)->where("group_id",$group->id)->first(); + if (empty($group)) + return; + + $config = GroupMessageConfig::where("user_id", $user_id)->where("group_id", $group->id)->first(); if (empty($config)) { - GroupMessageConfig::create(["user_id"=>$user_id, "group_id"=>$group->id, "msg_time"=>$ackMsgTime]); + GroupMessageConfig::create(["user_id" => $user_id, "group_id" => $group->id, "msg_time" => $ackMsgTime]); } else { - GroupMessageConfig::where("user_id", $user_id)->where("group_id",$group->id)->update(["msg_time"=>$ackMsgTime]); + GroupMessageConfig::where("user_id", $user_id)->where("group_id", $group->id)->update(["msg_time" => $ackMsgTime]); } }