IHEquipmentService.swift 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. //
  2. // IHEquipmentService.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2020/1/13.
  6. // Copyright © 2020 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import PKHUD
  10. class IHEquipmentService: NSObject {
  11. static let share = IHEquipmentService()
  12. lazy var lightList: [LightData] = {
  13. let lightList = [LightData]()
  14. return lightList
  15. }()
  16. lazy var sensorList: [SensorData] = {
  17. let sensorList = [SensorData]()
  18. return sensorList
  19. }()
  20. lazy var purifierList: [PurifierData] = {
  21. let purifierData = [PurifierData]()
  22. return purifierData
  23. }()
  24. //一栋楼的所有楼层
  25. private var areaFloorInfo_callBack : ((AreaFloor_Result_Info)->Void)?
  26. //楼层里的所有房间
  27. private var floorRoomInfo_callBack : ((FloorRoom_Result_Info)->Void)?
  28. //获取所有的楼层
  29. func getAreaFloorNav(buildId : String?,areaFloorInfo_callBack : @escaping (AreaFloor_Result_Info)->Void) {
  30. let username = AppShare.username
  31. let client_key = AppShare.client_key
  32. let os = AppShare.os
  33. let token = AppShare.token
  34. let version = AppShare.version
  35. g_area_floor_navHttpRequest(username, client_key: client_key, os: os, version: version, token: token, buildId: buildId, success: { (json) -> (Void) in
  36. let info = AreaFloor_Result_Info.fromJSON(json)
  37. areaFloorInfo_callBack(info!)
  38. }) { () -> (Void) in
  39. }
  40. }
  41. //楼层里的房间
  42. func getFloorRoom(floorId : String,floorRoomInfo_callBack : @escaping (FloorRoom_Result_Info)->Void) {
  43. let username = AppShare.username
  44. let client_key = AppShare.client_key
  45. let os = AppShare.os
  46. let token = AppShare.token
  47. let version = AppShare.version
  48. g_room_room_navHttpRequest(username, client_key: client_key, os: os, version: version, token: token, floorId: floorId, success: { (json) -> (Void) in
  49. let info = FloorRoom_Result_Info.fromJSON(json)
  50. floorRoomInfo_callBack(info!)
  51. }) { () -> (Void) in
  52. }
  53. }
  54. func getLightListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,type:String,keywords:String?,requestSuccess:@escaping ([LightData])->Void,requestFail:@escaping (()->Void)) {
  55. let username = AppShare.username
  56. let client_key = AppShare.client_key
  57. let os = AppShare.os
  58. let token = AppShare.token
  59. let version = AppShare.version
  60. let count = 20
  61. log.debug("getLightListData")
  62. 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
  63. if page == 1{
  64. self.lightList.removeAll()
  65. }
  66. let mLightlistInfo = Light_list_Info.fromJSON(json)
  67. let result = mLightlistInfo?.result
  68. guard let list = result?.list else { return}
  69. if page == 1 {
  70. self.lightList = list
  71. }else{
  72. let total = (result?.total)!
  73. if self.lightList.count < Int(total)! {
  74. self.lightList += list
  75. }
  76. }
  77. requestSuccess(self.lightList)
  78. }, fail: requestFail)
  79. }
  80. func getSensorListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,keywords:String?,requestSuccess:@escaping ([SensorData])->Void,requestFail:@escaping (()->Void)) {
  81. let username = AppShare.username
  82. let client_key = AppShare.client_key
  83. let os = AppShare.os
  84. let token = AppShare.token
  85. let version = AppShare.version
  86. let count = 20
  87. 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
  88. if page == 1{
  89. self.sensorList.removeAll()
  90. }
  91. let mSensorInfo = Sensor_list_Info.fromJSON(json)
  92. let result = mSensorInfo?.result
  93. guard let list = result?.list else { return}
  94. if page == 1 {
  95. self.sensorList = list
  96. }else{
  97. let total = (result?.total)!
  98. if self.sensorList.count < Int(total)! {
  99. self.sensorList += list
  100. }
  101. }
  102. requestSuccess(self.sensorList)
  103. }) { () -> (Void) in
  104. requestFail()
  105. }
  106. }
  107. func getPurifierListData(hotelId: String?,buildId:String?,roomId:String?,page:Int,keywords:String?,requestSuccess:@escaping ([PurifierData])->Void,requestFail:@escaping (()->Void)) {
  108. let username = AppShare.username
  109. let client_key = AppShare.client_key
  110. let os = AppShare.os
  111. let token = AppShare.token
  112. let version = AppShare.version
  113. let count = 20
  114. 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
  115. if page == 1{
  116. self.purifierList.removeAll()
  117. }
  118. let mPurifierInfo = Purifier_list_Info.fromJSON(json)
  119. let result = mPurifierInfo?.result
  120. guard let list = result?.list else { return}
  121. if page == 1 {
  122. self.purifierList = list
  123. }else{
  124. let total = (result?.total)!
  125. if self.purifierList.count < Int(total)! {
  126. self.purifierList += list
  127. }
  128. }
  129. requestSuccess(self.purifierList)
  130. }) { () -> (Void) in
  131. requestFail()
  132. }
  133. }
  134. func deleteEquimemnt(_ devType:String,devId:String,requestSuccess:@escaping (Bool)->Void) {
  135. let username = AppShare.username
  136. let client_key = AppShare.client_key
  137. let os = AppShare.os
  138. let token = AppShare.token
  139. let version = AppShare.version
  140. if devType == "1" || devType == "2" {
  141. let url = moyaBase + "lamp/del_light"
  142. let parameter :NSDictionary = ["username":username,
  143. "client_key":client_key,
  144. "os":os,
  145. "version":version,
  146. "token":token,
  147. "lightId":devId]
  148. //connectHandle 链接成功 回掉·;; completehandle 设置成功回调
  149. IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in
  150. requestSuccess(isSuccess)
  151. }
  152. }else if devType == "3"{
  153. g_sensor_del_sensorHttpRequest(username, client_key: client_key, os: os, version: version, token: token, sensorId: devId, success: { (json) -> (Void) in
  154. let info = Operation_Info.fromJSON(json)
  155. let result = info?.result
  156. let msg = result?.msg
  157. self.showHUD(msg ?? "")
  158. if info?.status == .Success {
  159. requestSuccess(true)
  160. }else{
  161. requestSuccess(false)
  162. }
  163. }) { () -> (Void) in
  164. requestSuccess(false)
  165. }
  166. }else if devType == "4"{
  167. let url = moyaBase + "purifier/del_purifier"
  168. let parameter :NSDictionary = ["username":username,
  169. "client_key":client_key,
  170. "os":os,
  171. "version":version,
  172. "token":token,
  173. "purifierId":devId]
  174. //connectHandle 链接成功 回掉·;; completehandle 设置成功回调
  175. IHWebSocketManager.shareInstance().contectToSokect(url, parameter: parameter) { (isSuccess) in
  176. requestSuccess(isSuccess)
  177. }
  178. }
  179. }
  180. private func showHUD(_ message: String) {
  181. HUD.flash(.label(message), delay: 0.5) { _ in
  182. print("License Obtained.")
  183. }
  184. }
  185. //学校删除设备
  186. func delSchoolDevice(lightId : String,compelete:@escaping (_ respone: String?, _ code : String?) -> Void){
  187. let username = AppShare.username
  188. let client_key = AppShare.client_key
  189. let os = AppShare.os
  190. let token = AppShare.token
  191. let version = AppShare.version
  192. IHWebSocketManager.shareInstance().schoolDeviceOpation(isSchool: true) { (isSuccess, responeStr,code) in
  193. if isSuccess == 2 {
  194. log.debug("websocket返回的数据")
  195. compelete(responeStr, code)
  196. }else{
  197. g_school_del_lightHttpRequest(username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, clientId: responeStr, success: { (json) -> (Void) in
  198. log.debug("删除学校设备:\(json)")
  199. }) { () -> (Void) in
  200. }
  201. }
  202. }
  203. }
  204. //获取学校的所有设备
  205. func getSchoolDevList(hotelId: String?,buildId:String?,floorId:String?,roomId:String?,page:Int,type:String,keywords:String?,requestSuccess:@escaping ([DevData])->Void,requestFail:@escaping (()->Void)) {
  206. let username = AppShare.username
  207. let client_key = AppShare.client_key
  208. let os = AppShare.os
  209. let token = AppShare.token
  210. let version = AppShare.version
  211. let count = 20
  212. 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
  213. let deviceList = [DevData]()
  214. let mDevListInfo = Dev_list_Info.fromJSON(json)
  215. let result = mDevListInfo?.result
  216. let list = result?.list
  217. requestSuccess(list ?? deviceList)
  218. }, fail: requestFail)
  219. }
  220. //查看当前hotel是学校还是酒店
  221. func getSchoolOrHotelInfo(hotelId : String,requestSuccess:@escaping (String)->Void,requestFail:@escaping (()->Void)) {
  222. let username = AppShare.username
  223. let client_key = AppShare.client_key
  224. let os = AppShare.os
  225. let token = AppShare.token
  226. let version = AppShare.version
  227. g_area_hotel_infoHttpRequest(username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId, success: { (json) -> (Void) in
  228. let code = HttpApiStatus(rawValue:
  229. json["code"].stringValue)
  230. let msg = json["msg"].stringValue
  231. let data = json["data"]
  232. guard let dic = data.dictionary else {return}
  233. let type = dic["type"]?.stringValue
  234. requestSuccess(type ?? "0")
  235. log.debug("--是学校还是酒店--\(json)")
  236. }, fail: {})
  237. }
  238. }