CNHomePageViewModel.swift
2.56 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
64
65
66
67
68
69
70
71
//
// CNLiveHomePageViewModel.swift
// metaCode
//
// Created by daojian on 2023/7/3.
//
import Foundation
import CNLiveRequestBastKit
///请求响应回调
typealias responseBlock = (_ listArray:Array<CNLiveIdentityModel>, _ responseType:CNLiveNetworkingResponseType, _ errorMsg:String) -> Void
class CNLiveHomePageViewModel:NSObject {
/// 获取身份列表
class func getUserIdentityApi(resultBlock:@escaping responseBlock){
//先从本地获取,本地有直接返回
let db = CNLiveIdentityDB()
let allDbArray = db.searchAllObject()
if(allDbArray.count > 0){
resultBlock(allDbArray,.success,"")
return
}
//从网络获取
CNLiveNetworking.setAllowRequestDefaultArgument(false)
CNLiveNetworking.setupShowDataResult(false)
CNLiveNetworking.requestNetwork(with: .GET, urlString: "\(APPBaseMCUrl)/identityApi/list?sid=\(UserInfoManager.shared.userInfo.uid)&page=1&pageSize=1000", param: nil, cacheType: .networkOnly) { task , result, error in
if((error) != nil){
//网络请求失败
if CNLiveNetworking.isNetworking(){
resultBlock([],.failed,error?.localizedDescription ?? "请求失败")
}else{
resultBlock([],.noNetwork,"无网络连接")
}
return
}
let resultDic:NSDictionary = result as! NSDictionary
let errorCode:String = "\(resultDic["errorCode"]!)"
if (errorCode == "0"){
let data:NSDictionary = resultDic["data"] as! NSDictionary
let list:NSArray = data["list"] as! NSArray
//list数据转CNLiveIdentityModel, 并把model存入本地
var array:Array = Array<CNLiveIdentityModel>()
for index in 0..<list.count{
let item = dictionaryToModel(list[index] as! [String : Any], CNLiveIdentityModel.self, "")
array.append(item as! CNLiveIdentityModel)
//存入数据库
db.insterObject(object: item as! CNLiveIdentityModel)
}
resultBlock(array,.success,"")
}
else{
let errorMessage:String = resultDic["errorMessage"] as! String
showMessage(message: errorMessage)
resultBlock([],.failed,errorMessage)
}
}
}
}