宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-07-04 38f768d39ba27d303147c59a222655b7c6cdfb25
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
//
//  TravelServicePayViewModel.swift
//  OKProject
//
//  Created by alvin_y on 2020/6/10.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import UIKit
import RxSwift
import RxCocoa
class TravelServicePayViewModel: YYViewModel {
    
    /// 订单Id
    let orderId = BehaviorRelay<Int>(value: 0)
    
    /// 支付方式
    let payType = BehaviorRelay<Int>(value: 0)
    
    /// 优惠券Id
    let couponId = BehaviorRelay<Int?>(value: nil)
    
    /// 订单类型
    let orderType  = BehaviorRelay<OrderType>(value: .taxi)
    let payway  = BehaviorRelay<Int>(value: 1)
    
    /// 优惠券数量
    let couponNum = BehaviorRelay<Int>(value: 0)
    
    /// 支付页面获取可用优惠券数量和余额
    let queryBalanceSubject = PublishSubject<RequestStatus>()
 
    let couponDataType = BehaviorRelay<CouponDataType?>(value: nil)
    
    
    /// 支付页面获取可用优惠券数量和余额
    func queryBalance()  {
        queryBalanceSubject.onNext(.loading)
        APIManager.shared.provider.rx
            .request(.queryBalance(orderId: orderId.value, orderType: orderType.value.rawValue))
        .map(YYModel<QueryBalanceModel>.self)
        .validate()
        .subscribe(onSuccess: { [unowned self] (model) in
            self.couponNum.accept(model.data?.coupon ?? 0)
            self.queryBalanceSubject.onNext(.success(model.data))
        }) {[unowned self] (error) in
            self.queryBalanceSubject.onNext(.error(error))
        }
        .disposed(by: disposeBag)
    }
    
    /// 支付订单操作
    func payTaxiOrder(type:PayTypeNormal? = nil)  {
        requestSubject.onNext(.loading)
            APIManager.shared.provider.rx
            .request(.payTaxiOrder(orderId: orderId.value, payType: payType.value,orderType: orderType.value.rawValue, couponId: couponId.value,objectType:couponDataType.value))
            .map(YYModel<PayModel>.self)
            .validate()
            .subscribe(onSuccess: { [unowned self] (model) in
                self.requestSubject.onNext(.success(model.data))
            }) {[unowned self] (error) in
                self.requestSubject.onNext(.error(error))
            }
            .disposed(by: disposeBag)
    }
    /// 支付物流差价
    func paylogisicOrder()  {
        requestSubject.onNext(.loading)
            APIManager.shared.provider.rx
                .request(.payOrderLogisticsSpread(orderId: orderId.value, payType: payType.value))
            .map(YYModel<PayModel>.self)
            .validate()
            .subscribe(onSuccess: { [unowned self] (model) in
                self.requestSubject.onNext(.success(model.data))
            }) {[unowned self] (error) in
                self.requestSubject.onNext(.error(error))
            }
            .disposed(by: disposeBag)
    }
 
 
    /// 支付感谢费
    func payThanksOrder(money:Double,orderType:OrderType,payType:PayTypeNormal){
        requestSubject.onNext(.loading)
        APIManager.shared.provider.rx.request(.payThankYouFee(money: money, orderId: orderId.value, orderType: orderType, payType: payType)).map(YYModel<PayModel>.self).validate().subscribe(onSuccess: {model in
            self.requestSubject.onNext(.success(model.data))
        }) { error in
            self.requestSubject.onNext(.error(error))
        }.disposed(by: disposeBag)
    }
}