|
@@ -10,11 +10,19 @@ use App\Model\ChatTopic;
|
|
|
use App\Model\ChatTopicsReply;
|
|
use App\Model\ChatTopicsReply;
|
|
|
|
|
|
|
|
use App\Model\ChatTopicClass;
|
|
use App\Model\ChatTopicClass;
|
|
|
|
|
+use App\Model\ImGroup;
|
|
|
|
|
+use App\Model\ImGroupMember;
|
|
|
use App\Model\User;
|
|
use App\Model\User;
|
|
|
use App\Tools\PublicData;
|
|
use App\Tools\PublicData;
|
|
|
use App\Tools\Result;
|
|
use App\Tools\Result;
|
|
|
|
|
+use Hyperf\Context\Context;
|
|
|
use Hyperf\DbConnection\Db;
|
|
use Hyperf\DbConnection\Db;
|
|
|
use Hyperf\RpcServer\Annotation\RpcService;
|
|
use Hyperf\RpcServer\Annotation\RpcService;
|
|
|
|
|
+use Hyperf\Context\ApplicationContext as ContextApplicationContext;
|
|
|
|
|
+use Hyperf\Amqp\Producer;
|
|
|
|
|
+
|
|
|
|
|
+use App\Amqp\Producer\MqProducer;
|
|
|
|
|
+use function Hyperf\Support\env;
|
|
|
|
|
|
|
|
#[RpcService(name: "ChatService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
|
|
#[RpcService(name: "ChatService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
|
|
|
class ChatService implements ChatServiceInterface
|
|
class ChatService implements ChatServiceInterface
|
|
@@ -326,7 +334,7 @@ class ChatService implements ChatServiceInterface
|
|
|
public function addChatRecords(array $data): array
|
|
public function addChatRecords(array $data): array
|
|
|
{
|
|
{
|
|
|
Db::beginTransaction();
|
|
Db::beginTransaction();
|
|
|
- try {;
|
|
|
|
|
|
|
+ try {
|
|
|
//添加会话内容
|
|
//添加会话内容
|
|
|
$ChatRecordsData = [[
|
|
$ChatRecordsData = [[
|
|
|
'msg_type' => $data['msg_type'] ?? 0,
|
|
'msg_type' => $data['msg_type'] ?? 0,
|
|
@@ -756,7 +764,8 @@ class ChatService implements ChatServiceInterface
|
|
|
{
|
|
{
|
|
|
$groupMember = ChatGroupsMember::where(['group_id' => $data['group_id']])
|
|
$groupMember = ChatGroupsMember::where(['group_id' => $data['group_id']])
|
|
|
->leftJoin('user as u1', 'chat_groups_members.user_id', '=', 'u1.id')
|
|
->leftJoin('user as u1', 'chat_groups_members.user_id', '=', 'u1.id')
|
|
|
- ->select('chat_groups_members.*', 'u1.user_name', 'u1.avatar')
|
|
|
|
|
|
|
+ ->leftJoin('chat_groups as c1', 'c1.id', '=', 'chat_groups_members.group_id')
|
|
|
|
|
+ ->select('chat_groups_members.*', 'u1.user_name', 'u1.avatar', 'c1.group_name as group_name')
|
|
|
->orderBy('id', 'desc')
|
|
->orderBy('id', 'desc')
|
|
|
->get();
|
|
->get();
|
|
|
return Result::success($groupMember);
|
|
return Result::success($groupMember);
|
|
@@ -769,26 +778,43 @@ class ChatService implements ChatServiceInterface
|
|
|
*/
|
|
*/
|
|
|
public function joinGroup(array $data): array
|
|
public function joinGroup(array $data): array
|
|
|
{
|
|
{
|
|
|
- $group = ChatGroups::where(['id' => $data['group_id']])->first();
|
|
|
|
|
- if (empty($group)) {
|
|
|
|
|
- return Result::error("群不存在", 0);
|
|
|
|
|
- }
|
|
|
|
|
- $groupMember = ChatGroupsMember::where(['user_id' => $data['user_id'], 'group_id' => $data['group_id']])->first();
|
|
|
|
|
- if ($groupMember) {
|
|
|
|
|
- return Result::error("已加入群", 0);
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ var_dump("========",$data);
|
|
|
|
|
+ $group = ImGroup::where(['id' => $data['group_id']])->first();
|
|
|
|
|
+ if (empty($group)) {
|
|
|
|
|
+ return Result::error("群不存在", 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ $groupMember = ImGroupMember::where(['user_id' => $data['user_id'], 'group_id' => $data['group_id']])->first();
|
|
|
|
|
+ if ($groupMember) {
|
|
|
|
|
+ return Result::error("已加入群", 0);
|
|
|
|
|
+ }
|
|
|
|
|
+// $info = [
|
|
|
|
|
+// 'id' => PublicData::uuid(),
|
|
|
|
|
+// 'user_id' => $data['user_id'],
|
|
|
|
|
+// 'group_id' => $data['group_id'],
|
|
|
|
|
+// ];
|
|
|
|
|
+// $result = ChatGroupsMember::insert($info);
|
|
|
|
|
+ $url = env('IM_URL').'/api/v1/group/invite';
|
|
|
|
|
+ $dataIM = [
|
|
|
|
|
+ 'group_id' => intval($data['group_id']),
|
|
|
|
|
+ 'ids' => (string)$data['user_id'],
|
|
|
|
|
+ ];
|
|
|
|
|
+ $options = [
|
|
|
|
|
+ 'authorization'=>$data['token']
|
|
|
|
|
+ ];
|
|
|
|
|
+ var_dump("参数:",$url,$dataIM,$options);
|
|
|
|
|
+ $result = PublicData::im_post($url,$dataIM,$options);
|
|
|
|
|
+ var_dump("结果:",$result);
|
|
|
|
|
+ if ($result) {
|
|
|
|
|
+ return Result::success($data);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return Result::error($data);
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch (\Exception $ex){
|
|
|
|
|
+ var_dump($ex->getMessage());
|
|
|
|
|
+ return Result::error([]);
|
|
|
}
|
|
}
|
|
|
- $info = [
|
|
|
|
|
- 'id' => PublicData::uuid(),
|
|
|
|
|
- 'user_id' => $data['user_id'],
|
|
|
|
|
- 'group_id' => $data['group_id'],
|
|
|
|
|
- ];
|
|
|
|
|
- $result = ChatGroupsMember::insert($info);
|
|
|
|
|
- var_dump($result, '--------------------');
|
|
|
|
|
- if ($result) {
|
|
|
|
|
- return Result::success($data);
|
|
|
|
|
- } else {
|
|
|
|
|
- return Result::error($data);
|
|
|
|
|
- };
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 话题 - 列表
|
|
* 话题 - 列表
|
|
@@ -846,36 +872,55 @@ class ChatService implements ChatServiceInterface
|
|
|
try {
|
|
try {
|
|
|
$data['created_at'] = date('Y-m-d H:i:s');
|
|
$data['created_at'] = date('Y-m-d H:i:s');
|
|
|
$data['updated_at'] = date('Y-m-d H:i:s');
|
|
$data['updated_at'] = date('Y-m-d H:i:s');
|
|
|
- $result = ChatTopic::insertGetId($data);
|
|
|
|
|
- var_dump($result, 'tedst111111111111111111111111111111');
|
|
|
|
|
-
|
|
|
|
|
- if ($result && $data['is_group'] == 1) {
|
|
|
|
|
- //chat_group
|
|
|
|
|
- $group_id = PublicData::uuid();
|
|
|
|
|
- $groupData = [
|
|
|
|
|
- 'id' => $group_id,
|
|
|
|
|
- 'creator_id' => $data['user_id'],
|
|
|
|
|
- 'group_name' => $data['group_name'] ?? '',
|
|
|
|
|
- 'profile' => $data['profile'] ?? 0,
|
|
|
|
|
- ];
|
|
|
|
|
- $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
|
|
|
|
|
- $data['group_id'] = $group_id;
|
|
|
|
|
- ChatTopic::where(['id' => $result])->update($data);
|
|
|
|
|
-
|
|
|
|
|
- // 查询 Chattopic 数据
|
|
|
|
|
- $chattopic = Chattopic::find($result);
|
|
|
|
|
- } else {
|
|
|
|
|
- $chattopic = Chattopic::find($result);
|
|
|
|
|
|
|
+ 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);
|
|
|
|
|
+ $chattopic = Chattopic::find($result);
|
|
|
Db::commit();
|
|
Db::commit();
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
Db::rollBack();
|
|
Db::rollBack();
|
|
@@ -891,28 +936,115 @@ class ChatService implements ChatServiceInterface
|
|
|
$query = ChatTopic::where(['id' => $data['id']]);
|
|
$query = ChatTopic::where(['id' => $data['id']]);
|
|
|
$topdata = $query->first();
|
|
$topdata = $query->first();
|
|
|
|
|
|
|
|
- $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 = [
|
|
|
|
|
- 'user_id' => $topdata['user_id'],
|
|
|
|
|
- 'receiver_id' => $topdata['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) {
|
|
|
|
|
- ChatRecords::where('receiver_id', $topdata['group_id'])->delete();
|
|
|
|
|
- ChatGroupsMember::where('group_id', $topdata['group_id'])
|
|
|
|
|
- ->where([["user_id", '!=', $creatter]])->delete();
|
|
|
|
|
|
|
+ $group_id = '';
|
|
|
|
|
+ /**************************************new*************************************************************/
|
|
|
|
|
+ if($data['status']==2){
|
|
|
|
|
+ //同意-需要创建群聊-开始创建
|
|
|
|
|
+ if($topdata['is_group']==1){
|
|
|
|
|
+ //是否已经创建过群聊-没有创建才进行创建
|
|
|
|
|
+ if(!$topdata['group_id']){
|
|
|
|
|
+ $url = env('IM_URL').'/api/v1/group/create';
|
|
|
|
|
+ $dataIM = [
|
|
|
|
|
+ 'avatar' => '',
|
|
|
|
|
+ 'name' => $topdata['group_name'],
|
|
|
|
|
+ 'profile'=>'',
|
|
|
|
|
+ 'ids' => '',
|
|
|
|
|
+ 'create_user_id'=>$topdata['user_id']
|
|
|
|
|
+ ];
|
|
|
|
|
+ $options = [
|
|
|
|
|
+ 'authorization'=>$data['token']
|
|
|
|
|
+ ];
|
|
|
|
|
+ $res = PublicData::im_post($url,$dataIM,$options);
|
|
|
|
|
+ if($res['code']==200){
|
|
|
|
|
+ $group_id = $res['data']['group_id'];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $this->sendMessage([
|
|
|
|
|
+ 'talk_type'=>301,
|
|
|
|
|
+ 'title'=>$topdata['title'],
|
|
|
|
|
+ 'content'=>'审核通过',
|
|
|
|
|
+ 'messageType'=>4,
|
|
|
|
|
+ 'user_id'=>$topdata['user_id'],
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }else if($data['status']==3){
|
|
|
|
|
+ if($topdata['group_id']){
|
|
|
|
|
+ $url = env('IM_URL').'/api/v1/group/dismiss';
|
|
|
|
|
+ $dataIM = [
|
|
|
|
|
+ 'group_id' => intval($topdata['group_id']),
|
|
|
|
|
+ 'create_user_id'=>$topdata['user_id']
|
|
|
|
|
+ ];
|
|
|
|
|
+ $options = [
|
|
|
|
|
+ 'authorization'=>$data['token']
|
|
|
|
|
+ ];
|
|
|
|
|
+ $res = PublicData::im_post($url,$dataIM,$options);
|
|
|
|
|
+ if($res['code']!=200){
|
|
|
|
|
+ //$group_id = $res['data']['group_id'];
|
|
|
|
|
+ Db::rollBack();
|
|
|
|
|
+ return Result::error($data, '群聊解散失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ $group_id = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ $this->sendMessage([
|
|
|
|
|
+ 'talk_type'=>301,
|
|
|
|
|
+ 'title'=>$topdata['title'],
|
|
|
|
|
+ 'content'=>'审核拒绝',
|
|
|
|
|
+ 'messageType'=>4,
|
|
|
|
|
+ 'user_id'=>$topdata['user_id'],
|
|
|
|
|
+ ]);
|
|
|
}
|
|
}
|
|
|
|
|
+//====================================================================================
|
|
|
|
|
+// $creatter = $topdata['user_id'];
|
|
|
|
|
+// if ($data['status'] == 2 && $topdata['is_group'] == 1) {
|
|
|
|
|
+// $group_id = '';
|
|
|
|
|
+// 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);
|
|
|
|
|
+// }else{
|
|
|
|
|
+// $group_id = $topdata['group_id'];
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+ //更新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);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// } 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();
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//====================================================================================
|
|
|
|
|
+ $result = ChatTopic::where(['id' => $data['id']])->update(['status' => $data['status'],'group_id'=>$group_id]);
|
|
|
Db::commit();
|
|
Db::commit();
|
|
|
if ($result) {
|
|
if ($result) {
|
|
|
return Result::success($data);
|
|
return Result::success($data);
|
|
@@ -932,7 +1064,17 @@ class ChatService implements ChatServiceInterface
|
|
|
if (empty($data['id'])) {
|
|
if (empty($data['id'])) {
|
|
|
return Result::error('id不能为空');
|
|
return Result::error('id不能为空');
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ if($data['type_id'] != 10000){
|
|
|
|
|
+ $this->sendMessage([
|
|
|
|
|
+ 'talk_type'=>300,
|
|
|
|
|
+ 'title'=>$data['title'],
|
|
|
|
|
+ 'content'=>'提交了审核',
|
|
|
|
|
+ 'messageType'=>4,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ $data['status'] = 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ var_dump($data);
|
|
|
|
|
+ unset($data['type_id']);
|
|
|
$result = ChatTopic::where(['id' => $data['id']])->update($data);
|
|
$result = ChatTopic::where(['id' => $data['id']])->update($data);
|
|
|
if ($result) {
|
|
if ($result) {
|
|
|
return Result::success($data);
|
|
return Result::success($data);
|
|
@@ -995,31 +1137,42 @@ class ChatService implements ChatServiceInterface
|
|
|
*/
|
|
*/
|
|
|
public function updateGroupMembers(array $data): array
|
|
public function updateGroupMembers(array $data): array
|
|
|
{
|
|
{
|
|
|
- $where = [
|
|
|
|
|
- 'group_id' => $data['group_id'],
|
|
|
|
|
- ];
|
|
|
|
|
- $group_id = $data['group_id'];
|
|
|
|
|
- //先删除群成员
|
|
|
|
|
- $result = ChatGroupsMember::where($where)
|
|
|
|
|
- ->where([["user_id", '!=', $data['user_id']]])->delete();
|
|
|
|
|
- $groupMemberData = [];
|
|
|
|
|
- foreach ($data['group_member'] as $value) {
|
|
|
|
|
- $groupMemberData[] = [
|
|
|
|
|
- 'id' => PublicData::uuid(),
|
|
|
|
|
- 'user_id' => $value,
|
|
|
|
|
- 'group_id' => $group_id,
|
|
|
|
|
- 'leader' => 0,
|
|
|
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
|
+ try{
|
|
|
|
|
+ $where = [
|
|
|
|
|
+ 'group_id' => $data['group_id'],
|
|
|
];
|
|
];
|
|
|
- }
|
|
|
|
|
- $result = ChatGroupsMember::where($where)->insert($groupMemberData);
|
|
|
|
|
- // 获取群信息
|
|
|
|
|
- $groupInfo = ChatGroups::where(['id' => $group_id])->first();
|
|
|
|
|
-
|
|
|
|
|
- if ($result) {
|
|
|
|
|
|
|
+ $group_id = $data['group_id'];
|
|
|
|
|
+ //先删除群成员
|
|
|
|
|
+ $result = ChatGroupsMember::where($where)
|
|
|
|
|
+ ->where([["user_id", '!=', $data['user_id']]])->delete();
|
|
|
|
|
+ $groupMemberData = [];
|
|
|
|
|
+ foreach ($data['group_member'] as $value) {
|
|
|
|
|
+ $groupMemberData[] = [
|
|
|
|
|
+ 'id' => PublicData::uuid(),
|
|
|
|
|
+ 'user_id' => $value,
|
|
|
|
|
+ 'group_id' => $group_id,
|
|
|
|
|
+ 'leader' => 0,
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+ $result = ChatGroupsMember::where($where)->insert($groupMemberData);
|
|
|
|
|
+ //删除会话踢出群的会话信息
|
|
|
|
|
+ // var_dump("data",$data);
|
|
|
|
|
+ //字符串转数组,
|
|
|
|
|
+ $groupIdList = $data['group_member'];
|
|
|
|
|
+ array_push($groupIdList,$data['user_id']);
|
|
|
|
|
+ // var_dump("几个",$groupIdList);
|
|
|
|
|
+ ChatRecords::whereNotIn('user_id',$groupIdList)->where('group_id',$data['group_id'])->delete();
|
|
|
|
|
+
|
|
|
|
|
+ // 获取群信息
|
|
|
|
|
+ $groupInfo = ChatGroups::where(['id' => $group_id])->first();
|
|
|
|
|
+ DB::commit();
|
|
|
return Result::success($groupInfo);
|
|
return Result::success($groupInfo);
|
|
|
- } else {
|
|
|
|
|
- return Result::error($data);
|
|
|
|
|
|
|
+ }catch(\Exception $e){
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return Result::error($data, $e->getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
public function clearGroupRecords(array $data): array
|
|
public function clearGroupRecords(array $data): array
|
|
|
{
|
|
{
|
|
@@ -1175,9 +1328,9 @@ class ChatService implements ChatServiceInterface
|
|
|
*/
|
|
*/
|
|
|
public function getBusinessDistrictList(array $data): array
|
|
public function getBusinessDistrictList(array $data): array
|
|
|
{
|
|
{
|
|
|
- $query = ChatGroupsMember::Join('chat_topics', 'chat_topics.group_id', '=', 'chat_groups_members.group_id')
|
|
|
|
|
|
|
+ $query = ImGroupMember::Join('chat_topics', 'chat_topics.group_id', '=', 'im_group_member.group_id')
|
|
|
->leftJoin('chat_topic_class', 'chat_topic_class.id', '=', 'chat_topics.type')
|
|
->leftJoin('chat_topic_class', 'chat_topic_class.id', '=', 'chat_topics.type')
|
|
|
- ->where(['chat_groups_members.user_id' => $data['user_id']])
|
|
|
|
|
|
|
+ ->where(['im_group_member.user_id' => $data['user_id']])
|
|
|
->when($data, function ($query) use ($data) {
|
|
->when($data, function ($query) use ($data) {
|
|
|
if (!empty($data['type'])) {
|
|
if (!empty($data['type'])) {
|
|
|
$query->where(['chat_topics.type' => $data['type']]);
|
|
$query->where(['chat_topics.type' => $data['type']]);
|
|
@@ -1208,4 +1361,24 @@ class ChatService implements ChatServiceInterface
|
|
|
];
|
|
];
|
|
|
return Result::success($result);
|
|
return Result::success($result);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 发送消息
|
|
|
|
|
+ * @param array $messageData
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ public function sendMessage($messageData){
|
|
|
|
|
+ $msg =[
|
|
|
|
|
+ 'talk_type'=>$messageData['talk_type'],
|
|
|
|
|
+ 'title'=>$messageData['title'],
|
|
|
|
|
+ 'content'=>$messageData['content'],
|
|
|
|
|
+ 'messageType'=>$messageData['messageType'],
|
|
|
|
|
+ 'user_id'=>$messageData['user_id']??'',
|
|
|
|
|
+ 'time'=>microtime(),
|
|
|
|
|
+ ];
|
|
|
|
|
+ $message = new MqProducer($msg);
|
|
|
|
|
+ $producer = ContextApplicationContext::getContainer()->get(Producer::class);
|
|
|
|
|
+ $producer->produce($message);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|