无故事王国
2024-03-08 4966eb10cbf5ce9c6ee37a13d393fb0ae2d85b60
WanPai/Root/Search/VC/WorldCupContentApplyInputVC.swift
@@ -36,6 +36,7 @@
            @IBOutlet weak var btn_agreement: UIButton!
            @IBOutlet weak var cons_tableHei: NSLayoutConstraint!
            @IBOutlet weak var btn_addStudent: QMUIButton!
            @IBOutlet weak var btn_enroll: UIButton!
@@ -63,37 +64,45 @@
                        tableView.register(UINib(nibName: "StudentInfo_2_TCell", bundle: nil), forCellReuseIdentifier: "_StudentInfo_2_TCell")
            }
    override func viewDidLoad() {
        super.viewDidLoad()
            override func viewDidLoad() {
                        super.viewDidLoad()
                        title = "社区世界杯"
                        let imgs = detailModel.infoImg.components(separatedBy: ",")
                                    var items = [CommonBannerModel]()
                                    for (index,img) in imgs.enumerated(){
                                                items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
                                    }
                                    bannerView.setItems(items: items)
                        var items = [CommonBannerModel]()
                        for (index,img) in imgs.enumerated(){
                                    items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
                        }
                        bannerView.setItems(items: items)
                        btn_moreStore.isHidden = detailModel.storeInfos.count > 1
                        let endDateTimeInterval = Date.jq_StringToTimeInterval(detailModel.registrationClosingTime, "yyyy-MM-dd HH:mm")
                        if endDateTimeInterval < Date().timeIntervalSince1970{
                                    btn_enroll.setTitle("报名已截止", for: .normal)
                                    btn_enroll.backgroundColor = .gray.withAlphaComponent(0.5)
                        }
                                    label_title.text = detailModel.name
                                    label_hot.text = "\(detailModel.heat)"
                                    label_duetime.text = detailModel.registrationClosingTime
                                    label_starttime.text = detailModel.startTime
                                    label_endtime.text = detailModel.endTime
                                    label_ageScope.text = detailModel.age + "岁"
                                    switch detailModel.gender{
                                                case 1:label_genderCond.text = "男"
                                                case 2:label_genderCond.text = "女"
                                                default:label_genderCond.text = "全部"
                                    }
                                    label_city.text = ""
                                    label_address.text = detailModel.address
                                    label_matchPoint.text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
                                    label_pay_money.text = "¥\(detailModel.cash)/人"
                                    label_pay_coin.text = "\(detailModel.paiCoin)币/人"
                                    label_pay_course.text = "\(detailModel.classHour)课时/人"
    }
                        btn_moreStore.isHidden = detailModel.storeInfos.count == 1
                        label_title.text = detailModel.name
                        label_hot.text = "\(detailModel.heat)"
                        label_duetime.text = detailModel.registrationClosingTime
                        label_starttime.text = detailModel.startTime
                        label_endtime.text = detailModel.endTime
                        label_ageScope.text = detailModel.age + "岁"
                        switch detailModel.gender{
                                    case 1:label_genderCond.text = "男"
                                    case 2:label_genderCond.text = "女"
                                    default:label_genderCond.text = "全部"
                        }
                        label_city.text = ""
                        label_address.text = detailModel.address
                        label_matchPoint.text = detailModel.storeInfos.map({$0.name}).joined(separator: "、")
                        label_pay_money.text = detailModel.cash == 0 ? "免费":"¥\(detailModel.cash)/人"
                        label_pay_coin.text = detailModel.paiCoin == 0 ? "免费":"\(detailModel.paiCoin)币/人"
                        label_pay_course.text  = detailModel.classHour == 0 ? "免费":"\(detailModel.classHour)课时/人"
            }
            override func setRx() {
                        tableView.rx.observe(CGSize.self, "contentSize").subscribe(onNext: {[weak self] size in
@@ -122,7 +131,7 @@
                        sender.isSelected = !sender.isSelected
            }
            @IBAction func webAction(_ sender: Any) {
                        let webVC = CommonWebVC(type: .matchStore,customTitle: "社区世界杯报名协议")
                        push(vc: webVC)
@@ -147,71 +156,67 @@
                                                for v in weakSelf.students{
                                                            result.append(["id":v.id,"isStudent":v.isStudent])
                                                }
                                                Services.worldCupPaymentCheck(id: weakSelf.detailModel.id, ids: result.jq_toJson1(), uid: nil).subscribe(onNext: {data in
                                                            if let model = data.data{
                                                                        var money:Double?
                                                                        var paiCoin:Int?
                                                                        var classHour:Int?
                                                var money:Double = 0
                                                var paiCoin:Int = 0
                                                var classHour:Int = 0
                                                                        money = weakSelf.detailModel.cash.double
                                                money = weakSelf.detailModel.cash
                                                paiCoin = weakSelf.detailModel.paiCoin
                                                classHour = weakSelf.detailModel.classHour
                                                                        if model.paiCoin == 1{
                                                                                    paiCoin = weakSelf.detailModel.paiCoin
                                                                        }
                                                                        if model.classHour == 1{
                                                                                    classHour = weakSelf.detailModel.classHour
                                                                        }
                                                                        PaymentView.show(enumType: .worldCup, money: (ali: money, wx: money, coin: paiCoin, course:classHour, integral: nil)) {[weak self] payType in
                                                                                    guard let weakSelf = self else { return }
                                                                                    Services.worldCupPayment(id: weakSelf.detailModel.id, ids: result.jq_toJson1(), payType: payType, uid: nil).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: .worldCup)
                                                                                                                                                                        self?.push(vc: vc)
                                                                                                                                                            case .cancel:
                                                                                                                                                                        alert(msg: "交易取消")
                                                                                                                                                            case .failure(_):
                                                                                                                                                                        let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .worldCup)
                                                                                                                                                                        self?.push(vc: vc)
                                                                                                                                                }
                                                                                                                                    }
                                                                                                                        case .coin,.free:
                                                                                                                                    let vc = PaymentResultVC(result: .success, objType: .worldCup)
                                                                                                                                    self?.push(vc: vc)
                                                                                                                        case .courseNum:
                                                                                                                                    let vc = PaymentResultVC(result: .success, objType: .worldCup)
                                                                                                                                    self?.push(vc: vc)
                                                                                                                        default:break
                                                                                                            }
                                                                                                }
                                                                                    },onError: { error in
                                                                                                if let er = error as? NetworkRequest.NetRequestError{
                                                                                                            switch er {
                                                                                                                        case .Other(let code,let string):
                                                                                                                                    let vc = PaymentResultVC(result: .fail(string,code), objType: .worldCup)
                                                                                                                                    JQ_currentViewController().jq_push(vc: vc)
                                                                                                                        default:
                                                                                                                                    let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .worldCup)
                                                                                                                                    JQ_currentViewController().jq_push(vc: vc)
                                                                                                            }
                                                                                                }
                                                                                    }).disposed(by: weakSelf.disposeBag)
                                                                        }
                                                if money == 0 && paiCoin == 0 && classHour == 0{
                                                            weakSelf.payment(payType: .free, result: result)
                                                }else{
                                                            PaymentView.show(enumType: .worldCup, money: (ali: money, wx: money, coin: paiCoin, course:classHour, integral: nil)) {[weak self] payType in
                                                                        guard let weakSelf = self else { return }
                                                                        weakSelf.payment(payType: payType, result: result)
                                                            }
                                                }).disposed(by: weakSelf.disposeBag)
                                                }
                                    }
                        }
            }
            private func payment(payType:PayType,result:[Dictionary<String,Int>]){
                        Services.worldCupPayment(id: detailModel.id, ids: result.jq_toJson1(), payType: payType, uid: nil).subscribe(onNext: {[weak self]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: .worldCup)
                                                                                                            self?.push(vc: vc)
                                                                                                case .cancel:
                                                                                                            alert(msg: "交易取消")
                                                                                                case .failure(_):
                                                                                                            let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .worldCup)
                                                                                                            self?.push(vc: vc)
                                                                                    }
                                                                        }
                                                            case .coin,.free:
                                                                        let vc = PaymentResultVC(result: .success, objType: .worldCup)
                                                                        self?.push(vc: vc)
                                                            case .courseNum:
                                                                        let vc = PaymentResultVC(result: .success, objType: .worldCup)
                                                                        self?.push(vc: vc)
                                                            default:break
                                                }
                                    }
                        },onError: { error in
                                    if let er = error as? NetworkRequest.NetRequestError{
                                                switch er {
                                                            case .Other(let code,let string):
                                                                        let vc = PaymentResultVC(result: .fail(string,code), objType: .worldCup)
                                                                        JQ_currentViewController().jq_push(vc: vc)
                                                            default:
                                                                        let vc = PaymentResultVC(result: .fail("支付失败",0), objType: .worldCup)
                                                                        JQ_currentViewController().jq_push(vc: vc)
                                                }
                                    }
                        }).disposed(by: disposeBag)
            }
            required init?(coder: NSCoder) {
                        fatalError("init(coder:) has not been implemented")
            }