即时系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

75 lines
2.4 KiB

<?php
/**
* raingad IM [ThinkPHP6]
* @author xiekunyu <raingad@foxmail.com>
*/
namespace app\enterprise\model;
use app\BaseModel;
use think\facade\Db;
class Friend extends BaseModel
{
protected $pk="friend_id";
public static function getFriend($map){
$list=self::where($map)->select();
$data=[];
if($list){
$list=$list->toArray();
foreach($list as $k=>$v){
$data[$v['friend_user_id']]=$v;
}
}
return $data;
}
public static function getFriendIds($uid)
{
$where = ['create_user' => $uid, 'delete_time' => 0, 'status' => 1, 'is_blacklist' => 0];
$friendWhere = ['friend_user_id' => $uid, 'delete_time' => 0, 'status' => 1, 'is_blacklist' => 0];
$user_friend = self::where($where)->column('friend_user_id');
$create_user_friend = self::where($friendWhere)->column('create_user');
return array_intersect($user_friend, $create_user_friend);
}
public static function getFriendName($uid, $friend_user_id)
{
$friendNickname = Friend::where(['create_user' => $uid, 'friend_user_id' => $friend_user_id, 'status' => 1])->value('nickname');
$user = User::getUserInfo(['user_id' => $friend_user_id, 'status' => 1], 'user_id,realname,avatar');
if (empty($friendNickname)) {
$friendNickname = $user['realname'];
}
$avatar = $user['avatar'] ? getDiskUrl() .'/'. $user['avatar'] : avatarUrl($user['avatar'], $user['realname'], $user['user_id'], 120);
return [
'nickname' => $friendNickname,
'avatar' => $avatar
];
}
// 同步更新取消黑名单
public static function syncCancelBlacklist($uid)
{
$where = [
'create_user' => $uid,
'is_blacklist' => 1,
'delete_time' => 0,
'status' => 1
];
$friend_ids = self::where($where)->column('friend_id');
if ($friend_ids) {
self::where('friend_id', 'in', $friend_ids)->update(['is_blacklist' => 0]);
}
$where = [
'friend_user_id ' => $uid,
'is_blacklist' => 1,
'delete_time' => 0,
'status' => 1
];
$friend_ids = self::where($where)->column('friend_id');
if ($friend_ids) {
self::where('friend_id', 'in', $friend_ids)->update(['is_blacklist' => 0]);
}
}
}