Files
yingmeng-ios-switf/yinmeng-ios/Modules/Room/VM/RoomVCViewModel.swift
2024-03-23 20:47:19 +08:00

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
}
}