ThimraTV/MoviaBox/Class/Wallet/Controller/SPStoreViewController.swift

152 lines
4.3 KiB
Swift

//
// SPStoreViewController.swift
// MoviaBox
//
// Created by on 2025/4/29.
//
import UIKit
class SPStoreViewController: SPViewController {
//MARK: UI
private lazy var scrollView: SPScrollView = {
let scrollView = SPScrollView()
return scrollView
}()
private lazy var stackView: UIStackView = {
let view = UIStackView()
view.axis = .vertical
view.spacing = 16
return view
}()
private lazy var rechargeView: SPCoinRechargeView = {
let view = SPCoinRechargeView()
view.userInfo = SPLoginManager.manager.userInfo
view.rechargeFinishHandle = { [weak self] in
self?.buyFinish()
}
return view
}()
private lazy var memberView: SPMemberRechargeView = {
let view = SPMemberRechargeView()
view.buyFinishHandle = { [weak self] in
self?.buyFinish()
}
return view
}()
private lazy var tipTitleLabel: UILabel = {
let label = UILabel()
label.font = .fontMedium(ofSize: 12)
label.textColor = .colorFFFFFF(alpha: 0.7)
return label
}()
private lazy var tipTextLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.textColor = .colorFFFFFF(alpha: 0.5)
label.font = .fontRegular(ofSize: 12)
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Store".localized
self.edgesForExtendedLayout = .top
setBackgroundView(isShowGradient: false, bgImage: UIImage(named: "buy_bg_image_02"))
let rightBarButton = UIBarButtonItem(title: "Restore".localized, style: .plain, target: self, action: #selector(handelRightBarButton))
self.navigationItem.rightBarButtonItem = rightBarButton
tipTitleLabel.text = "kStoreTipTitle".localized
tipTextLabel.text = "kStoreTipText".localized
_setupUI()
requestPayTemplate()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
setNavigationNormalStyle(backgroundColor: .clear, isTranslucent: true)
}
}
extension SPStoreViewController {
@objc private func handelRightBarButton() {
}
@objc private func buyFinish() {
SPLoginManager.manager.updateUserInfo { [weak self] in
self?.rechargeView.userInfo = SPLoginManager.manager.userInfo
}
}
}
extension SPStoreViewController {
private func _setupUI() {
view.addSubview(scrollView)
scrollView.addSubview(stackView)
scrollView.addSubview(tipTitleLabel)
scrollView.addSubview(tipTextLabel)
scrollView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalToSuperview().offset(kSPNavBarHeight)
}
stackView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview()
// make.bottom.equalTo(-(kSPTabbarSafeBottomMargin + 10))
make.width.equalTo(kSPScreenWidth)
}
tipTitleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(24)
make.top.equalTo(stackView.snp.bottom).offset(34)
}
tipTextLabel.snp.makeConstraints { make in
make.left.equalTo(tipTitleLabel)
make.right.lessThanOrEqualTo(stackView).offset(-24)
make.top.equalTo(tipTitleLabel.snp.bottom).offset(4)
make.bottom.equalTo(-(kSPTabbarSafeBottomMargin + 10))
}
}
}
extension SPStoreViewController {
///
private func requestPayTemplate() {
SPWalletAPI.requestPayTemplate { [weak self] templateModel in
guard let self = self else { return }
self.rechargeView.dataArr = templateModel?.list_coins
self.memberView.dataArr = templateModel?.list_sub_vip
self.stackView.removeAllArrangedSubview()
self.stackView.addArrangedSubview(self.memberView)
self.stackView.addArrangedSubview(self.rechargeView)
}
}
}