123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- //
- // NetworkManager.swift
- // SolarBT
- //
- // Created by weclouds on 2019/8/12.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- import AFNetworking
- //请求类型:
- enum HTTPRequestType {
- case GET
- case POST
- }
- class NetworkManager: AFHTTPSessionManager {
- //单例:
- static let shared:NetworkManager = {
- let instence = NetworkManager()
- instence.requestSerializer = AFJSONRequestSerializer()
- instence.responseSerializer = AFHTTPResponseSerializer()
-
- instence.requestSerializer.setValue("application/json,text/html", forHTTPHeaderField: "Accept")
- instence.requestSerializer.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
- return instence
- }()
-
- func request(requestType:HTTPRequestType,urlString:String,parameters:[String:AnyObject]?,complated:@escaping(AnyObject?,Bool)->()){
-
- let success = {
- (tasks:URLSessionDataTask,json:Any) ->() in complated(json as AnyObject?,true)
- }
- let failure = {
-
- (tasks:URLSessionDataTask?,error:Error) ->() in complated(error as AnyObject,false)
- log.debug("上传失败---- \(error)")
- }
-
- if requestType == .GET {
- get(urlString, parameters: parameters, progress: nil, success: success, failure: failure)
- }else{
- self.post(urlString, parameters: parameters, progress: nil, success: success, failure: failure)
- }
- }
-
-
-
-
- func updateDeviceInfo(_ type:String,number:String,name:String,model:String?,hardwareVersion:String?,softwareVersion:String?,productionDate:String?,macAddress:String?,productionBatch:String?) {
- log.debug("上传设备信息")
- //编辑设备
- let deviceList = ["type":type, //设备类型
- "number":number, //设备序列号
- "model":model, //设备型号
- "name":name,//设备名称
- "hardwareVersion":hardwareVersion, //硬件版本
- "softwareVarsion":softwareVersion, //软件版本
- "productionDate":productionDate, //生产日期
- "productionBatch":productionDate, // 生产批次
- "macAddress":macAddress] // mac地址
- let parmter = ["deviceList":[deviceList]]
-
- let url = "http://www.solar-bt.com/api/app/save"
- NetworkManager.shared.request(requestType: .POST, urlString: url, parameters: parmter as [String : AnyObject]) { (respond,isSuccess) in
- if isSuccess == false {
- log.debug(respond)
- }else{
- let dict = try? JSONSerialization.jsonObject(with: respond as! Data, options: .mutableLeaves) as! [String:Any]
- log.debug("dict --\(dict)")
- let msg = dict!["msg"] as! String
- log.debug("msg -- \(msg)")
- }
-
- }
- }
-
- func uploadlocation(_ number : String) {
- log.debug("上传定位信息")
- SBTLocation.share.startLocation()
- SBTLocation.share.callback = {(lat,long) in
-
- //设备定位
- let locationList : NSDictionary = ["number":number, //设备序列号
- "longitude":long, //经度
- "latitude":lat,//纬度
- "type":"1" //经纬度类型 GPS CLLocationManager 为GPS坐标系
- ]
- let arr : NSArray = [locationList]
- let parmter = ["locationList": arr]
- let url = "http://www.solar-bt.com/api/app/location"
- log.debug("上传的参数 --- \(parmter) ")
- NetworkManager.shared.request(requestType: .POST, urlString: url, parameters: parmter as [String : AnyObject]) { (respond,isSuccess) in
- /**["locationList": [["latitude": "22.534406863511798", "type": "1", "number": "302448740", "longitude": "114.06280841880522"]]
- ] */
- if isSuccess == false {
- log.debug(respond)
- }else{
- log.debug("上传的参数 --- \(parmter) ")
- let dict = try? JSONSerialization.jsonObject(with: respond as! Data, options: .mutableLeaves) as? [String:Any]
- log.debug("dict --\(dict )")
- let msg = dict!["msg"] as! String
- log.debug("msg -- \(msg)")
-
- }
-
- }
- }
- }
-
- func uploadtodayData(_ number : String,
- solarStatus:String,solarVoltage:String,solarCurrent:String,solarPower:String,
- batteryStatus:String,batteryVoltage:String,batteryCurrent:String,batteryTemp:String,batteryPower:String,
- loadStatus:String,loadVoltage:String,loadCurrent:String,loadPower:String?,deviceStatus:String,alarmStr:String,
- generationCapacity:String,dischargeCapacity:String,totalGenerationCapacity:String,totalDischargeCapacity:String,runTime:String,overTimes:String,fullTimes:String,chargingAmpereHour:String,dischargeAmpereHour:String) {
-
- log.debug("上传实时数据")
- let dataList = ["number":number, //设备序列号
- "solarStatus":solarStatus, //太阳能状态
- "solarVoltage":solarVoltage,//太阳能电压
- "solarCurrent":solarCurrent ,//太阳能电流
- "solarPower" : solarPower,//太阳能功率
- "batteryStatus" : batteryStatus,//蓄电池状态
- "batteryVoltage" : batteryVoltage,//蓄电池电压
- "batteryCurrent" : batteryCurrent, //蓄电池电流
- "batteryTemp" : batteryTemp,//蓄电池温度
- "batteryPower": batteryPower,
- "loadStatus" : loadStatus,//负载状态
- "loadVoltage" :loadVoltage,//负载电压
- "loadCurrent" : loadCurrent,//负载电流
- "loadPower" : loadPower,//负载功率
- "deviceStatus" :deviceStatus,//故障状态
- "alarmStr" : alarmStr,//故障信息
- "generationCapacity":generationCapacity,//当天发电量
- "dischargeCapacity":dischargeCapacity,//当天放电量
- "totalGenerationCapacity":totalGenerationCapacity,//k累计发电量
- "totalDischargeCapacity" : totalDischargeCapacity,//k累计放电量
- "runTime" : runTime,//运行天数
- "overTimes" : overTimes,//过放次数
- "fullTimes" : fullTimes,//充满次数
- "chargingAmpereHour" : chargingAmpereHour,//放电安时数
- "dischargeAmpereHour" : dischargeAmpereHour,//充电安时数
- ]
- let parmter = ["dataList": [dataList]]
- let url = "http://www.solar-bt.com/api/app/todayData"
- NetworkManager.shared.request(requestType: .POST, urlString: url, parameters: parmter as [String : AnyObject]) { (respond,isSuccess) in
- if isSuccess == false {
- log.debug(respond)
- }else{
- let dict = try? JSONSerialization.jsonObject(with: respond as! Data, options: .mutableLeaves) as! [String:Any]
- log.debug("dict --\(dict)")
- let msg = dict!["msg"] as! String
- log.debug("msg -- \(msg)")
- }
-
- }
-
- }
-
- func uploadHistoryData(_ number : String ,locationList:[[String:String]]) {
- log.debug("上传历史数据")
- let parmter = ["number":number,"locationList": locationList] as [String : Any]
- let url = "http://www.solar-bt.com/api/app/historyData"
- NetworkManager.shared.request(requestType: .POST, urlString: url, parameters: parmter as [String : AnyObject]) { (respond,isSuccess) in
- if isSuccess == false {
- log.debug(respond)
- }else{
- let dict = try? JSONSerialization.jsonObject(with: respond as! Data, options: .mutableLeaves) as! [String:Any]
- log.debug("dict --\(dict)")
- let msg = dict!["msg"] as! String
- log.debug("msg -- \(msg)")
- }
-
- }
-
- }
-
- }
- /*
- ["locationList": [["number": "302448740",
- "latitude": "22.534364600842725",
- "type": "1",
- "longitude": "114.0627827640778"]
- ]
- ]
- */
|