// // IHEquipmentService.swift // Inhealth // // Created by weclouds on 2020/1/13. // Copyright © 2020 weclouds. All rights reserved. // import UIKit import PKHUD class IHEquipmentService: NSObject { static let share = IHEquipmentService() lazy var lightList: [LightData] = { let lightList = [LightData]() return lightList }() lazy var sensorList: [SensorData] = { let sensorList = [SensorData]() return sensorList }() lazy var purifierList: [PurifierData] = { let purifierData = [PurifierData]() return purifierData }() //一栋楼的所有楼层 private var areaFloorInfo_callBack : ((AreaFloor_Result_Info)->Void)? //楼层里的所有房间 private var floorRoomInfo_callBack : ((FloorRoom_Result_Info)->Void)? //获取所有的楼层 func getAreaFloorNav(buildId : String?,areaFloorInfo_callBack : @escaping (AreaFloor_Result_Info)->Void) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_area_floor_navHttpRequest(username, client_key: client_key, os: os, version: version, token: token, buildId: buildId, success: { (json) -> (Void) in let info = AreaFloor_Result_Info.fromJSON(json) areaFloorInfo_callBack(info!) }) { () -> (Void) in } } //楼层里的房间 func getFloorRoom(floorId : String,floorRoomInfo_callBack : @escaping (FloorRoom_Result_Info)->Void) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_room_room_navHttpRequest(username, client_key: client_key, os: os, version: version, token: token, floorId: floorId, success: { (json) -> (Void) in let info = FloorRoom_Result_Info.fromJSON(json) floorRoomInfo_callBack(info!) }) { () -> (Void) in } } func getLightListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,type:String,keywords:String?,requestSuccess:@escaping ([LightData])->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let count = 20 log.debug("getLightListData") g_lamp_light_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, buildId: buildId, roomId: roomId, page: page, count: count, type: type, keywords: keywords, success: { (json) -> (Void) in if page == 1{ self.lightList.removeAll() } let mLightlistInfo = Light_list_Info.fromJSON(json) let result = mLightlistInfo?.result guard let list = result?.list else { return} if page == 1 { self.lightList = list }else{ let total = (result?.total)! if self.lightList.count < Int(total)! { self.lightList += list } } requestSuccess(self.lightList) }, fail: requestFail) } func getSensorListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,keywords:String?,requestSuccess:@escaping ([SensorData])->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let count = 20 g_sensor_sensor_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, buildId: buildId, roomId: roomId, page: page, count: count, keywords: keywords, success: { (json) -> (Void) in if page == 1{ self.sensorList.removeAll() } let mSensorInfo = Sensor_list_Info.fromJSON(json) let result = mSensorInfo?.result guard let list = result?.list else { return} if page == 1 { self.sensorList = list }else{ let total = (result?.total)! if self.sensorList.count < Int(total)! { self.sensorList += list } } requestSuccess(self.sensorList) }) { () -> (Void) in requestFail() } } func getPurifierListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,keywords:String?,requestSuccess:@escaping ([PurifierData])->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let count = 20 g_purifier_purifier_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, buildId: buildId, roomId: roomId, page: page, count: count, keywords: keywords, success: { (json) -> (Void) in if page == 1{ self.purifierList.removeAll() } let mPurifierInfo = Purifier_list_Info.fromJSON(json) let result = mPurifierInfo?.result guard let list = result?.list else { return} if page == 1 { self.purifierList = list }else{ let total = (result?.total)! if self.purifierList.count < Int(total)! { self.purifierList += list } } requestSuccess(self.purifierList) }) { () -> (Void) in requestFail() } } func deleteEquimemnt(_ devType:String,devId:String,requestSuccess:@escaping (Bool)->Void) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version if devType == "1" || devType == "2" { let url = moyaBase + "lamp/del_light" let parameter :NSDictionary = ["username":username, "client_key":client_key, "os":os, "version":version, "token":token, "lightId":devId] //connectHandle 链接成功 回掉·;; completehandle 设置成功回调 IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in requestSuccess(isSuccess) } }else if devType == "3"{ g_sensor_del_sensorHttpRequest(username, client_key: client_key, os: os, version: version, token: token, sensorId: devId, success: { (json) -> (Void) in let info = Operation_Info.fromJSON(json) let result = info?.result let msg = result?.msg self.showHUD(msg ?? "") if info?.status == .Success { requestSuccess(true) }else{ requestSuccess(false) } }) { () -> (Void) in requestSuccess(false) } }else if devType == "4"{ let url = moyaBase + "purifier/del_purifier" let parameter :NSDictionary = ["username":username, "client_key":client_key, "os":os, "version":version, "token":token, "purifierId":devId] //connectHandle 链接成功 回掉·;; completehandle 设置成功回调 IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in requestSuccess(isSuccess) } } } private func showHUD(_ message: String) { HUD.flash(.label(message), delay: 0.5) { _ in print("License Obtained.") } } //学校删除设备 func delSchoolDevice(lightId : String,compelete:@escaping (_ respone: String?, _ code : String?) -> Void){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in if isSuccess == 2 { log.debug("websocket返回的数据") compelete(responeStr, code) }else{ g_school_del_lightHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, clientId: responeStr, success: { (json) -> (Void) in log.debug("删除学校设备:\(json)") }) { () -> (Void) in } } } } //获取学校的所有设备 func getSchoolDevList(hotelId: String?,buildId:String?,floorId:String?,roomId:String?,page:Int,type:String,keywords:String?,requestSuccess:@escaping ([DevData])->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version let count = 20 g_school_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, buildId: buildId,floorId:floorId, roomId: roomId, page: page, count: count, type: type, keywords: keywords, success: { (json) -> (Void) in let deviceList = [DevData]() let mDevListInfo = Dev_list_Info.fromJSON(json) let result = mDevListInfo?.result let list = result?.list requestSuccess(list ?? deviceList) }, fail: requestFail) } //查看当前hotel是学校还是酒店 func getSchoolOrHotelInfo(hotelId : String,requestSuccess:@escaping (String)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let token = AppShare.token let version = AppShare.version g_area_hotel_infoHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in let code = HttpApiStatus(rawValue: json["code"].stringValue) let msg = json["msg"].stringValue let data = json["data"] guard let dic = data.dictionary else {return} let type = dic["type"]?.stringValue requestSuccess(type ?? "0") log.debug("--是学校还是酒店--\(json)") }, fail: {}) } }