Commit e9e38729 authored by Steven杜宇's avatar Steven杜宇

// 我的

parent b358028c
......@@ -56,8 +56,45 @@ class YHMyNewViewController: YHBaseViewController {
}()
lazy var userInfoView: YHMyUserInfoView = {
let v = YHMyUserInfoView.createView()
return v
let view = YHMyUserInfoView.createView()
view.avatarClickBlock = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
}
view.nickNameClickBlock = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
}
view.likeClick = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
let vc = YHMyLikeActivityViewController()
vc.myDefaultNavItemIndex = 0
self.navigationController?.pushViewController(vc)
}
view.collectClick = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
let vc = YHMyLikeActivityViewController()
vc.myDefaultNavItemIndex = 1
self.navigationController?.pushViewController(vc)
print("收藏")
}
view.recentScanClick = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
let vc = YHMyLikeActivityViewController()
vc.myDefaultNavItemIndex = 2
self.navigationController?.pushViewController(vc)
print("最近浏览")
}
return view
}()
private lazy var settingBtn: UIButton = {
......@@ -88,7 +125,7 @@ class YHMyNewViewController: YHBaseViewController {
view.addSubview(bgImgView)
view.addSubview(tableView)
view.addSubview(settingBtn)
view.addSubview(settingRedPointView)
bgImgView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview()
......@@ -107,11 +144,35 @@ class YHMyNewViewController: YHBaseViewController {
make.right.equalToSuperview().offset(-17)
make.top.equalTo(k_Height_statusBar()+10)
}
settingRedPointView.snp.makeConstraints { make in
make.width.height.equalTo(6)
make.left.equalTo(settingBtn.snp.right).offset(-3)
make.bottom.equalTo(settingBtn.snp.top).offset(3)
}
updateUserUI()
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(clearUnreadBadge), name: YhConstant.YhNotification.didMarkAllMessagesReadedNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRevUatParam), name: YhConstant.YhNotification.didRevUatParam, object: nil)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadItems()
requestLikeCollectionCount()
getTotalUnreadMsgCount()
checkSettingRedPoint()
userInfoView.updateAvatar()
requstUserBasicInfo()
showAlert()
}
func checkLogin()->Bool {
......@@ -365,3 +426,180 @@ extension YHMyNewViewController : UITableViewDelegate, UITableViewDataSource {
}
}
extension YHMyNewViewController {
@objc func loginSuccess() {
printLog("登录成功,进行相应的 UI刷新操作")
updateUserUI()
}
@objc func logoutSuccess() {
updateUserUI()
}
func updateUserUI() {
if YHLoginManager.shared.isLogin() {
userInfoView.userNameLabel.text = YHLoginManager.shared.userModel?.nickname ?? "Hi, 银河用户".local
} else {
userInfoView.userNameLabel.text = "登录/注册"
}
userInfoView.updateAvatar()
requestLikeCollectionCount()
getTotalUnreadMsgCount()
checkSettingRedPoint()
requstUserBasicInfo()
}
func requstUserBasicInfo() {
if YHLoginManager.shared.isLogin() {
if isEmptyString(YHLoginManager.shared.userModel?.id) {
self.loginViewModel.getUserId {
[weak self] uid in
guard let self = self else { return }
requestUserAvatar()
}
} else {
requestUserAvatar()
}
} else {
userInfoView.updateAvatar()
}
}
func requestUserAvatar() {
if let uid = YHLoginManager.shared.userModel?.id, !uid.isEmpty {
self.userViewModel.getUserNameCardInfo(uid: uid) {
[weak self] success, error in
guard let self = self else { return }
let url = URL(string: self.userViewModel.nameCardInfo.avatar)
self.userInfoView.avarImgView.kf.setImage(with: url, placeholder: UIImage(named: "people_head_default"))
}
}
}
func requestLikeCollectionCount() {
self.likeViewModel.getLikeCollectionRecentScanCountInfo {
[weak self] success, error in
guard let self = self else { return }
self.userInfoView.updateLikeCollectCount(self.likeViewModel.likeCollectCountInfo)
}
}
// 请求未读消息总数
func getTotalUnreadMsgCount() {
if YHLoginManager.shared.isLogin() {
self.msgViewModel.requestTotalUnreadMsgCount {
[weak self] success, error in
guard let self = self else { return }
DispatchQueue.main.async {
var unreadCount = self.msgViewModel.unreadTotalCount
if YHButlerServiceManager.shared.isUatAllowed() {
unreadCount = self.msgViewModel.unreadTotalCount + YHButlerServiceManager.shared.unreadCount
}
for group in self.functionGroupArr {
for item in group.arr {
if item.type == .myMessage {
item.isShowRedPoint = unreadCount > 0
break
}
}
}
self.tableView .reloadData()
}
}
}
}
@objc func didRevUatParam() {
loadItems()
}
@objc func clearUnreadBadge() {
DispatchQueue.main.async {
for group in self.functionGroupArr {
for item in group.arr {
if item.type == .myMessage {
item.isShowRedPoint = false
break
}
}
}
self.tableView .reloadData()
}
}
func checkSettingRedPoint() {
if YHConfigManager.shared.loadNewDataFlag == false {
YHConfigManager.shared.loadConfigData {
[weak self] in
guard let self = self else { return }
self.settingRedPointView.isHidden = !YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
}
} else {
self.settingRedPointView.isHidden = !YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
}
}
private func showAlert() {
guard YHLoginManager.shared.isLogin() else {
return
}
princleVM.getPrincleStatus { [weak self] success, error in
if success {
guard let self = self else {
return
}
guard let model = self.princleVM.alertStatusModel else {
return
}
if model.type == 20 {
self.showYHManagerGuideView(self.navigationController)
}
}
}
}
}
extension YHMyNewViewController {
//MARK: - 跳银河管家
private func showYHManagerGuideView(_ navigationController: UINavigationController?) {
if YHUatHelper.shared.getUatModuleStatusBy(module: .QiYu_Service) != 1 {
printLog("非目标用户")
return
}
if let key = YHButlerServiceManager.shared.guideWindowShowedKey, YHButlerServiceManager.shared.didShowWindowDict[key] == true {
return
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
if let key = YHButlerServiceManager.shared.guideWindowShowedKey {
YHButlerServiceManager.shared.didShowWindowDict[key] = true
}
let view = YHConversationGuideView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.checkButtonEvent = { [weak self] in
guard let self = self else {
return
}
self.princleVM.postAlertStatus(20) { success, error in
}
self.gotoYinHeManager(navigationController)
}
view.show()
}
}
private func gotoYinHeManager(_ navigationController: UINavigationController?) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
return
}
//YHAnalytics.track("APP_HomeTab_IntelligentAssistant")
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { _ in
})
}
}
......@@ -36,7 +36,7 @@ class YHMyUserInfoView: UIView {
return imgView
}()
private lazy var userNameLabel:UILabel = {
lazy var userNameLabel:UILabel = {
let label = UILabel()
label.text = "登录/注册".local
label.textColor = .mainTextColor
......@@ -216,10 +216,22 @@ class YHMyUserInfoView: UIView {
}
func updateAvatar() {
let headImgName = YHLoginManager.shared.isLogin() ? "people_head_default" : "mine_head_logout"
avarImgView.image = UIImage(named: headImgName)
}
func updateLikeCollectCount(_ model: YHCollectionModel) {
update(count: model.myLikeCount, label: likeLabel)
update(count: model.myCollectCount, label: collectLabel)
update(count: model.myViewCount, label: scanLabel)
}
func update(count: Int, label: UILabel) {
var text = ""
var count = "\(count) "
var countStr = count < 10000 ? String(count) : String(format: "%.1fw", Double(count/1000)/10.0)
if label.tag == Self.likeTag {
text = "点赞"
......@@ -234,7 +246,7 @@ class YHMyUserInfoView: UIView {
let attrStr = NSMutableAttributedString(string: "")
let countAttrStr = NSAttributedString(
string: count,
string: countStr,
attributes: [NSAttributedString.Key.foregroundColor: UIColor.mainTextColor,
NSAttributedString.Key.font: UIFont(name: "DINAlternate-Bold", size: 14)!])
let titleAttrStr = NSAttributedString(
......
......@@ -18,7 +18,7 @@ class YHUserVipFunctionInfoView: UIView {
var desc: String = "" {
didSet {
descLabel.text = title
descLabel.text = desc
}
}
......@@ -69,14 +69,14 @@ class YHUserVipFunctionInfoView: UIView {
titleLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.right.equalTo(-5)
make.top.equalTo(12)
make.height.equalTo(17)
}
descLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.right.equalTo(-5)
make.top.equalTo(titleLabel.snp.bottom).offset(2)
make.height.equalTo(14)
}
......@@ -211,7 +211,7 @@ class YHUserVipInfoView: UIView {
func update(growValue: Int) {
let text = "当前成长值"
let count = "\(growValue)"
let count = " \(growValue)"
let attrStr = NSMutableAttributedString(string: "")
......
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