无故事王国
2023-10-17 77041c81c325c0bc88c94dc28d732f656cc4c885
WanPai/Root/Yard/VC/YardBookingDetailVC.swift
@@ -29,6 +29,9 @@
   @IBOutlet weak var btn_payment: UIButton!
   @IBOutlet weak var view_halfYard: UIView!
   @IBOutlet weak var btn_call: UIButton!
   @IBOutlet weak var cons_cancelWidth: NSLayoutConstraint!
   @IBOutlet weak var label_descInfo: UILabel!
   @IBOutlet weak var view_yard: UIView!
   
   private var yardBookingModel:YardBookingModel!
   private var yardBookingDetailDataModel:YardBookingDetailDataModel?
@@ -49,6 +52,7 @@
      label_title.text = yardBookingModel.name
      label_address.text = String(format: "%@(%@)", yardBookingModel.storeName,yardBookingModel.storeAddress)
      label_type.text = yardBookingModel.siteTypeName
      view_yard.isHidden = yardBookingModel.siteTypeName.isEmpty
      getData()
   }
@@ -70,11 +74,14 @@
                  self?.label_paymentPrice.text = model.payMoney.string + "课时"
               case .coin:
                  self?.label_paymentPrice.text = model.payMoney.int.string + "币"
               case .integral:break
            }
            self?.label_bookingTime.text = Date.jq_format(TimeInterval(model.startTime / 1000), formatter: "yyyy-MM-dd HH:mm")
            self?.label_usedState.text = model.status.titleRaw
            self?.label_paymentTime.text = Date.jq_format(TimeInterval(model.payTime / 1000), formatter: "yyyy-MM-dd HH:mm")
            switch model.state {
            switch model.status {
               case .waitPayment:
                  self?.label_paymentTime.text = "待支付"
                  self?.label_usedState.text = "待支付"
@@ -83,27 +90,27 @@
                  self?.view_qrCode.isHidden = true
                  self?.btn_payment.isHidden = false
               case .cancel,.complete:
                  self?.view_qrCode.isHidden = true
               case .cancel,.complete,.overdue:
                  self?.btn_payment.isHidden = true
                  self?.btn_cancel.isHidden = true
                  self?.view_qrCode.isHidden = true
               case .inStore:
                  self?.btn_payment.isHidden = true
                  self?.btn_cancel.isHidden = true
                  self?.showQRCode(model, ids: data.data?.ids ?? [])
               case .pending:
                  if let m = self?.yardBookingDetailDataModel{
                     let t = OpenDoorTimeModel(start_time: TimeInterval(model.startTime / 1000), end_time: TimeInterval(model.endTime / 1000))
                     let openDoorModel = OpenDoorModel(sid: m.siteId, rid: data.data?.ids ?? [], uid: m.appUserId, time: [t], type: 2)
                     if let modelStr = openDoorModel.toJSONString(){
                        self?.img_QRCode.image = QRCodeImage(string: modelStr, size: 132 * sceneDelegate!.window!.screen.scale)
                     }
                  }
                  self?.btn_payment.isHidden = true
                  self?.btn_cancel.isHidden = true
                  self?.showQRCode(model, ids: data.data?.ids ?? [])
                  fallthrough
               default:
                  self?.view_paymentTime.isHidden = model.payTime == 0
                  self?.label_paymentTime.text = Date.jq_format(TimeInterval(model.payTime / 1000), formatter: "yyyy-MM-dd HH:mm")
                  self?.label_usedState.text = model.state.titleRaw
                  self?.view_qrCode.isHidden = false
                  self?.btn_cancel.isHidden = false
                  self?.btn_payment.isHidden = true
                  break
//                  self?.view_paymentTime.isHidden = true
//                  self?.label_usedState.text = model.status.titleRaw
//                  self?.view_qrCode.isHidden = false
//                  self?.btn_cancel.isHidden = false
//                  self?.btn_payment.isHidden = true
//                  self?.cons_cancelWidth.constant = 189
            }
         }
      }) { error in
@@ -111,9 +118,31 @@
      }.disposed(by: disposeBag)
   }
   override func setUI() {
      let text = "您已经预约成功,请在预约时段扫码此二维码入场。您可以在“预约场地-已预约场地-详情”页面找到此二维码。"
      let attribute = AttributedStringbuilder.build().add(string: text, withFont: UIFont.systemFont(ofSize: 12, weight: .medium), withColor: .black.withAlphaComponent(0.43),lineSpace: 5).mutableAttributedString
      label_descInfo.attributedText = attribute
   }
   private func showQRCode(_ model:YardBookingDetailDataModel,ids:[Int]){
      guard model.goType == 0 else {
            //入园方式是手环,隐藏Code
         view_qrCode.isHidden = true;return
      }
      if let m = yardBookingDetailDataModel{
         let t = OpenDoorTimeModel(start_time: TimeInterval(model.startTime / 1000), end_time: TimeInterval(model.endTime / 1000))
         let openDoorModel = OpenDoorModel(sid: m.siteId, rid: ids, uid: m.appUserId, time: [t], type: 2)
         if let modelStr = openDoorModel.toJSONString(){
            img_QRCode.image = QRCodeImage(string: modelStr, size: 132 * sceneDelegate!.window!.screen.scale)
         }
      }
   }
   @IBAction func callAction(_ sender: UIButton) {
      guard let phone = yardBookingDetailDataModel?.phone else {return}
      UIApplication.shared.open(URL(string: "tell://\(phone)")!, options: [:], completionHandler: nil)
      UIApplication.shared.open(URL(string: "tel://\(phone)")!, options: [:], completionHandler: nil)
   }
@@ -131,7 +160,46 @@
   }
   @IBAction func paymentAction(_ sender: UIButton) {
      Services.continuePaymentPrice(id: yardBookingModel.id).subscribe(onNext: {data in
         if let model = data.data{
            PaymentView.show(money: (ali: model.cash, wx: model.cash, coin: model.playPaiCoin, course: nil,integral:nil)) { [weak self] paytype in
               guard let weakSelf = self else { return }
               Services.continuePayment(id: weakSelf.yardBookingModel.id, payType: paytype).subscribe(onNext: {data in
                  if let m = data.data{
                     switch paytype {
                        case .aliPay:
                           YYPaymentManager.shared.sendPaymentRequest(YYAlipayRequest(orderString: m.orderString)) { result in
                              switch result {
                                 case .success:
                                    let vc = PaymentResultVC(result: .success, objType: .activityApply)
                                    vc.modalPresentationStyle = .fullScreen
                                    self?.present(vc, animated: true)
                                 case .cancel:
                                    alert(msg: "交易取消")
                                 case .failure(let error):
                                    let vc = PaymentResultVC(result: .fail(error.localizedDescription), objType: .activityApply)
                                    vc.modalPresentationStyle = .fullScreen
                                    self?.present(vc, animated: true)
                              }
                           }
                        case .wechat:break
                        case .coin:
                           let vc = PaymentResultVC(result: .success, objType: .activityApply)
                           vc.modalPresentationStyle = .fullScreen
                           self?.present(vc, animated: true)
                        case .courseNum:break
                        case .integral:break
                     }
                  }
               }) { error in
                  let vc = PaymentResultVC(result: .fail(error.localizedDescription), objType: .activityApply)
                  vc.modalPresentationStyle = .fullScreen
                  self?.present(vc, animated: true)
               }.disposed(by: weakSelf.disposeBag)
            }
         }
      }) { error in
      }.disposed(by: disposeBag)
   }
}