|
@@ -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 {
|