AI 3 달 전
부모
커밋
05e6ee3617
1개의 변경된 파일53개의 추가작업 그리고 24개의 파일을 삭제
  1. 53 24
      app/JsonRpc/ChatService.php

+ 53 - 24
app/JsonRpc/ChatService.php

@@ -223,33 +223,46 @@ class ChatService implements ChatServiceInterface
     {
         Db::beginTransaction();
         try {
-
             $where = [
                 'user_id' => $data['user_id'],
                 'friend_id' => $data['friend_id'],
             ];
             $orwhere = [
-                'friend_id' => $data['user_id'],
                 'user_id' => $data['friend_id'],
+                'friend_id' => $data['user_id'],
             ];
-            $result = ChatFriends::where($where)
-                ->orWhere($orwhere)->delete();
+
+            // 使用闭包来确保正确的 OR 关系
+            $result = ChatFriends::where(function ($query) use ($where) {
+                $query->where($where);
+            })
+                ->orWhere(function ($query) use ($orwhere) {
+                    $query->where($orwhere);
+                })
+                ->delete();
+
             var_dump($result, '-0------------------');
-            $where = [
+
+            $wherechat = [
                 'user_id' => $data['user_id'],
                 'receiver_id' => $data['friend_id'],
             ];
-            $orwhere = [
-                'receiver_id' => $data['user_id'],
+            $orwherechat = [
                 'user_id' => $data['friend_id'],
+                'receiver_id' => $data['user_id'],
             ];
-            ChatRecords::where($where)->orWhere($orwhere)->delete();
+
+            // 使用闭包来确保正确的 OR 关系
+            ChatRecords::where(function ($query) use ($wherechat) {
+                $query->where($wherechat);
+            })
+                ->orWhere(function ($query) use ($orwherechat) {
+                    $query->where($orwherechat);
+                })
+                ->delete();
+
             Db::commit();
-            if ($result) {
-                return Result::success("删除成功”");
-            } else {
-                return Result::error('删除失败');
-            }
+            return Result::success("删除成功");
         } catch (\Exception $e) {
             Db::rollback();
             return Result::error($e->getMessage());
@@ -510,6 +523,7 @@ class ChatService implements ChatServiceInterface
             ChatGroups::insert($groupData);
             //创建群用户
             $groupMemberData = [];
+            $groupChatData = [];
             if ($data['group_member']) {
                 foreach ($data['group_member'] as $key => $val) {
                     $groupMemberData[$key] = [
@@ -518,21 +532,22 @@ class ChatService implements ChatServiceInterface
                         'user_id' => $val,
                         'leader' => $data['user_id'] == $val ? 2 : 0,
                     ];
+
+                    $groupChatData[$key] = [
+                        'user_id' => $val,
+                        'receiver_id' => $groupData['id'],
+                        'content' => '创建群' . Date('Y-m-d H:i:s'),
+                        'msg_type' => 1,
+                        'is_read' => 0,
+                        'talk_type' => 2,
+                        'action' => 'recieved',
+                        'group_receiver_id' => $data['user_id'],
+                    ];
                 }
             }
             ChatGroupsMember::insert($groupMemberData);
             //插入一条消息
-            $chatRecordsData = [
-                'user_id' => $data['user_id'],
-                'receiver_id' => $groupData['id'],
-                'content' => '我创建了一个群' . Date('Y-m-d H:i:s'),
-                'msg_type' => 1,
-                'is_read' => 0,
-                'talk_type' => 2,
-                'action' => 'said',
-                'group_receiver_id' => $data['user_id'],
-            ];
-            ChatRecords::insert($chatRecordsData);
+            ChatRecords::insert($groupChatData);
             Db::commit();
         } catch (\Throwable $ex) {
             Db::rollBack();
@@ -549,6 +564,19 @@ class ChatService implements ChatServiceInterface
     public function addGroupMember(array $data): array
     {
         $result = ChatGroupsMember::where(['group_id' => $data['group_id'], 'user_id' => $data['user_id']])->update(['leader' => 2]);
+
+        $groupChatData = [
+            'user_id' => $data['user_id'],
+            'receiver_id' => $data['group_id'],
+            'content' => '加入群' . Date('Y-m-d H:i:s'),
+            'msg_type' => 1,
+            'is_read' => 0,
+            'talk_type' => 2,
+            'action' => 'recieved',
+            'group_receiver_id' => $data['user_id'],
+        ];
+        ChatRecords::insert($groupChatData);
+
         if ($result) {
             return Result::success('修改成功');
         } else {
@@ -632,6 +660,7 @@ class ChatService implements ChatServiceInterface
     public function delGroupMembers(array $data): array
     {
         $result = ChatGroupsMember::where(['group_id' => $data['group_id'], 'user_id' => $data['user_id']])->delete();
+        ChatRecords::where(['receiver_id' => $data['group_id'], 'user_id' => $data['user_id']])->delete();
         if ($result) {
             return Result::success('删除成功');
         } else {