70 lines
1.9 KiB
Swift
70 lines
1.9 KiB
Swift
//
|
||
// IMUserKit.swift
|
||
// Crush
|
||
//
|
||
// Created by Leon on 2025/8/21.
|
||
//
|
||
|
||
import Foundation
|
||
|
||
class IMUserKit {
|
||
/// 一般在扩展字段里
|
||
var userId: Int?
|
||
var accountId: String?
|
||
var nickname: String?
|
||
var avatar: String?
|
||
|
||
var user: V2NIMUser?
|
||
|
||
var loadCompleteAction: ((_ user: IMUserKit) -> Void)?
|
||
|
||
class func imUserKitWith(accId: String?, completion: ((_ user: IMUserKit?) -> Void)? = nil) -> IMUserKit {
|
||
let kit = IMUserKit()
|
||
// let conversationId = V2NIMConversationIdUtil.p2pConversationId(accountId)
|
||
guard let accountId = accId, accountId.count > 0 else {
|
||
return kit
|
||
}
|
||
|
||
// NIMSDK.shared().v2UserService.getUserInfo(accountId, error:)
|
||
NIMSDK.shared().v2UserService.getUserList([accountId]) { user in
|
||
if let searchUser = user.first {
|
||
kit.user = searchUser
|
||
kit.syncDataFrom(nimUser: searchUser)
|
||
completion?(kit)
|
||
kit.loadCompleteAction?(kit)
|
||
|
||
// dlog("☁️IMUserKit user(V2NIMUser) get:\(user)")
|
||
} else {
|
||
//fatalError("wrong state")
|
||
dlog("☁️IMUserKit ❌user nil")
|
||
}
|
||
} failure: { error in
|
||
dlog("☁️IMUserKit ❌ get user list error:\(error)")
|
||
}
|
||
|
||
return kit
|
||
}
|
||
|
||
class func accountIdWithAIId(aiId:Int) -> String?{
|
||
if aiId <= 0{
|
||
return nil
|
||
}
|
||
if APIConfig.environment == .appStore || APIConfig.environment == .product{
|
||
return "\(aiId)@r"
|
||
}else{
|
||
// Test Envirment
|
||
return "\(aiId)@r@t"
|
||
}
|
||
}
|
||
|
||
private func syncDataFrom(nimUser: V2NIMUser?) {
|
||
guard let imUser = nimUser else {
|
||
return
|
||
}
|
||
|
||
accountId = imUser.accountId
|
||
nickname = imUser.name
|
||
avatar = imUser.avatar
|
||
}
|
||
}
|