杨锴
2024-11-25 b0222c34dcbc7ae27949a605fb4c7cea473844b2
XQMuse/Root/Me/VC/WalletRechargeVC.swift
@@ -12,9 +12,12 @@
class WalletRechargeVC: BaseVC {
    @IBOutlet weak var stackView: UIStackView!
    @IBOutlet weak var tap_other: TapBtn!
    @IBOutlet weak var btn_handle: UIButton!
    @IBOutlet weak var collectionView: UICollectionView!
    @IBOutlet weak var cons_collectionHei: NSLayoutConstraint!
    @IBOutlet weak var tap_other_title: UILabel!
    private var selectIndexPath = IndexPath(row: 0, section: 0)
    private    let cellW = (JQ_ScreenW - (24 * 2) - 3 * 27) / 4
@@ -24,9 +27,23 @@
    private var oldPrice:Double = 0
    private var timeLoopDisposeBag = DisposeBag()
    
    private var isShowMore:Bool = false
    private var orderId:String? //下单后的ID
    private var tapType:TapType = .t2
    override func viewDidLoad() {
        super.viewDidLoad()
        title = "疗愈币充值"
        Services.getTurn(progress: false).subscribe(onNext: {[weak self]data in
            guard let weakSelf = self else { return }
            if let m = data.data,m == true{
                weakSelf.isShowMore = m
                weakSelf.tap_other.isHidden = false
                weakSelf.tap_other_title.text = "支".appending("付").appending("宝")
            }
        }).disposed(by: disposeBag)
        btn_handle.isEnabled = false
        btn_handle.alpha = 0.6
@@ -64,6 +81,36 @@
    override func setUI() {
        view.backgroundColor = UIColor(hexString: "f6f6f6")
        stackView.jq_cornerRadius = 10
    }
    override func setRx() {
        NotificationCenter.default.rx.notification(UIApplication.didBecomeActiveNotification).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in
            guard let weakSelf = self else { return }
            if weakSelf.isShowMore && weakSelf.orderId != nil{
                Services.queryPayment(orderId: weakSelf.orderId!).subscribe(onNext: {data in
                    if let str = data.data{
                        switch str{
                            case "succeeded":
                                alertSuccess(msg: "购买成功")
                                NotificationCenter.default.post(name: WithDrawReply_Noti, object: nil)
                                DispatchQueue.main.asyncAfter(delay: 1.0) {
                                    weakSelf.navigationController?.popViewController()
                                }
                            case "failed":
                                alertError(msg: "购买失败")
                            case "closed":
                                alertError(msg: "交易已关闭")
                            case "refunded":
                                alertError(msg: "全额退款")
                            case "pending":
                                alertError(msg: "待支付")
                            default:break
                        }
                    }
                }).disposed(by: weakSelf.disposeBag)
            }
        }).disposed(by: disposeBag)
    }
    override func viewDidLayoutSubviews() {
@@ -77,6 +124,32 @@
            sceneDelegate?.needLogin()
            return}
        if isShowMore{
            let product = products[selectIndexPath.row]
            Services.placeOrder(orderForm: .recharge, payType: tapType == .t2 ? 2:1, amount: product.price.doubleValue, balanceFlag: nil, orderId: nil, receiverId: nil, targetId: nil, vipType: nil).subscribe(onNext: {[weak self] data in
                guard let weakSelf = self else { return }
                if let m = data.data{
                    weakSelf.orderId = m.orderId
                    if weakSelf.tapType == .t2{
                        UIApplication.shared.open(URL(string: m.qrcodeUrl!)!)
                    }
                    if weakSelf.tapType == .t3{
                        let miniProgram =  WXLaunchMiniProgramReq.object()
                        miniProgram.miniProgramType = .release
                        miniProgram.userName = m.orgId!
                        miniProgram.path = m.path!
                        WXApi.send(miniProgram){ s in
                            if !s{
                                alert(msg: "打开失败")
                            }
                        }
                    }
                }
            }).disposed(by: disposeBag)
        }else{
        showHUD("正在进行内购买")
        let product = products[selectIndexPath.row]
        InPurchaseManager.purchaseProduct(ID: product.productIdentifier, applicationUsername: userId.string) {[weak self] result in
@@ -109,6 +182,22 @@
    }
}
    @IBAction func tapAction(_ sender: Any) {
        PurchaseMethodView.show {[weak self] type in
            guard let weakSelf = self else { return }
            weakSelf.tapType = type
            switch type {
                case .t2:
                    weakSelf.tap_other_title.text = "支".appending("付").appending("宝")
                case .t3:
                    weakSelf.tap_other_title.text = "微".appending("信")
                default:break
            }
        }
    }
}
extension WalletRechargeVC:UICollectionViewDelegate & UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {