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.
65 lines
2.0 KiB
65 lines
2.0 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('id', 'in', $friend_ids)->update(['is_blacklist' => 0]);
|
|
}
|
|
}
|
|
}
|