group file

This commit is contained in:
Hankin 2026-03-25 15:25:59 +08:00
parent 74daa28421
commit cd6c49fdf8
2 changed files with 54 additions and 15 deletions

13
app/Models/GroupFile.php Normal file
View File

@ -0,0 +1,13 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
class GroupFile extends BaseModel
{
use HasFactory, SoftDeletes;
protected $table = 'group_file';
}

View File

@ -3,6 +3,7 @@
namespace App\Services\YunXinMessageCallBack;
use App\Models\Group;
use App\Models\GroupFile;
use App\Models\GroupMessage;
use App\Models\GroupMessageConfig;
use App\Models\GroupUser;
@ -16,10 +17,13 @@ class Team
$this->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]);
// 文件消息 撤回存储文件
}
}
@ -33,7 +37,8 @@ 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');
@ -59,9 +64,29 @@ class Team
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,7 +96,8 @@ class Team
$user_id = get_userid_by_accid($accid);
$group = Group::where('im_chat_id', $ackTeamId)->first();
if (empty($group)) return;
if (empty($group))
return;
$config = GroupMessageConfig::where("user_id", $user_id)->where("group_id", $group->id)->first();
if (empty($config)) {