瀏覽代碼

Merge branch '20241106_lj_chat' into dev

AI 3 月之前
父節點
當前提交
884480d340
共有 1 個文件被更改,包括 46 次插入10 次删除
  1. 46 10
      app/JsonRpc/ChatService.php

+ 46 - 10
app/JsonRpc/ChatService.php

@@ -48,16 +48,23 @@ class ChatService implements ChatServiceInterface
         $keyword = $data['keyword'];
         $userId = $data['user_id'];
 
-        $result = User::where('user_name', 'like', '%' . $data['keyword'] . '%')
-            ->orWhere('nickname', 'like', '%' . $data['keyword'] . '%')
-            ->orWhere('mobile', 'like', '%' . $data['keyword'] . '%')
-            ->leftJoin('chat_friends', function ($join) use ($userId) {
-                $join->on('user.id', '=', 'chat_friends.friend_id')
-                    ->where('chat_friends.user_id', $userId);
+        $result = User::leftJoin('chat_friends', function ($join) use ($userId) {
+            $join->on('user.id', '=', 'chat_friends.friend_id')
+                ->where('chat_friends.user_id', '=', $userId);
+        })
+            ->where(function ($query) use ($data) {
+                $query->where('user.user_name', 'like', '%' . $data['keyword'] . '%')
+                    ->orWhere('user.nickname', 'like', '%' . $data['keyword'] . '%')
+                    ->orWhere('user.mobile', 'like', '%' . $data['keyword'] . '%');
             })
+            ->where('user.id', '<>', $userId)
+            ->where('user.type_id', '<>', '20000')
             ->select('user.*', 'chat_friends.remark as remark', 'chat_friends.id as isfriend')
+        // ->select('user.*', 'chat_friends.friend_id')
             ->get();
 
+        return Result::success($result);
+
         if ($result) {
             return Result::success($result);
         } else {
@@ -182,8 +189,32 @@ class ChatService implements ChatServiceInterface
                             'status' => $status,
                         ]
                     );
-                Db::commit();
 
+                // 给对方发送通知
+                $friendId = $fr['user_id'];
+                $userId = $fr['friend_id'];
+                $content = "你们已经成为好友了" . date("Y-m-d H:i:s");
+                $chatRecordsData = [[
+                    'user_id' => $userId,
+                    'receiver_id' => $friendId,
+                    'content' => $content,
+                    'msg_type' => 1,
+                    'is_read' => 1,
+                    'talk_type' => 1,
+                    'action' => 'said',
+
+                ], [
+                    'user_id' => $friendId,
+                    'receiver_id' => $userId,
+                    'content' => $content,
+                    'msg_type' => 1,
+                    'is_read' => 1,
+                    'talk_type' => 1,
+                    'action' => 'recieved',
+
+                ]];
+                ChatRecords::insert($chatRecordsData);
+                Db::commit();
             } catch (\Throwable $ex) {
                 Db::rollBack();
                 var_dump($ex->getMessage());
@@ -750,7 +781,8 @@ class ChatService implements ChatServiceInterface
             'user_id' => $data['user_id'],
             'group_id' => $data['group_id'],
         ];
-        $result = ChatGroupsMember::insertGetId($info);
+        $result = ChatGroupsMember::insert($info);
+        var_dump($result, '--------------------');
         if ($result) {
             return Result::success($data);
         } else {
@@ -852,6 +884,7 @@ class ChatService implements ChatServiceInterface
             $result = ChatTopic::where(['id' => $data['id']])->update(['status' => $data['status']]);
             var_dump($result, 'tedst111111111111111');
             var_dump(date('Y-m-d H:i:s'), 'tedst111111111111111');
+            $creatter = $topdata['user_id'];
             if ($data['status'] == 2) {
                 //插入一条消息
                 $chatRecordsData = [
@@ -865,8 +898,10 @@ class ChatService implements ChatServiceInterface
                     'group_receiver_id' => $topdata['user_id'],
                 ];
                 ChatRecords::insert($chatRecordsData);
-            } else {
-                ChatRecords::where('user_id', $topdata['user_id'])->where('receiver_id', $topdata['group_id'])->delete();
+            } elseif ($data['status'] == 3) {
+                ChatRecords::where('receiver_id', $topdata['group_id'])->delete();
+                ChatGroupsMember::where('group_id', $topdata['group_id'])
+                    ->where([["user_id", '!=', $creatter]])->delete();
             }
             Db::commit();
             if ($result) {
@@ -938,6 +973,7 @@ class ChatService implements ChatServiceInterface
         $result = ChatTopicsReply::where(['topic_id' => $data['id']])
             ->leftJoin('user', 'user.id', '=', 'chat_topics_reply.user_id')
             ->select('chat_topics_reply.*', 'user.nickname', 'user.avatar', 'user.user_name')
+            ->orderBy('chat_topics_reply.id', 'desc')
             ->paginate($data['page_size'], ['*'], 'page', $data['page'] ?? 1);
         return Result::success($result);
     }