89 lines
2.8 KiB
Swift
89 lines
2.8 KiB
Swift
//
|
|
// RoomVCViewModel.swift
|
|
// yinmeng-ios
|
|
//
|
|
// Created by yinmeng on 2024/3/11.
|
|
//
|
|
|
|
import UIKit
|
|
import RxSwift
|
|
import RxCocoa
|
|
import NIMSDK
|
|
import MBProgressHUD
|
|
|
|
class RoomVCViewModel: NSObject {
|
|
static let roomVM = RoomVCViewModel.init()
|
|
var isMute = true
|
|
let roomData = PublishSubject<RoomDataModel>()
|
|
let chatRoomData = PublishSubject<NIMChatroom>()
|
|
|
|
func getRoomUserInfo(roomUid:String,uid:String){
|
|
let params = ["uid":roomUid,"intoUid":uid]
|
|
RequestGet(path: "room/get", parma: params) { data in
|
|
if let info = Deserialized<RoomDataModel>.toModel(with: data) {
|
|
self.roomData.onNext(info)
|
|
}
|
|
} fail: { code, message in
|
|
|
|
}
|
|
}
|
|
|
|
func collectRoom(roomUid:String,type:String){
|
|
|
|
let uid = "\(AuthManager.userUid)"
|
|
|
|
let params = ["uid":uid,"roomUid":roomUid,"type":type] as [String : Any]
|
|
RequestPost(path: "fans/fansRoom", parma: params) { data in
|
|
|
|
HUDTool.show(with: type == "1" ? "收藏成功" : "取消收藏成功")
|
|
} fail: { code, message in
|
|
|
|
}
|
|
}
|
|
func openRoom(title:String,type:Int,roomPwd:String,roomDesc:String,backPic:String){
|
|
let uid = "\(AuthManager.userUid)"
|
|
let ticket = AuthManager.ticket
|
|
let params = ["uid":uid,"ticket":ticket,"title":title,"type":type,"roomPwd":roomPwd,"roomDesc":roomDesc,"backPic":backPic,"mgId":0] as [String : Any]
|
|
RequestPost(path: "room/open", parma: params) { data in
|
|
if let info = Deserialized<RoomDataModel>.toModel(with: data) {
|
|
self.roomData.onNext(info)
|
|
}
|
|
} fail: { code, message in
|
|
print(code,message)
|
|
print(code,message)
|
|
}
|
|
}
|
|
|
|
func NIMSDKEnterRoom(roomId:String,user:UserObject){
|
|
let enterRequest = NIMChatroomEnterRequest()
|
|
enterRequest.roomId = roomId
|
|
var extData = RoomChatData()
|
|
extData.erbanNo = user.erbanNo ?? 0
|
|
extData.experUrl = user.userLevelVo?.experUrl ?? ""
|
|
extData.charmUrl = user.userLevelVo?.charmUrl ?? ""
|
|
if let uid = user.uid{
|
|
let data = ["\(uid)":extData.toJSON()]
|
|
enterRequest.roomExt = toJSONString(dict: data as NSDictionary)
|
|
NIMSDK.shared().chatroomManager.enterChatroom(enterRequest) { error, room, roomMember in
|
|
if error == nil,let getRoom = room {
|
|
self.chatRoomData.onNext(getRoom)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
func toJSONString(dict:NSDictionary?)->String{
|
|
|
|
let data = try? JSONSerialization.data(withJSONObject: dict!, options: JSONSerialization.WritingOptions.prettyPrinted)
|
|
|
|
let strJson = NSString(data: data!, encoding: NSUTF8StringEncoding)
|
|
|
|
return strJson! as String
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|