宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-07-05 0d8f5fc8a516bfd07e425909e4a4432600572ee7
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//
//  ParamsAppender.swift
//  OKProject
//
//  Created by alvin_y on 2020/5/28.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import Foundation
import Alamofire
 
 
 
class APIParamsAppender: NSObject {
    
    var params:Dictionary = [String: Any]()
    
    override init(){
        if !app.loginInfo.appid.isEmpty {
            params += ["appid":"\(app.loginInfo.appid)"]
        }
    }
    func interface() -> APIParamsAppender {
        return self
    }
    
    func append(key: String,value: String) -> APIParamsAppender {
        if value == ""{
            return self
        }else{
            params += ["\(key)":"\(value)"]
            return self
        }
        
    }
    
    func append(key: String,value: String?) -> APIParamsAppender {
        guard let string = value,value != "" else {
            return self
        }
        params += ["\(key)":"\(string)"]
        return self
    }
    
    func append(key: String, value: Int) -> APIParamsAppender {
        params += ["\(key)":"\(value)"]
        return self
    }
    
    func append(key: String, value: Int?) -> APIParamsAppender {
        guard let value = value else {
            return self
        }
        params += ["\(key)":"\(value)"]
        return self
    }
    
    func append(key: String, value: Int64) -> APIParamsAppender {
        params += ["\(key)":"\(value)"]
        return self
    }
    func append(key: String, value: Double) -> APIParamsAppender {
        params += ["\(key)":"\(value)"]
        return self
    }
    func append(key: String, value: Double?) -> APIParamsAppender {
        guard let value = value else {
            return self
        }
        params += ["\(key)":"\(value)"]
        return self
    }
    
    func append(key: String,data: Data) -> APIParamsAppender {
        params += ["\(key)": data]
        return self
    }
    
    func append(key: String,url: URL) -> APIParamsAppender {
        params += ["\(key)":"\(url)"]
        return self
    }
    
    func done() -> Parameters {
        var paramsArray: [String] = []
        // 排序
        let sortedArray: [String] = Array(params.keys).sorted()
        for item in sortedArray{
            // 拼接字符串
            if params.has(key: item){
                paramsArray.append("\(item)=\(params[item]!)")
            }
        }
        let content = paramsArray.joined(separator: "&")
        if params.keys.contains("appid") {
            params += ["sign": "\(content.hmacBase64(algorithm: .SHA1, key: params["appid"] as! String))"]
        }else{
            return params
            
        }
        return params
    }
    
}