rkljw 3 дней назад
Родитель
Сommit
3850ace8b0
1 измененных файлов с 99 добавлено и 48 удалено
  1. 99 48
      app/JsonRpc/ChatService.php

+ 99 - 48
app/JsonRpc/ChatService.php

@@ -850,13 +850,53 @@ class ChatService implements ChatServiceInterface
         try {
             $data['created_at'] = date('Y-m-d H:i:s');
             $data['updated_at'] = date('Y-m-d H:i:s');
+            if($data['type_id'] != 10000){
+                $this->sendMessage([
+                    'talk_type'=>300,
+                    'title'=>$data['title'],
+                    'content'=>'提交了审核',
+                    'messageType'=>4,
+                ]);
+                $data['status'] = 1;
+            }else{
+                $data['status'] = 2;
+                if($data['is_group'] == 1){
+                    $group_id = PublicData::uuid();
+                    $groupData = [
+                        'id' => $group_id,
+                        'creator_id' => $data['user_id'],
+                        'group_name' => $data['group_name'] ?? '',
+                        'profile' => '',
+                    ];
+                    $groupResult = ChatGroups::insertGetId($groupData);
+                    $groupMemberData = [
+                        'id' => PublicData::uuid(),
+                        'user_id' => $data['user_id'],
+                        'group_id' => $group_id,
+                        'leader' => 2,
+                    ];
+                    $groupMemberResult = ChatGroupsMember::insertGetId($groupMemberData);
+                    //更新result的 group_id
+                    $datas['group_id'] = $group_id;
+                    // ChatTopic::where(['id' => $data['id']])->update($datas);
+    
+                    //插入一条消息
+                    $chatRecordsData = [
+                        'user_id' => $data['user_id'],
+                        'receiver_id' => $group_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);
+                }
+                
+            }
+            unset($data['type_id']);
             $result = ChatTopic::insertGetId($data);
-            $this->sendMessage([
-                'talk_type'=>300,
-                'title'=>$data['title'],
-                'content'=>'提交了审核',
-                'messageType'=>4,
-            ]);
             $chattopic = Chattopic::find($result);
             Db::commit();
         } catch (\Exception $e) {
@@ -878,37 +918,49 @@ class ChatService implements ChatServiceInterface
             // var_dump(date('Y-m-d H:i:s'), 'tedst111111111111111');
             $creatter = $topdata['user_id'];
             if ($data['status'] == 2 && $topdata['is_group'] == 1) {
-                $group_id = PublicData::uuid();
-                $groupData = [
-                    'id' => $group_id,
-                    'creator_id' => $topdata['user_id'],
-                    'group_name' => $topdata['group_name'] ?? '',
-                    'profile' => '',
-                ];
-                $groupResult = ChatGroups::insertGetId($groupData);
-                $groupMemberData = [
-                    'id' => PublicData::uuid(),
-                    'user_id' => $topdata['user_id'],
-                    'group_id' => $group_id,
-                    'leader' => 2,
-                ];
-                $groupMemberResult = ChatGroupsMember::insertGetId($groupMemberData);
-                //更新result的 group_id
-                $datas['group_id'] = $group_id;
-                ChatTopic::where(['id' => $data['id']])->update($datas);
+                if(empty($topdata['group_id'])){              
+                    $group_id = PublicData::uuid();
+                    $groupData = [
+                        'id' => $group_id,
+                        'creator_id' => $topdata['user_id'],
+                        'group_name' => $topdata['group_name'] ?? '',
+                        'profile' => '',
+                    ];
+                    $groupResult = ChatGroups::insertGetId($groupData);
+                    $groupMemberData = [
+                        'id' => PublicData::uuid(),
+                        'user_id' => $topdata['user_id'],
+                        'group_id' => $group_id,
+                        'leader' => 2,
+                    ];
+                    $groupMemberResult = ChatGroupsMember::insertGetId($groupMemberData);
+                    //更新result的 group_id
+                    $datas['group_id'] = $group_id;
+                    ChatTopic::where(['id' => $data['id']])->update($datas);
 
-                //插入一条消息
-                $chatRecordsData = [
-                    'user_id' => $topdata['user_id'],
-                    'receiver_id' => $group_id,
-                    'content' => '我创建了一个群' . Date('Y-m-d H:i:s'),
-                    'msg_type' => 1,
-                    'is_read' => 0,
-                    'talk_type' => 2,
-                    'action' => 'said',
-                    'group_receiver_id' => $topdata['user_id'],
-                ];
-                ChatRecords::insert($chatRecordsData);
+                    //插入一条消息
+                    $chatRecordsData = [
+                        'user_id' => $topdata['user_id'],
+                        'receiver_id' => $group_id,
+                        'content' => '我创建了一个群' . Date('Y-m-d H:i:s'),
+                        'msg_type' => 1,
+                        'is_read' => 0,
+                        'talk_type' => 2,
+                        'action' => 'said',
+                        'group_receiver_id' => $topdata['user_id'],
+                    ];
+                    ChatRecords::insert($chatRecordsData);
+                }
+               
+            } elseif ($data['status'] == 3) {               
+                if(isset($topdata['group_id']) && !empty($topdata['group_id'])){
+                    ChatRecords::where('receiver_id', $topdata['group_id'])->delete();
+                    ChatGroupsMember::where('group_id', $topdata['group_id'])
+                        ->where([["user_id", '!=', $creatter]])->delete();
+                }   
+            }
+            var_dump("状态:".$data['status']);
+            if($data['status'] == 2){
                 $this->sendMessage([
                     'talk_type'=>301,
                     'title'=>$topdata['title'],
@@ -916,7 +968,7 @@ class ChatService implements ChatServiceInterface
                     'messageType'=>4,
                     'user_id'=>$topdata['user_id'],
                 ]);
-            } elseif ($data['status'] == 3) {
+            }else if($data['status'] == 3){
                 $this->sendMessage([
                     'talk_type'=>301,
                     'title'=>$topdata['title'],
@@ -924,11 +976,6 @@ class ChatService implements ChatServiceInterface
                     'messageType'=>4,
                     'user_id'=>$topdata['user_id'],
                 ]);
-                if(isset($topdata['group_id']) && !empty($topdata['group_id'])){
-                    ChatRecords::where('receiver_id', $topdata['group_id'])->delete();
-                    ChatGroupsMember::where('group_id', $topdata['group_id'])
-                        ->where([["user_id", '!=', $creatter]])->delete();
-                }   
             }
             Db::commit();
             if ($result) {
@@ -949,12 +996,16 @@ class ChatService implements ChatServiceInterface
         if (empty($data['id'])) {
             return Result::error('id不能为空');
         }
-        $this->sendMessage([
-            'talk_type'=>300,
-            'title'=>$data['title'],
-            'content'=>'提交了审核',
-            'messageType'=>4,
-        ]);
+        if($data['type_id'] != 10000){
+            $this->sendMessage([
+                'talk_type'=>300,
+                'title'=>$data['title'],
+                'content'=>'提交了审核',
+                'messageType'=>4,
+            ]);
+            $data['status'] = 1;
+        }
+       
         $result = ChatTopic::where(['id' => $data['id']])->update($data);
         if ($result) {
             return Result::success($data);