宽窄优行-由【嘉易行】项目成品而来
无故事王国
2023-05-24 b57da2ad2fa51029fb47f10b9e96ac8e87d7c983
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
//
//  EnterpriseViewModel.swift
//  OKProject
//
//  Created by 无故事王国 on 2023/5/22.
//  Copyright © 2023 yangwang. All rights reserved.
//
 
import Foundation
import RxSwift
import RxCocoa
 
class EnterpriseViewModel:YYViewModel{
    func queryEnterpriseInfo(_ clouse:@escaping (ResponseStatus<EnterpriseInfoModel>)->Void){
        show()
        APIManager.shared.provider.rx.request(.queryCompany).mapTravelThenValidate(EnterpriseInfoModel.self).subscribe { result in
            self.hidden()
            switch result {
                case .success(let element):
                    clouse(ResponseStatus.success(element!))
                case .failure(let e):
                    clouse(ResponseStatus.error(e))
            }
        } onError: { error in
            self.hidden()
            clouse(ResponseStatus.error(error))
        }.disposed(by: disposeBag)
    }
 
    func submitEnterprise(id:Int? = nil,name:String,mailbox:String,legalName:String,legalPhone:String,identifier:String,contactAddress:String,businessLicense:String,clouse: @escaping (ResponseStatus<Nothing>)->Void){
        show()
        APIManager.shared.provider.rx.request(.submitCompany(name: name, mailbox: mailbox, legalName: legalName, legalPhone: legalPhone, identifier: identifier, contactAddress: contactAddress, businessLicense: businessLicense)).mapTravelThenValidate(Nothing.self).subscribe { result in
            self.hidden()
            switch result {
                case .success(_):
                    clouse(ResponseStatus.success(nil))
                case .failure(let e):
                    clouse(ResponseStatus.error(e))
            }
        } onError: { error in
            self.hidden()
            clouse(ResponseStatus.error(error))
        }.disposed(by: disposeBag)
    }
 
    func saveCompanyLimit(applyQuota:String,applyReason:String,clouse: @escaping (ResponseStatus<Nothing>)->Void){
        show()
        APIManager.shared.provider.rx.request(.saveCompanyLimit(applyQuota: applyQuota, applyReason: applyReason)).mapTravelThenValidate(Nothing.self).subscribe { result in
            self.hidden()
            switch result {
                case .success(_):
                    clouse(ResponseStatus.success(nil))
                case .failure(let e):
                    clouse(ResponseStatus.error(e))
            }
        } onError: { error in
            self.hidden()
            clouse(ResponseStatus.error(error))
        }.disposed(by: disposeBag)
    }
 
    func getCompanyLimitDetail(id:Int,clouse: @escaping (ResponseStatus<LinesModel>)->Void){
        show()
        APIManager.shared.provider.rx.request(.getCompanyLimitDetail(id: id)).mapTravelThenValidate(LinesModel.self).subscribe { result in
            self.hidden()
            switch result {
                case .success(let m):
                    clouse(ResponseStatus.success(m))
                case .failure(let e):
                    clouse(ResponseStatus.error(e))
            }
        } onError: { error in
            self.hidden()
            clouse(ResponseStatus.error(error))
        }.disposed(by: disposeBag)
    }
 
        /// 额度审核
        /// - Parameters:
        ///   - id: id
        ///   - remark: 拒绝备注
        ///   - status: 审核状态(1审核通过 2审核拒绝)
    func companyLimitApprove(id:Int,remark:String? = nil,status:Int,clouse: @escaping (ResponseStatus<Nothing>)->Void){
        show()
        APIManager.shared.provider.rx.request(.companyLimitApprove(id: id, remark: remark, status: status)).mapTravelThenValidate(Nothing.self).subscribe { result in
            self.hidden()
            switch result {
                case .success(_):
                    clouse(ResponseStatus.success(nil))
                case .failure(let e):
                    clouse(ResponseStatus.error(e))
            }
        } onError: { error in
            self.hidden()
            clouse(ResponseStatus.error(error))
        }.disposed(by: disposeBag)
    }
}