JLChen
2021-05-18 a869383e163a18cdedcf587383c1eca043129754
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//
//  Copyright © 2019 dahua. All rights reserved.
//
 
import UIKit
 
enum LogType: String {
    case Start  = "BindDeviceStart"                 //开始添加/离线配网流程
    case End    = "BindDeviceStop"                  //添加/配网流程结束(会上报多次,以最后一次为准)
    case NetSDK = "BindDeviceNetSDKMethod"          //NetSDK接口调用结果,会上报多次,每次数据均保留;(搜索接口只报失败)
    case Init   = "BindDeviceInitDevAccount"        //初始化结果,会上报多次,每次数据均保留(IOS 新设备IP无效时单独调)
}
 
@objc public class DHAddDeviceLogManager: NSObject {
 
    @objc public static let shareInstance: DHAddDeviceLogManager = DHAddDeviceLogManager()
    
    let bust: String = "ClientBindDevice"
    
    @objc var requestID: String = ""
}
 
extension DHAddDeviceLogManager {
    
    /**
     *  开始添加设备log
     *  1、QRCode:扫码添加
     *  2、SN:手输序列号添加
     *  3、NetworkConfig:离线配网
     *  result: inputData
     */
    @objc public func addDeviceStartLog(model: DHAddDeviceLogModel) {
        
        //添加/配网流程开始后需生成一次requestID
        requestID = DHClientEventLogHelper.shareInstance().getRequestId()
        
        let curInputData = model.inputData.replacingOccurrences(of: "{", with: "").replacingOccurrences(of: "}", with: "")
        let inputDatas = curInputData.components(separatedBy: ",")
        for singalData in inputDatas {
            let datas = singalData.components(separatedBy: ":")
            if datas.count > 1 && datas[0] == "SN" {
                model.did = datas[1]
            }
        }
        
        let logDict = ["bust": bust, "requestid": requestID, "BindDeviceType": model.bindDeviceType.rawValue, "inputData": model.inputData, "did": model.did, "time": model.time]
        let dict = ["type": LogType.Start.rawValue, "log": logDict] as [String: Any]
        DHClientEventLogHelper.shareInstance().addClientEventLog(LogType.Start.rawValue, conent: dict)
    }
    
    /**
     *  添加/配网流程结束log
     */
    @objc public func addDeviceEndLog(model: DHAddDeviceLogModel) {
        
        let logDict = ["bust": bust, "requestid": requestID, "res": model.res, "errCode": model.errCode, "dese": model.dese, "time": model.time] as [String: Any]
        let dict = ["type": LogType.End.rawValue, "log": logDict] as [String: Any]
        DHClientEventLogHelper.shareInstance().addClientEventLog(LogType.End.rawValue, conent: dict)
    }
    
    /**
     *  NetSDK接口调用结果,会上报多次,每次数据均保留;(搜索接口只报失败)
     */
    @objc public func addDeviceNetSDKLog(model: DHAddDeviceLogModel) {
        
        let logDict = ["bust": bust, "requestid": requestID, "method": model.method, "errCode": model.errCode, "res": model.res, "time": model.time] as [String: Any]
        let dict = ["type": LogType.NetSDK.rawValue, "log": logDict] as [String: Any]
        DHClientEventLogHelper.shareInstance().addClientEventLog(LogType.NetSDK.rawValue, conent: dict)
    }
    
    /**
     *  初始化结果,会上报多次,每次数据均保留(IOS 新设备IP无效时单独调)
     */
    @objc public func addDeviceInitLog(model: DHAddDeviceLogModel) {
        
    }
}