宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-05-30 ab6ef7166ee51721fec3e3537414f6d6ed08b49d
OKProject/Class/Home/ViewModel/TravelViewModel.swift
@@ -53,7 +53,22 @@
    /// 订单Id
    let orderId = BehaviorRelay<Int>(value: 0)
    
    /// 企业审核情况
    let authStatus = BehaviorRelay<Bool>(value: false)
    /// 出行事由
    let trailReason = BehaviorRelay<String?>(value: nil)
    /// 出行具体内容
    let trailContentReason = BehaviorRelay<String?>(value: nil)
    /// 付费方式
    let officalPaymentType = BehaviorRelay<OfficalPaymentType>(value: .selfPay)
    let passengers = BehaviorRelay<[PassengerInfo]>(value: [])
    /// 计费方式
    let calType = BehaviorRelay<Int?>(value: nil)
    
    /// 获取正在进行中的订单
    func queryServingOrder()  {
@@ -161,6 +176,34 @@
        .disposed(by: disposeBag)
    }
    
    func officalOrder(){
        guard let originInfo = YYMapViewManager.share.originInfo.value,let destination = YYMapViewManager.share.destination.value else {return}
        taxiOrderSubject.onNext(.loading)
        let orderType = YYMapViewManager.share.state.value == .appointment ? 2 : 1
        let substitute = YYMapViewManager.share.passenger.value == nil ? 0 : 1
        let timeStamp = DateInRegion(Date(), region: Region(calendar: Calendars.gregorian, zone: Zones.current,locale: Locales.current)).toFormat("yyyy-MM-dd HH:mm")
        let travelTime = orderType == 2 ? YYMapViewManager.share.timeStamp.value?.toFormat(format: "yyyy-MM-dd HH:mm") ?? timeStamp : timeStamp
        if substitute == 1{
            YYMapViewManager.share.passenger.accept(PassengerModel(name: app.userInfo.nickName, phone: app.userInfo.phone))
        }
        let reqModel = OfficalRequstModel(serverCarModelId:selectedCarType.value?.id,calType: .Single, endAddress: destination.name, endLat: destination.lat, endLon: destination.lon, orderSource: 1, orderType: orderType, passengers: YYMapViewManager.share.passenger.value?.name, passengersPhone: YYMapViewManager.share.passenger.value?.phone, payWay: officalPaymentType.value.rawValue, people: passengers.value.arrayToJson(), peopleNum: passengers.value.count, placementLat: Double(YYMapViewManager.share.userLocation.latitude), placementLon: Double(YYMapViewManager.share.userLocation.longitude), reason: trailContentReason.value, reasonTypeNames: trailReason.value, startAddress: originInfo.name, startLat: originInfo.lat, startLon: originInfo.lon, substitute: substitute, travelTime: timeStamp, type: 1)
        APIManager.shared.provider.rx
            .request(.saveOrderBusiness(model: reqModel)).map(YYModel<SwitchCityModel>.self)
            .validate()
            .subscribe(onSuccess: {[unowned self]  (model) in
                guard let data = model.data else{return}
                self.orderId.accept(data.id)
                self.taxiOrderSubject.onNext(.success(nil))
            }) { [unowned self] (error) in
                self.taxiOrderSubject.onNext(.error(error))
        }
        .disposed(by: disposeBag)
    }
    
    /// 快车下单
    func specialOrder()  {