From 76b75804113d7e88751f62c2abd1f2ad1399c05a Mon Sep 17 00:00:00 2001 From: ASUS <515617283@qq.com> Date: Mon, 1 Dec 2025 17:09:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E8=A8=80=E4=B8=8E=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chat/controller/GroupController.php | 70 ++++++++++------------- app/chat/controller/MessageController.php | 4 +- 2 files changed, 32 insertions(+), 42 deletions(-) diff --git a/app/chat/controller/GroupController.php b/app/chat/controller/GroupController.php index ddd09ef..af3c963 100644 --- a/app/chat/controller/GroupController.php +++ b/app/chat/controller/GroupController.php @@ -369,14 +369,14 @@ class GroupController extends ApiController } /** - * 群成员禁言(仅群主/管理员) + * 群禁言(仅群主/管理员) */ public function muteMember(Request $request): Response { $groupId = $request->post('group_id'); - $targetUid = $request->post('target_uid'); - $muteTime = $request->post('mute_time')?:3600; // 默认禁言1小时 - if (!$groupId || !$targetUid) { + $targetUid = $request->post('target_uid')?:0; + $muteTime = $request->post('mute_time')?:0; // 默认时间 + if (!$groupId || !isset($targetUid)) { return json(['code' => 400, 'msg' => '缺少group_id或target_uid']); } // 验证操作人权限 @@ -389,51 +389,41 @@ class GroupController extends ApiController if (!in_array($operatorRole, [1, 2])) { return $this->error('仅群主和管理员可禁言'); } - // 验证被禁言用户是否在群内 - $targetIsMember = Db::name('chat_group_member')->where([ - 'group_id' => $groupId, - 'user_id' => $targetUid, - 'quit_time' => null, - 'is_kicked' => 0 - ])->find(); - if (!$targetIsMember) { - return $this->error('被禁言用户不在群内'); - } - // 不能禁言群主 - $groupOwner = Db::name('chat_group')->where('id', $groupId)->value('owner_id'); - if ($targetUid == $groupOwner) { - return $this->error('不能禁言群主'); - } - // 不能禁言自己 - if ($targetUid == $this->uid) { - return $this->error('不能禁言自己'); - } - $now = time(); - $expireTime = $muteTime > 0 ? $now + $muteTime : null; - $res = Db::name('chat_group_mute')->where(['group_id' => $groupId, 'user_id' => $targetUid])->find(); +// // 验证被禁言用户是否在群内 +// $targetIsMember = Db::name('chat_group_member')->where([ +// 'group_id' => $groupId, +// 'user_id' => $targetUid, +// 'quit_time' => null, +// 'is_kicked' => 0 +// ])->find(); +// if (!$targetIsMember) { +// return $this->error('被禁言用户不在群内'); +// } +// // 不能禁言群主 +// $groupOwner = Db::name('chat_group')->where('id', $groupId)->value('owner_id'); +// if ($targetUid == $groupOwner) { +// return $this->error('不能禁言群主'); +// } +// // 不能禁言自己 +// if ($targetUid == $this->uid) { +// return $this->error('不能禁言自己'); +// } +// $now = time(); +// $expireTime = $muteTime > 0 ? $now + $muteTime : null; + // 新增/更新禁言记录 if($res) { - Db::name('chat_group_mute')->where(['group_id' => $groupId, 'user_id' => $targetUid])->save([ - 'mute_time' => $muteTime, - 'expire_time' => date('Y-m-d H:i:s', $expireTime), - 'operator_id' => $this->uid, - 'created_time' => d() - ]); + return $this->success("已禁言无需操作"); }else { Db::name('chat_group_mute')->insert([ 'group_id' => $groupId, - 'mute_time' => $muteTime, 'user_id' => $targetUid, - 'expire_time' => date('Y-m-d H:i:s', $expireTime), 'operator_id' => $this->uid, 'created_time' => d() ]); } - - // 发送通知 某某已被禁言 - - return $this->success("禁言成功,时长{$muteTime}秒"); + return $this->success("禁言成功"); } /** @@ -442,9 +432,9 @@ class GroupController extends ApiController public function unmuteMember(Request $request): Response { $groupId = $request->post('group_id'); - $targetUid = $request->post('target_uid'); + $targetUid = $request->post('target_uid')?:0; $muteTime = $request->post('mute_time')?:3600; // 默认禁言1小时 - if (!$groupId || !$targetUid) { + if (!$groupId || !isset($targetUid)) { return json(['code' => 400, 'msg' => '缺少group_id或target_uid']); } // 验证操作人权限 diff --git a/app/chat/controller/MessageController.php b/app/chat/controller/MessageController.php index 8bb9893..59efd84 100644 --- a/app/chat/controller/MessageController.php +++ b/app/chat/controller/MessageController.php @@ -56,7 +56,7 @@ class MessageController extends ApiController ->select()->toArray(); // 单聊自动标记已读 - if ($chatType == 1) { +// if ($chatType == 1) { Db::name('chat_message')->where([ 'session_id' => $session_id, 'to_id' => $uid, @@ -68,7 +68,7 @@ class MessageController extends ApiController 'user_id' => $uid, 'session_id' => $session_id ])->update(['count' => 0, 'updated_time' => d()]); - } +// } foreach ($messages as $k => &$v) { $v['send_time'] = formatWeChatTime($v['send_time']); }