HadoopProvider.swift
2.2 KB
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
//
// HadoopProvider.swift
// AoleiSports
//
// Created by ilCode on 2024/6/26.
//
import UIKit
enum HadoopTarget: TargetType {
case bigDataList
var task: Moya.Task {
let parameters = ["query": """
query{
\(APIs.kBigDataList)
}
"""]
return .requestParameters(parameters: parameters, encoding: JSONEncoding.default)
}
}
class HadoopProvider<Target: TargetType>: BaseMoyaProvider<Target> {
var bigDataList = BehaviorRelay<[HadoopMatchModel]>(value: [])
var predictData = BehaviorRelay<(Int, String)>(value: (0, "0"))
var matchTotalCount = BehaviorRelay<Int>(value: 0)
var comList = BehaviorRelay<[HadoopComModel]>(value: [])
func bigDataListRequest(completion: @escaping (Result<Bool, AsError>) -> Void) {
moyaPost(api: APIs.kBigDataList, target: HadoopTarget.bigDataList) { midResult in
// DDLogInfo("大数据研究列表接口数据:\(midResult)")
switch midResult {
case let .success(midSuccessResult):
let requestModel = HadoopRequestModel(JSON: midSuccessResult)
if let tmpReult = requestModel?.result, !tmpReult.isEmpty {
self.bigDataList.accept(tmpReult)
}
if let predictData = requestModel?.predictData,
let predictResult = predictData.predictResult,
let totalCount = predictResult["total_count"] as? Int,
let predict = predictResult["predict"] as? [String : Any],
let rate = predict["rate"] as? String {
self.predictData.accept((totalCount, rate))
}
if let total = requestModel?.total {
self.matchTotalCount.accept(total)
}
if let tmpComList = requestModel?.competitionList, !tmpComList.isEmpty {
self.comList.accept(tmpComList)
}
completion(.success(true))
case .failure(let err):
completion(.failure(err))
}
}
}
}