| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- //
- // QSLJumpManager.swift
- // QuickSearchLocation
- //
- // Created by Destiny on 2024/12/24.
- //
- import Foundation
- import UIKit
- enum JumpType: Int {
- case createInspration = 0 // 灵感创作
- case createDiy // 自定义创作
- case mine // 我的
- case vip // 会员
- case login // 登录
- case accompaniment // 伴奏
- }
- class QSLJumpManager: NSObject {
-
- static let shared = QSLJumpManager()
-
- private override init() {}
- }
- extension QSLJumpManager {
-
- // 跳转到Vip页面
- func pushToVip(type: QSLVipJumpType) {
-
- let vc = QSLVipController()
- vc.type = type
- self.rootViewController()?.pushVC(vc: vc)
- vc.finishHandler = {[weak self] isCancel in
- if isCancel {
- return
- }
- if QSLBaseManager.shared.isVip() {
- return
- }
- if let currentWindow = UIApplication.keyWindow {
- gravityInstance?.track(QSLGravityConst.new_vip_retention_show, properties: ["trigger_type":"close_vip_center"])
- QSLRetainPopUpAlertView.alert(view: currentWindow, isOneBtn: true, oneBtnText: "继续支付", oneBtnClosure: { [weak self] in
- self?.unlockBtnAction()
- gravityInstance?.track(QSLGravityConst.new_vip_retention_click, properties: ["button":"continue_payment"])
- },closeBtnClosure: {
- gravityInstance?.track(QSLGravityConst.new_vip_retention_click, properties: ["button":"close"])
- })
- }
- }
- }
-
- func unlockBtnAction(){
- if let selectGood = QSLCountdownManager.shared.selectGood{
-
- let memberModel = QSLBaseManager.shared.userModel.memberModel
-
- if let subscriptionExpired = memberModel.subscriptionExpired, !subscriptionExpired {
- UIApplication.keyWindow?.toast(text: "你已经订阅了")
- return
- }
-
- QSLLoading.show()
- QSLVipManager.shared.startPay(goods: selectGood) { status, outTradeNo in
- QSLVipManager.shared.isPaying = false
- if status == .success {
- QSLLoading.success(text: "支付成功")
-
- gravityInstance?.track(QSLGravityConst.new_vip_result, properties: ["is_member":QSLBaseManager.shared.isVip(),"purchase_result": "success","pay_amount":Int32(selectGood.amount)])
- //支付成功埋点
- gravityInstance?.track(QSLGravityConst.vip_submit_success, properties: ["id": 01001])
-
- //弹出是否好评的弹窗
- QSLGuideusersToCommentManager.commentShare.manageWhetherTriggerPopUpWindow(QSLGuideusersToCommentType.member)
-
- // 引力传递支付事件
- gravityInstance?.trackPayEvent(withAmount: Int32(selectGood.amount), withPayType: "CNY", withOrderId: outTradeNo, withPayReason: selectGood.name, withPayMethod: "apple")
-
- DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
- NotificationCenter.default.post(name: QSLNotification.QSLRefreshMember, object: nil)
- }
-
- } else if status == .cancel {
- gravityInstance?.track(QSLGravityConst.new_vip_result, properties: ["is_member":QSLBaseManager.shared.isVip(),"purchase_result": "cancel","pay_amount":Int32(selectGood.amount)])
- QSLLoading.error(text: "支付取消")
- } else if status == .fail {
- gravityInstance?.track(QSLGravityConst.new_vip_result, properties: ["is_member":QSLBaseManager.shared.isVip(),"purchase_result": "fail","pay_amount":Int32(selectGood.amount)])
- gravityInstance?.track(QSLGravityConst.vip_fail)
- QSLLoading.error(text: "支付失败")
- } else if status == .searchFail {
- QSLLoading.error(text: "查询订单失败,请稍后重试")
- }
- }
- }
- }
-
- // 跳转到登录页面
- func pushToLogin(type: QSLLoginJumpType) {
-
- let vc = QSLLoginViewController()
- vc.type = type
- self.rootViewController()?.pushVC(vc: vc)
- }
-
- // 跳转到紧急联系人页面
- func pushToContact(type: QSLContactJumpPage) {
-
- let vc = QSLContactController()
- vc.type = type
- self.rootViewController()?.pushVC(vc: vc)
- }
-
- // 跳转到轨迹页面
- func pushToRoad(type: QSLRoadJumpType, model: QSLUserModel) {
-
- let vc = QSLRoadController(userModel: model)
- vc.type = type
- self.rootViewController()?.pushVC(vc: vc)
- }
-
- // 跳转到添加好友页面
- func pushToAdd(type: QSLAddJumpType) {
- let vc = QSLAddController()
- vc.type = type
- self.rootViewController()?.pushVC(vc: vc)
- }
- }
|