Commit c69d39e3 authored by Alex朱枝文's avatar Alex朱枝文

积分中心页面事件打点

parent 3cf75303
...@@ -51,11 +51,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -51,11 +51,7 @@ class YHMemberCenterViewController: YHBaseViewController {
guard let self = self else { guard let self = self else {
return return
} }
self.bgIcon.image = UIImage(named: level.bgIconTitle()) switchCard(level)
self.currentLevel = level
if let info = self.viewModel.memberCenterInfo {
self.updateDatas(info)
}
} }
view.levelButtonEvent = { [weak self] _ in view.levelButtonEvent = { [weak self] _ in
self?.gotoGuideView() self?.gotoGuideView()
...@@ -70,6 +66,16 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -70,6 +66,16 @@ class YHMemberCenterViewController: YHBaseViewController {
let view = YHMemberCenterFooterView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: YHMemberCenterFooterView.viewHeight)) let view = YHMemberCenterFooterView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: YHMemberCenterFooterView.viewHeight))
return view return view
}() }()
private func switchCard(_ level: YHMembershipLevel) {
bgIcon.image = UIImage(named: level.bgIconTitle())
YHAnalytics.timeEnd(currentLevel.logKey)
currentLevel = level
YHAnalytics.timeStrat(level.logKey)
if let info = viewModel.memberCenterInfo {
updateDatas(info)
}
}
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -84,6 +90,12 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -84,6 +90,12 @@ class YHMemberCenterViewController: YHBaseViewController {
} else { } else {
requestData(isNeedLoading: false) requestData(isNeedLoading: false)
} }
YHAnalytics.timeStrat(currentLevel.logKey)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
YHAnalytics.timeEnd(currentLevel.logKey)
} }
private func setupUI() { private func setupUI() {
...@@ -127,7 +139,16 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -127,7 +139,16 @@ class YHMemberCenterViewController: YHBaseViewController {
} }
if success, let memberCenterInfo = viewModel.memberCenterInfo { if success, let memberCenterInfo = viewModel.memberCenterInfo {
self.headerView.updateDatas(memberCenterInfo) self.headerView.updateDatas(memberCenterInfo)
self.updateDatas(memberCenterInfo) if isNeedLoading, let index = YHMembershipLevel.allCases.firstIndex(where: { data in
data.rawValue == memberCenterInfo.currentLevel
}) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.headerView.bannerView.scrollToItem(at: index, animated: false)
self.switchCard(YHMembershipLevel.allCases[index])
}
} else {
self.updateDatas(memberCenterInfo)
}
} else { } else {
var errorMsg = "获取会员信息失败,请重试!" var errorMsg = "获取会员信息失败,请重试!"
if let error = error, error.errorMsg.count > 0 { if let error = error, error.errorMsg.count > 0 {
...@@ -161,6 +182,7 @@ class YHMemberCenterViewController: YHBaseViewController { ...@@ -161,6 +182,7 @@ class YHMemberCenterViewController: YHBaseViewController {
} }
} }
let myLevel = YHMembershipLevel(rawValue: memberCenterInfo.currentLevel) ?? .normal let myLevel = YHMembershipLevel(rawValue: memberCenterInfo.currentLevel) ?? .normal
switch currentLevel { switch currentLevel {
case .normal: case .normal:
datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue)) datas.append(.myPrivilege(myLevel, myLevel.privilegeCount, memberCenterInfo.exchangeCount, memberCenterInfo.exchangeCount, memberCenterInfo.currentLevel > YHMembershipLevel.normal.rawValue))
......
...@@ -14,7 +14,7 @@ enum YHMembershipLevel: Int, CaseIterable { ...@@ -14,7 +14,7 @@ enum YHMembershipLevel: Int, CaseIterable {
case platinum = 30 case platinum = 30
case diamond = 40 case diamond = 40
// 可以添加其他属性或方法 // 名称
var description: String { var description: String {
switch self { switch self {
case .normal: case .normal:
...@@ -28,7 +28,7 @@ enum YHMembershipLevel: Int, CaseIterable { ...@@ -28,7 +28,7 @@ enum YHMembershipLevel: Int, CaseIterable {
} }
} }
// 可以添加其他属性或方法 // 可享特权数目
var privilegeCount: Int { var privilegeCount: Int {
switch self { switch self {
case .normal: case .normal:
...@@ -41,6 +41,20 @@ enum YHMembershipLevel: Int, CaseIterable { ...@@ -41,6 +41,20 @@ enum YHMembershipLevel: Int, CaseIterable {
return 13 return 13
} }
} }
// 埋点key
var logKey: String {
switch self {
case .normal:
return "General_Member_Membership_Privileges_Page"
case .gold:
return "Gold_Member_Membership_Privileges_Page"
case .platinum:
return "Platinum_Member_Membership_Privileges_Page"
case .diamond:
return "Diamond_Member_Membership_Privileges_Page"
}
}
// 示例:获取会员等级对应的权益 // 示例:获取会员等级对应的权益
func benefits() -> [String] { func benefits() -> [String] {
......
...@@ -56,7 +56,7 @@ class YHMemberCenterHeaderView: UIView { ...@@ -56,7 +56,7 @@ class YHMemberCenterHeaderView: UIView {
var upgradeButtonEvent: ((_ level: YHMembershipLevel) -> Void)? var upgradeButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
var levelButtonEvent: ((_ level: YHMembershipLevel) -> Void)? var levelButtonEvent: ((_ level: YHMembershipLevel) -> Void)?
private lazy var bannerView: FSPagerView = { lazy var bannerView: FSPagerView = {
let view = FSPagerView() let view = FSPagerView()
view.delegate = self view.delegate = self
view.dataSource = self view.dataSource = self
...@@ -183,14 +183,14 @@ class YHMemberCenterHeaderView: UIView { ...@@ -183,14 +183,14 @@ class YHMemberCenterHeaderView: UIView {
return BannerData(level: level, levelString: levelString, tips: tips, upgradeTitle: upgradeTitle, showProgress: showProgress, ratioString: ratioString, ratio: ratio, showRatio: showRatio, showTips: showTips) return BannerData(level: level, levelString: levelString, tips: tips, upgradeTitle: upgradeTitle, showProgress: showProgress, ratioString: ratioString, ratio: ratio, showRatio: showRatio, showTips: showTips)
}) })
bannerView.reloadData() bannerView.reloadData()
if let index = datas.firstIndex(where: { data in // if let index = datas.firstIndex(where: { data in
data.level.rawValue == memberCenterInfo.currentLevel // data.level.rawValue == memberCenterInfo.currentLevel
}) { // }) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { // DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.bannerView.scrollToItem(at: index, animated: false) // self.bannerView.scrollToItem(at: index, animated: false)
self.scrollToIndexEvent?(self.datas[index].level) // self.scrollToIndexEvent?(self.datas[index].level)
} // }
} // }
} }
override init(frame: CGRect) { override init(frame: CGRect) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment