// // IHHomeService.swift // Inhealth // // Created by weclouds on 2019/12/9. // Copyright © 2019 weclouds. All rights reserved. // import UIKit import SwiftyJSON class IHHomeService: NSObject { static let share : IHHomeService = IHHomeService() ///国家列表 lazy var countryList: [DropDownData] = { let contrylist = [DropDownData]() return contrylist }() //省份列表 lazy var provinceList: [DropDownData] = { let provinceList = [DropDownData]() return provinceList }() //城市列表 lazy var cityList: [DropDownData] = { let cityList = [DropDownData]() return cityList }() //酒店下拉列表 lazy var hotelList: [DropDownData] = { let hotelList = [DropDownData]() return hotelList }() //酒店概览列表 lazy var hotelViewlList: [HotelViewData] = { let hotelViewlList = [HotelViewData]() return hotelViewlList }() ///获取国家列表 func getContryList(requestSuccess:@escaping ([DropDownData])->Void,requestFail:@escaping (()->Void)){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_area_country_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, success: { (json) -> (Void) in self.countryList.removeAll() let mCountryInfo = DropDown_Info.fromJSON(json) let result = mCountryInfo?.result guard let list = result?.list else { return} for country in list{ let mdata = self.countryList.append(country) } requestSuccess(self.countryList) }, fail: requestFail) } ///获取省份列表 func getProvinceList(_ countryId:String?,requestSuccess:@escaping ([DropDownData])->Void,requestFail:@escaping (()->Void)){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_area_province_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, countryId: countryId, success: { (json) -> (Void) in self.provinceList.removeAll() let mProvinceInfo = DropDown_Info.fromJSON(json) let result = mProvinceInfo?.result guard let list = result?.list else { return} for country in list{ self.provinceList.append(country) } requestSuccess(self.provinceList) }, fail: requestFail) } //获取城市列表 func getCityeList(_ provinceId:String?,requestSuccess:@escaping ([DropDownData])->Void,requestFail:@escaping (()->Void)){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_area_city_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, provinceId: provinceId, success: { (json) -> (Void) in self.cityList.removeAll() let mCityInfo = DropDown_Info.fromJSON(json) let result = mCityInfo?.result guard let list = result?.list else { return} for city in list{ self.cityList.append(city) } requestSuccess(self.cityList) }, fail: requestFail) } ///获取酒店下拉列表 func getHotelList(_ cityId:String?,requestSuccess:@escaping ([DropDownData])->Void,requestFail:@escaping (()->Void)){ let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_area_hotel_listHttpRequest(username, client_key: client_key, os: os, version: version, token: token, cityId: cityId, success: { (json) -> (Void) in self.hotelList.removeAll() let mCityInfo = DropDown_Info.fromJSON(json) let result = mCityInfo?.result guard let list = result?.list else { return} for hotel in list{ self.hotelList.append(hotel) } requestSuccess(self.hotelList) }, fail: requestFail) } //获取首页数据 func getHomeData(hotelId:String?,requestSuccess:@escaping (HomeData)->Void,requestFail:@escaping (()->Void) ) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_home_dataHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in let mHomedataInfo = HomeData_Info.fromJSON(json) guard let result = mHomedataInfo?.result else {return} guard let data = result.data else {return} if let deviceCount = data.deviceCount, let lightCount = data.lightCount, let cicLightCount = data.cicLightCount, let sensorCount = data.sensorCount, let airPurCount = data.airPurCount, let alarmCount = data.alarmCount, let netCount = data.netCount, let classroomLightCount = data.classroomLightCount, let blackboardLightCount = data.blackboardLightCount, let curtainDeviceCount = data.curtainDeviceCount, let panelDeviceCount = data.panelDeviceCount{ //设备总数 : deviceCount +netCount let total = (deviceCount.int)! + (netCount.int)! let homedata = HomeData(deviceCount: "\(total)", lightCount: lightCount, cicLightCount: cicLightCount, sensorCount: sensorCount, airPurCount: airPurCount, alarmCount: alarmCount,netCount: netCount,classroomLightCount: classroomLightCount,blackboardLightCount: blackboardLightCount,curtainDeviceCount: curtainDeviceCount,panelDeviceCount: panelDeviceCount) requestSuccess(homedata) } }, fail: requestFail) } ///获取首页概览列表 func getHotelviewData(hotelId:String?, requestSuccess:@escaping ([HotelViewData])->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_home_hotel_viewHttpRequest(username, client_key: client_key, os: os, version: version,token:token, hotelId: nil, success: { (json) -> (Void) in self.hotelViewlList.removeAll() let mHotelViewInfo = HotelView_Info.fromJSON(json) let result = mHotelViewInfo?.result guard let list = result?.list else { return} for hotel in list{ if let id = hotel.id,let name = hotel.name,let deviceCount = hotel.deviceCount,let lightCount = hotel.lightCount, let cicLightCount = hotel.cicLightCount,let sensorCount = hotel.sensorCount,let airPurCount = hotel.airPurCount,let alarmCount = hotel.alarmCount ,let classroomLightCount = hotel.classroomLightCount,let blackboardLightCount = hotel.blackboardLightCount,let curtainDeviceCount = hotel.curtainDeviceCount, let panelDeviceCount = hotel.panelDeviceCount,let netCount = hotel.netCount,let type = hotel.type{ let aHotel = HotelViewData(id: id, name: name, deviceCount: deviceCount, lightCount: lightCount, cicLightCount: cicLightCount, sensorCount: sensorCount, airPurCount: airPurCount, alarmCount: alarmCount,classroomLightCount: classroomLightCount,blackboardLightCount: blackboardLightCount,curtainDeviceCount: curtainDeviceCount,panelDeviceCount: panelDeviceCount,netCount: netCount,type: type) self.hotelViewlList.append(aHotel) } } requestSuccess(self.hotelViewlList) }, fail: requestFail) } func getHotelWeather(_ hotelId:String,requestSuccess:@escaping (String,String,String,String)->Void,requestFail:@escaping (()->Void)) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_home_get_hotel_weatherHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in let weatherInfo = Hotel_weather_Info.fromJSON(json) let result = weatherInfo?.result let cond_code = result?.cond_code ?? "999" let cond_txt = result?.cond_txt ?? "" let averageAir = result?.averageAir ?? "0" let level = result?.airStatus ?? "Good" requestSuccess(cond_code,cond_txt,averageAir,level) }) { () -> (Void) in requestFail() } } func getRoomEnvStatus(_ hotelId:String,requestSuccess:@escaping (Home_room_env_status)->Void) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_home_room_env_statusHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in let info = Home_room_env_status_Info.fromJSON(json) let result = info?.result if result?.code == .Success{ requestSuccess(result!) } }) { () -> (Void) in } } //获取故障数量角标 func getAlarmCountBadgeNumber(_ hotelId:String?,requestSuccess:@escaping (String)->Void) { let username = AppShare.username let client_key = AppShare.client_key let os = AppShare.os let version = AppShare.version let token = AppShare.token g_home_alarm_infoHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in let info = Home_alarm_info_Info.fromJSON(json) let result = info?.result if result?.code == .Success{ let badgeNumber = Int(result!.alarmAbnormality!) //未处理数 requestSuccess("\(badgeNumber!)") } }) { () -> (Void) in } } }