add
无故事王国
2024-06-03 3d8ce4866799bea7e66699acdeb86b60b0ba033c
DolphinEnglishLearnStudent/Moudle/Market/VC/MarketExchangeVC.swift
@@ -7,10 +7,7 @@
import UIKit
import RxRelay
class MarketViewModel{
            var number = BehaviorRelay<Int>(value:1)
}
import QMUIKit
class MarketExchangeVC: BaseVC {
            @IBOutlet weak var scrollView: UIScrollView!
@@ -18,11 +15,57 @@
            @IBOutlet weak var view_container: UIView!
            @IBOutlet weak var field_number: UITextField!
            @IBOutlet weak var cons_footerHei: NSLayoutConstraint!
            @IBOutlet weak var label_address: UILabel!
            @IBOutlet weak var label_address_info: UILabel!
            @IBOutlet weak var img_cover: UIImageView!
            @IBOutlet weak var label_goodsName: UILabel!
            @IBOutlet weak var label_coin: UILabel!
            @IBOutlet weak var btn_add: UIButton!
            @IBOutlet weak var btn_reduce: UIButton!
            @IBOutlet weak var textView_remark: QMUITextView!
            @IBOutlet weak var label_num: UILabel!
            @IBOutlet weak var label_needCoin: UILabel!
            @IBOutlet weak var label_orderNum: UILabel!
            @IBOutlet weak var label_footNeedCoin: UILabel!
            
            private var viewModel = MarketViewModel()
            private var viewModel = MarketContentViewModel()
            required init(viewModel:MarketContentViewModel) {
                        super.init(nibName: nil, bundle: nil)
                        self.viewModel = viewModel
            }
            required init?(coder: NSCoder) {
                        fatalError("init(coder:) has not been implemented")
            }
    override func viewDidLoad() {
        super.viewDidLoad()
                        Services.redeemNow(goodId: viewModel.detailModel.value!.good!.id).subscribe(onNext: {result in
                                    self.label_orderNum.text = result.data?.orderNumber ?? ""
                                    self.viewModel.detailModel.accept(result.data)
                        }).disposed(by: disposeBag)
                        Services.addressList().subscribe(onNext: {[weak self]result in
                                    self?.viewModel.address.accept(result.data ?? [])
                                    if let first = result.data?.filter({$0.isDefault == 1}).first{
                                                self?.label_address.text = first.address
                                                self?.label_address_info.text = first.recipient + "|" + first.recipientPhone
                                    }else{
                                                self?.label_address.text = "新建收货地址"
                                                self?.label_address_info.isHidden = true
                                    }
                        }).disposed(by: disposeBag)
                        self.img_cover.sd_setImage(with: URL(string: viewModel.detailModel.value?.good?.coverImg))
                        self.label_goodsName.text = viewModel.detailModel.value?.good?.name ?? ""
                        self.label_coin.text = "\(viewModel.detailModel.value?.good?.integral ?? 0)"
                        if viewModel.detailModel.value?.good?.userCount == 1{
                                    btn_add.isEnabled = false
                                    btn_reduce.isEnabled = false
                                    field_number.isEnabled = false
                        }
    }
            override func setUI() {
@@ -35,25 +78,62 @@
            override func setRx() {
                        viewModel.number.subscribe(onNext: {[weak self] num in
                                    self?.field_number.text = "\(num)"
                                    self?.label_num.text = "\(num)"
                                    let totalCoin = num * (self?.viewModel.detailModel.value?.good?.integral ?? 0)
                                    self?.label_needCoin.text = "\(totalCoin)"
                                    self?.label_footNeedCoin.text = "\(totalCoin)"
                        }).disposed(by: disposeBag)
            }
            @IBAction func addressAction(_ sender: Any) {
                        if viewModel.address.value.filter({$0.isDefault == 1}).count > 0{
                                    let vc = AddressManageVC(type: .choose)
                                    vc.title = "地址管理"
                                    push(vc: vc)
                        }else{
                                    let vc = AddressManageVC(type: .handle)
                                    vc.title = "地址管理"
                                    push(vc: vc)
                        }
            }
            @IBAction func addNumAction(_ sender: UIButton) {
                        let num = viewModel.number.value + 1
                        var num = viewModel.number.value + 1
                        if  num >= viewModel.detailModel.value?.good?.userCount ?? 0{
                                    num = viewModel.detailModel.value?.good?.userCount ?? 0
                                    sender.isEnabled = false
                        }
                        viewModel.number.accept(num)
            }
            @IBAction func reduceAction(_ sender: UIButton) {
                        let num = max(1,viewModel.number.value - 1)
                        viewModel.number.accept(num)
                        btn_add.isEnabled = true
            }
            @IBAction func exchangeAction(_ sender: UIButton) {
                        guard viewModel.address.value.filter({$0.isDefault == 1}).count != 0 else{
                                    CommonAlertView.show(content: "请先设置收货地址") {
                                                let vc = AddressManageVC(type: .handle)
                                                vc.title = "地址管理"
                                                self.push(vc: vc)
                                    }
                                    return
                        }
                        CommonAlertView.show(content: "确认兑换当前商品吗?") {
                                    let vc = ExchangeResultVC(resultType: .success)
                                    vc.title = "商品详情"
                                    self.push(vc: vc)
                                    let goodsId = self.viewModel.detailModel.value!.good!.id
                                    let num = self.viewModel.number.value
                                    let orderNumber = self.viewModel.detailModel.value?.orderNumber ?? ""
                                    let recipientId = self.viewModel.detailModel.value?.recipient?.id ?? 0
                                    Services.goodsExchangeStudy(goodsId: goodsId, number: num, orderNumber: orderNumber, recipientId: recipientId, remark: self.textView_remark.text!).subscribe(onNext: {_ in
                                                let vc = ExchangeResultVC(resultType: .success)
                                                vc.title = "商品详情"
                                                self.push(vc: vc)
                                    }).disposed(by: self.disposeBag)
                        }
            }
}