初始化聊天,完结
This commit is contained in:
@@ -5,4 +5,13 @@ namespace app\chat\model;
|
||||
class ChatGroupMember extends BaseModel
|
||||
{
|
||||
public $tabla_name = 'chat_group_member';
|
||||
|
||||
// 是否退群
|
||||
public static function getUserQuit($uid, $group_id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -2,7 +2,30 @@
|
||||
namespace app\chat\model;
|
||||
|
||||
|
||||
use GatewayWorker\Lib\Gateway;
|
||||
use support\think\Db;
|
||||
|
||||
class ChatGroupMute extends BaseModel
|
||||
{
|
||||
public $tabla_name = 'chat_group_mute';
|
||||
|
||||
|
||||
public static function getUserMuteStatus($uid, $group_id)
|
||||
{
|
||||
$data['ex_mute_time'] = '';
|
||||
$data['is_mute'] = 0;
|
||||
$chat_group_mute = Db::name('chat_group_mute')->where(['group_id' => $group_id, 'user_id' => $uid])->find();
|
||||
if($chat_group_mute) {
|
||||
if(d() <= $chat_group_mute['expire_time']) {
|
||||
$data['is_mute'] = 1; // 限期禁言
|
||||
$data['ex_mute_time'] = $chat_group_mute['expire_time'];
|
||||
}
|
||||
if($chat_group_mute['mute_time'] == 0) {
|
||||
$data['is_mute'] = 2; // 永久禁言
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -12,7 +12,7 @@ class ChatMessage extends BaseModel
|
||||
|
||||
public static function getconverlist($uid, $user_type)
|
||||
{
|
||||
// 获取所有会话ID 自己发送过消息的
|
||||
// 获取所有会话ID 自己发送过消息的或者别人发送过消息的
|
||||
$sessionIds = Db::name('chat_message')->where('from_id', $uid)->WhereOr('to_id', $uid)
|
||||
->group('session_id')->field('session_id,to_id as group_id,chat_type')->select()->toArray();
|
||||
// 查看自己加了那些群
|
||||
@@ -25,13 +25,15 @@ class ChatMessage extends BaseModel
|
||||
if ($group['group_id'] == $session_id['group_id']) {
|
||||
unset($group_arr[$gk]);
|
||||
}else {
|
||||
$group['session_id'] = Random::build('alnum', 32);
|
||||
// $group['session_id'] = Random::build('alnum', 32);
|
||||
$group['session_id'] = '';
|
||||
$group['chat_type'] = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$sessionIds = array_merge($sessionIds, $group_arr);
|
||||
$group_id = '';
|
||||
$i = 0;
|
||||
foreach ($sessionIds as $k => $session) {
|
||||
// 未读计数
|
||||
@@ -46,15 +48,17 @@ class ChatMessage extends BaseModel
|
||||
$chat_user = Db::name('chat_user')->where(['user_id' => $session['group_id']])->field('nick_name,avatar')->find();
|
||||
$avatar = $chat_user['avatar'];
|
||||
$name = $chat_user['nick_name'];
|
||||
}else {
|
||||
$group_id = '';
|
||||
}elseif($session['chat_type'] == 2) {
|
||||
$group_info = Db::name('chat_group')->where(['id' => $session['group_id']])->field('id,name,avatar')->find();
|
||||
$avatar = $group_info['avatar'];
|
||||
$group_id = $group_info['id'];
|
||||
$name = $group_info['name'];
|
||||
if($lastMsg) {
|
||||
$chat_user = Db::name('chat_user')->where(['user_id' => $lastMsg['from_id']])->field('nick_name,avatar')->find();
|
||||
}
|
||||
}
|
||||
// 单聊的话 两个人对发用一样的会话ID
|
||||
// 单聊的话 两个人对话用一样的会话ID
|
||||
$msg = '';
|
||||
if($lastMsg) {
|
||||
// 如果是自己发的不显示发送人
|
||||
@@ -71,12 +75,18 @@ class ChatMessage extends BaseModel
|
||||
$data[$i]['session_id'] = $session['session_id'];
|
||||
$data[$i]['name'] = $name;
|
||||
$data[$i]['msg'] = $msg;
|
||||
$data[$i]['group_id'] = $group_id;
|
||||
$i ++;
|
||||
}
|
||||
Redis::set('usermsg:list:' . $user_type . ':' . $uid, json_encode($data));
|
||||
// Redis::set('usermsg:list:' . $user_type . ':' . $uid, json_encode($data));
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function getUserIsQuit($uid, $group_id)
|
||||
{
|
||||
// $auit = Db::name('')->where()->find();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user