//
|
// MeVC.swift
|
// XQMuse
|
//
|
// Created by 无故事王国 on 2024/8/12.
|
//
|
|
import UIKit
|
import QMUIKit
|
import JQTools
|
|
let Refreh_Notice_Noti = Notification.Name.init("Refreh_Notice_Noti")
|
|
class MeVC: BaseVC {
|
|
@IBOutlet weak var scrollView: UIScrollView!
|
@IBOutlet weak var btn_collect: QMUIButton!
|
@IBOutlet weak var btn_record: QMUIButton!
|
@IBOutlet weak var btn_history: QMUIButton!
|
@IBOutlet weak var btn_account: QMUIButton!
|
@IBOutlet weak var btn_buy: QMUIButton!
|
@IBOutlet weak var btn_customer: QMUIButton!
|
@IBOutlet weak var btn_customer_1: QMUIButton!
|
@IBOutlet weak var btn_setting: QMUIButton!
|
@IBOutlet weak var btn_setting_1: QMUIButton!
|
@IBOutlet weak var btn_share: QMUIButton!
|
@IBOutlet weak var view_rank: GradientView!
|
@IBOutlet weak var image_vipBg: UIImageView!
|
@IBOutlet weak var label_expirtTime: UILabel!
|
@IBOutlet weak var label_sustainDay: UILabel!
|
@IBOutlet weak var label_today: UILabel!
|
@IBOutlet weak var image_medal: UIImageView!
|
@IBOutlet weak var btn_notice: NoticeBtn!
|
|
@IBOutlet weak var image_userAvatar: UIImageView!
|
@IBOutlet weak var label_userName: UILabel!
|
@IBOutlet weak var label_phone: UILabel!
|
@IBOutlet weak var label_vipInfo: UILabel!
|
@IBOutlet weak var label_totalDay: UILabel!
|
@IBOutlet weak var view_otherGradient: GradientView!
|
@IBOutlet weak var view_loveRanking: GradientView!
|
@IBOutlet weak var btn_jump: UIButton!
|
|
|
var needLaunch:Bool = true
|
var turnState:Bool?
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
view_otherGradient.isHidden = true
|
view_loveRanking.isHidden = true
|
btn_jump.isHidden = true
|
btn_buy.isHidden = true
|
btn_history.isHidden = true
|
btn_account.isHidden = true
|
btn_setting_1.isHidden = false
|
btn_customer_1.isHidden = false
|
|
let tap = UITapGestureRecognizer(target: self, action: #selector(rankAction))
|
view_rank.isUserInteractionEnabled = true
|
view_rank.addGestureRecognizer(tap)
|
}
|
|
override func viewDidAppear(_ animated: Bool) {
|
super.viewDidAppear(animated)
|
if (UserViewModel.getLoginInfo()?.accessToken.isEmpty ?? true) && needLaunch{
|
let loginNav = LoginNav(rootViewController: LoginVC())
|
loginNav.modalPresentationStyle = .fullScreen
|
JQ_currentViewController().present(loginNav, animated: true)
|
}else{
|
getData()
|
queryNotice()
|
}
|
//通讯录通讯录通讯录
|
|
if !isSimulator{
|
Services.getTurn(progress: false).subscribe(onNext: {[weak self]data in
|
guard let weakSelf = self else { return }
|
|
guard weakSelf.turnState != data.data else {return}
|
|
if let m = data.data,m == true{
|
weakSelf.view_otherGradient.isHidden = false
|
weakSelf.view_loveRanking.isHidden = false
|
weakSelf.btn_jump.isHidden = false
|
weakSelf.btn_buy.isHidden = false
|
weakSelf.btn_history.isHidden = false
|
weakSelf.btn_account.isHidden = false
|
weakSelf.btn_record.isHidden = false
|
weakSelf.btn_setting_1.isHidden = true
|
weakSelf.btn_customer_1.isHidden = true
|
}else{
|
weakSelf.view_otherGradient.isHidden = true
|
weakSelf.view_loveRanking.isHidden = true
|
weakSelf.btn_jump.isHidden = true
|
weakSelf.btn_buy.isHidden = true
|
weakSelf.btn_history.isHidden = true
|
weakSelf.btn_account.isHidden = true
|
weakSelf.btn_record.isHidden = true
|
weakSelf.btn_setting_1.isHidden = false
|
weakSelf.btn_customer_1.isHidden = false
|
}
|
},onError: {[weak self] _ in
|
guard let weakSelf = self else { return }
|
weakSelf.view_otherGradient.isHidden = true
|
weakSelf.view_loveRanking.isHidden = true
|
weakSelf.btn_jump.isHidden = true
|
weakSelf.btn_buy.isHidden = true
|
weakSelf.btn_history.isHidden = true
|
weakSelf.btn_account.isHidden = true
|
weakSelf.btn_record.isHidden = true
|
weakSelf.btn_setting_1.isHidden = false
|
weakSelf.btn_customer_1.isHidden = false
|
}).disposed(by: disposeBag)
|
}
|
|
needLaunch = false
|
}
|
|
override func setUI() {
|
super.setUI()
|
view.backgroundColor = UIColor(hexString: "#fafafa")
|
scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 20, right: 0)
|
scrollView.showsVerticalScrollIndicator = false
|
btn_collect.imagePosition = .top
|
btn_record.imagePosition = .top
|
btn_history.imagePosition = .top
|
btn_account.imagePosition = .top
|
|
btn_buy.imagePosition = .top
|
btn_customer.imagePosition = .top
|
btn_setting.imagePosition = .top
|
btn_share.imagePosition = .top
|
|
btn_customer_1.imagePosition = .top
|
btn_setting_1.imagePosition = .top
|
}
|
|
private func queryNotice(){
|
Services.queryNotice().subscribe(onNext: {data in
|
self.btn_notice.hasNotice(!(data.data ?? false))
|
}).disposed(by: disposeBag)
|
}
|
|
override func setRx() {
|
NotificationCenter.default.rx.notification(UpdateUserProfile_Noti, object: nil).take(until: self.rx.deallocated).subscribe(onNext: { _ in
|
self.getData()
|
}).disposed(by: disposeBag)
|
|
NotificationCenter.default.rx.notification(Refreh_Notice_Noti, object: nil).take(until: self.rx.deallocated).subscribe(onNext: { _ in
|
self.queryNotice()
|
}).disposed(by: disposeBag)
|
|
NotificationCenter.default.rx.notification(LoginSuccess_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
|
self.getData()
|
self.queryNotice()
|
}).disposed(by: disposeBag)
|
|
NotificationCenter.default.rx.notification(LoginQuit_Noti).take(until: self.rx.deallocated).subscribe(onNext: {data in
|
self.label_userName.text = "请先登录"
|
self.image_userAvatar.image = nil
|
self.label_phone.text = ""
|
|
self.label_totalDay.attributedText = AttributedStringbuilder.build().add(string: "0", withFont: Def_PingFang(fontSize: 60), withColor: UIColor(hexString: "#152715")!).add(string: "天", withFont: Def_PingFang(fontSize: 16), withColor: UIColor(hexString: "#353535")!).mutableAttributedString
|
|
self.image_medal.image = nil
|
|
self.label_sustainDay.attributedText = AttributedStringbuilder.build().add(string: "0", withFont: Def_PingFang(fontSize: 23), withColor: UIColor(hexString: "#353535")!).add(string: "天", withFont: Def_PingFang(fontSize: 12), withColor: UIColor(hexString: "#353535")!).mutableAttributedString
|
|
self.image_vipBg.image = UIImage(named: "bg_vip_u")
|
self.label_vipInfo.text = "升级为会员,解锁会员专属体验"
|
self.label_expirtTime.text = "你还未开通会员服务"
|
self.navigationController?.popToRootViewController(animated: false)
|
self.navigationController?.tabBarController?.selectedIndex = 0
|
}).disposed(by: disposeBag)
|
}
|
|
private func getData(){
|
|
Services.getUserDetail(showProgress: false).subscribe(onNext: {[weak self]data in
|
if let model = data.data{
|
UserViewModel.saveAvatarInfo(model)
|
self?.setUserUI(model: model)
|
}
|
}) {[weak self] error in
|
let model = UserViewModel.getAvatarInfo()
|
if model.id > 0{
|
self?.setUserUI(model: model)
|
}
|
}.disposed(by: disposeBag)
|
}
|
|
private func setUserUI(model:UserInfoModel){
|
self.image_userAvatar.sd_setImage(with: URL(string: model.avatar))
|
self.label_userName.text = model.nickname
|
self.label_phone.text = model.cellPhone.jq_blotOutPhone()
|
|
self.label_totalDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.cumulative)", withFont: Def_PingFang(fontSize: 60), withColor: UIColor(hexString: "#353535")!).add(string: "天", withFont: Def_PingFang(fontSize: 16), withColor: UIColor(hexString: "#353535")!).mutableAttributedString
|
|
self.label_sustainDay.attributedText = AttributedStringbuilder.build().add(string: "\(model.continuity)", withFont: Def_PingFang(fontSize:23), withColor: UIColor(hexString: "#353535")!).add(string: "天", withFont: Def_PingFang(fontSize:12), withColor: UIColor(hexString: "#353535")!).mutableAttributedString
|
|
self.image_medal.sd_setImage(with: URL(string: model.levelIcon.jq_urlEncoded()))
|
|
let timeTurple = Date.jq_formateToTime_tuple(model.today * 60)
|
|
self.label_today.attributedText = AttributedStringbuilder.build().add(string: "\(timeTurple.hour)", withFont: Def_PingFang(fontSize:23), withColor: UIColor(hexString: "#353535")!).add(string: "时", withFont: Def_PingFang(fontSize:12), withColor: UIColor(hexString: "#353535")!).add(string: "\(timeTurple.minute)", withFont: Def_PingFang(fontSize:23), withColor: UIColor(hexString: "#353535")!).add(string: "分", withFont: Def_PingFang(fontSize: 12), withColor: UIColor(hexString: "#353535")!).mutableAttributedString
|
|
if model.isVip == .yes{
|
self.image_vipBg.image = UIImage(named: "bg_vip")
|
self.label_vipInfo.text = "您将享受所有会员专享音频,尽情畅游泉疗愈世界"
|
self.label_expirtTime.text = model.vipExpireTime.components(separatedBy: " ").first! + "到期"
|
}else{
|
self.image_vipBg.image = UIImage(named: "bg_vip_u")
|
self.label_vipInfo.text = "升级为会员,解锁会员专属体验"
|
self.label_expirtTime.text = "你还未开通会员服务"
|
}
|
}
|
|
@objc func rankAction(){
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = WebVC(url: ShareUrl + "/ranking/ranking?userId=\(UserViewModel.getAvatarInfo().id)",showHelp: true)
|
vc.title = "爱心榜单"
|
push(vc: vc)
|
}
|
|
@IBAction func vipCenterAction(_ sender: Any) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = VIPCenterVC()
|
push(vc: vc)
|
}
|
|
|
@IBAction func userProfileAction(_ sender: UIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let profileVC = UserProfileVC()
|
jq_push(vc: profileVC)
|
}
|
|
@IBAction func studyLevelAction(_ sender: TapBtn) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = LevelVC()
|
push(vc: vc)
|
}
|
|
//消息
|
@IBAction func systemMessageAction(_ sender: UIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = NoticeCenterVC()
|
push(vc: vc)
|
}
|
|
// 设置
|
@IBAction func settingAction(_ sender: UIButton) {
|
let vc = SettingVC()
|
push(vc: vc)
|
}
|
|
//学习记录
|
@IBAction func studyAction(_ sender: UIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = StudyListVC()
|
push(vc: vc)
|
}
|
|
|
//我的账户
|
@IBAction func myAccountAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = WalletVC()
|
push(vc: vc)
|
}
|
|
//观看历史
|
@IBAction func watchHistoryAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = WatchHistoryVC(type: .history)
|
push(vc: vc)
|
}
|
|
//我的收藏
|
@IBAction func myColletAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = WatchHistoryVC(type: .collect)
|
push(vc: vc)
|
}
|
|
/// 我的已购
|
@IBAction func paymentCourseAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = WatchHistoryVC(type: .payment)
|
push(vc: vc)
|
}
|
|
/// 联系客服
|
@IBAction func customerAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = ContactCustomerVC()
|
push(vc: vc)
|
}
|
|
///分享
|
@IBAction func shareAction(_ sender: QMUIButton) {
|
guard sceneDelegate!.checkisLoginState() else {return}
|
let vc = InviteVC()
|
vc.title = "推广活动"
|
push(vc: vc)
|
}
|
}
|
|
class GradientView:UIView{
|
|
override init(frame: CGRect) {
|
super.init(frame: frame)
|
|
jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8")!.cgColor,UIColor.white.cgColor])
|
}
|
|
required init?(coder: NSCoder) {
|
super.init(coder: coder)
|
|
}
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
jq_gradientColor(colorArr: [UIColor(hexString: "#F3FFF8")!.cgColor,UIColor.white.cgColor], cornerRadius: 10, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: nil, locations: nil)
|
}
|
}
|