Commit 0b03f903 by pierce

fixed bugs

parent 2a35a81c
......@@ -315,6 +315,8 @@ public struct UserModel : Convertable {
public var gorgeousNumber: String?
/// 充值描述字段
public var payDescription: String?
/// 小券中心
public var couponcenter: String?
public init() { }
......@@ -460,6 +462,10 @@ public struct UserModel : Convertable {
self.payDescription = payDescription
}
if let couponcenter = dict["couponcenter"] as? String {
self.couponcenter = couponcenter
}
self.createtime = (dict["createtime"] as? Int) ?? 0
self.isPwd = (dict["isPwd"] as? Bool) ?? false
......@@ -507,7 +513,8 @@ public enum GDUserCenterAction {
createtime: Int = 0,
isPwd: Bool = false,
gorgeousNumber: String? = nil,
payDescription: String? = nil
payDescription: String? = nil,
couponcenter: String? = nil
) // 更新用户信息
case logout
}
......@@ -163,6 +163,9 @@ class GDMessageListCenter: BaseViewModel {
guard GDDataBase.shared.currentDBUid == GDRouter.UserRouter?.uid else { return }
var msgList = GDMessageListModel.readDataFromDataBase(cleanNotFriend: cleanNotFriend)
// 补丁:排除没有数据,但是unread有值的情况: added By Pidan
var hasOfficalMessage = false
var hasNotificationMessage = false
msgList = msgList.map({ model in
if model.type == .chat {
......@@ -181,6 +184,7 @@ class GDMessageListCenter: BaseViewModel {
if let listModel = GDDataBase.shared.read(dataType: GDMessageNotificationListModel.self, primaryKey: "\(GDChatMessageSocketCid.notification)") {
if let lastModel = listModel.data.last {
let newModel = GDMessageListModel.createNotificationListModel(for: lastModel)
hasNotificationMessage = true
return newModel
}
}
......@@ -188,6 +192,7 @@ class GDMessageListCenter: BaseViewModel {
if let listModel = GDDataBase.shared.read(dataType: GDMessageNotificationListModel.self, primaryKey: "\(GDChatMessageSocketCid.officialMessage)") {
if let lastModel = listModel.data.last {
let newModel = GDMessageListModel.createOfficialListModel(for: lastModel)
hasOfficalMessage = true
return newModel
}
......@@ -197,6 +202,12 @@ class GDMessageListCenter: BaseViewModel {
return model
})
if hasOfficalMessage == false {
officialUnread.accept(0)
}
if hasNotificationMessage == false {
notificationUnread.accept(0)
}
msgList = sortMessageList(msgList)
list.accept(msgList)
}
......
......@@ -175,7 +175,8 @@ class GDMyPageModuleDiamondCell: UITableViewCell {
// 金币按钮点击事件
coinBtn.rx.tap.subscribe(onNext: {[weak self] (_) in
let wkWebVC = GDWebViewController(url: GDPersonalWebURL.webMyIncomeUrl)
let url = isValidString(GDRouter.UserRouter?.user.value.couponcenter) ? GDRouter.UserRouter?.user.value.couponcenter : GDPersonalWebURL.webMyIncomeUrl
let wkWebVC = GDWebViewController(url: url ?? GDPersonalWebURL.webMyIncomeUrl)
wkWebVC.hidesBottomBarWhenPushed = true
self?.viewController?.navigationController?.pushViewController(wkWebVC, animated: true)
}).disposed(by: disposeBag)
......
......@@ -464,13 +464,7 @@ class GDMyPageController: BaseViewController {
private func excuteSubfunction(model: GDMyPageFunctionModel) {
switch model.modulekey {
case kMyPageFunctionService:
// if DevConfig.enableTestViewController {
// let testVC = TestViewController()
// testVC.hidesBottomBarWhenPushed = true
// self.navigationController?.pushViewController(testVC, animated: true)
// } else {
GDRouter.ChatRoom?.showServiceChatRoom()
// }
case kMyPageFunctionMyLevel:
let myLevelVC = GDMyLevelViewController()
myLevelVC.hidesBottomBarWhenPushed = true
......
......@@ -346,7 +346,8 @@ class RoomListViewController: BaseViewController {
GDRouter.LiveRoomRouter?.shareRoomid.accept(nil)
GDRouter.LoginRouter?.showVisitorLoginView(vc: nil, showPhoneLogin: false)
} else {
if let searchVC = GDRouter.UserZone?.searchVC() { searchVC.hidesBottomBarWhenPushed = true
if let searchVC = GDRouter.UserZone?.searchVC() {
searchVC.hidesBottomBarWhenPushed = true
self?.navigationController?.pushViewController(searchVC, animated: true)
}
}
......
......@@ -40,100 +40,113 @@ class GDTabBarModel {
self.animateImages = animateImages
self.controller = controller
}
static func create(_ type: GDTabBarType) -> GDTabBarModel {
static func create(_ type: GDTabBarType, needNavVC:Bool = true) -> GDTabBarModel {
switch type {
case .moment:
if let momentPlazaVC = GDRouter.Moment?.momentPlazaController() {
let navVC = BaseNavigationController()
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(momentPlazaVC)
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(momentPlazaVC)
}
return GDTabBarModel(type: type,
title: "广场",
normalImage:GDTabbarBundle.imageNamed("tabbar_square_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed("tabbar_square_selected") ?? UIImage(),
animateImages: nil,
controller: navVC)
controller: needNavVC ? navVC : momentPlazaVC)
}
case .me:
// 构建导航控制器
if let myPage = GDRouter.MyModule?.showMyPageVC() {
//TODO:tabbar如果没有传nav Controller进去的话。: added By Pidan
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(myPage)
let navVC = BaseNavigationController()
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(myPage)
}
return GDTabBarModel(type: type,
title: "我的",
normalImage:GDTabbarBundle.imageNamed( "tabbar_my_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed( "tabbar_my_selected") ?? UIImage(),
animateImages: nil,
controller: myPage)
controller: needNavVC ? navVC : myPage)
}
case .message:
if let messageVC = GDRouter.ChatRoom?.showMessageListVC() {
let navVC = BaseNavigationController()
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(messageVC)
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(messageVC)
}
return GDTabBarModel(type: type,
title: "消息",
normalImage:GDTabbarBundle.imageNamed("tabbar_message_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed("tabbar_message_selected") ?? UIImage(),
animateImages: nil,
controller: navVC)
controller: needNavVC ? navVC : messageVC)
}
case .friend:
// 构建导航控制器
if let friendVC = GDRouter.Friend?.friendListVC() {
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(friendVC)
let navVC = BaseNavigationController()
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(friendVC)
}
return GDTabBarModel(type: type,
title: "好友",
normalImage:GDTabbarBundle.imageNamed("tabbar_friends_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed("tabbar_friends_selected") ?? UIImage(),
animateImages: nil,
controller: friendVC)
controller: needNavVC ? navVC : friendVC)
}
break
case .showRoomList:
// 构建导航控制器
if let roomListVC = GDRouter.RoomListRouter?.showRoomListVC() {
// let navVC = BaseNavigationController()
// navVC.modalPresentationStyle = .overFullScreen
// navVC.addChild(friendVC)
let navVC = BaseNavigationController()
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(roomListVC)
}
return GDTabBarModel(type: type,
title: "直播",
normalImage:GDTabbarBundle.imageNamed("tabbar_roomlist_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed("tabbar_roomlist_selected") ?? UIImage(),
animateImages: nil,
controller: roomListVC)
controller: needNavVC ? navVC : roomListVC)
}
break
case .prize:
// 构建导航控制器
if let prizeVC = GDRouter.MyModule?.prizeViewController() {
let navVC = BaseNavigationController()
navVC.modalPresentationStyle = .overFullScreen
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(prizeVC)
}
prizeVC.showBackBtn = false
navVC.addChild(prizeVC)
return GDTabBarModel(type: type,
title: "奖励",
normalImage:GDTabbarBundle.imageNamed("tabbar_prize_item_unselect") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed("tabbar_prize_item_selected") ?? UIImage(),
animateImages: nil,
controller: navVC)
controller: needNavVC ? navVC : prizeVC)
}
break
}
let vc = BaseViewController()
let navVC = BaseNavigationController()
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(vc)
if needNavVC {
navVC.modalPresentationStyle = .overFullScreen
navVC.addChild(vc)
}
return GDTabBarModel(type: type,
title: "广场",
normalImage:GDTabbarBundle.imageNamed( "tabbar_square_normal") ?? UIImage(),
selectImage:GDTabbarBundle.imageNamed( "tabbar_square_selected") ?? UIImage(),
animateImages: nil,
controller: navVC)
controller: needNavVC ? navVC : vc)
}
}
......@@ -54,22 +54,30 @@ class GDTabBarViewModel: BaseViewModel, ViewModelType {
if let tabList = UserDefaults.standard.array(forKey: GDBaseBussinessPublicUDKeys.tabListUDKey) as? [String] {
list.removeAll()
for tab in tabList {
for i in 0..<tabList.count {
let tab = tabList[i]
var needNav = true
if tabList.count >= 6 {
if i >= 4 {
// 如果tabbar大于等于6个,在tabbar controller里面,会自己生成navvc: added By Pidan
needNav = false
}
}
switch tab {
case "moment":
list.append(GDTabBarModel.create(.moment))
list.append(GDTabBarModel.create(.moment, needNavVC: needNav))
case "roomlist":
list.append(GDTabBarModel.create(.showRoomList))
list.append(GDTabBarModel.create(.showRoomList, needNavVC: needNav))
case "prize":
list.append(GDTabBarModel.create(.prize))
list.append(GDTabBarModel.create(.prize, needNavVC: needNav))
case "message":
list.append(GDTabBarModel.create(.message))
list.append(GDTabBarModel.create(.message, needNavVC: needNav))
case "friend":
list.append(GDTabBarModel.create(.friend))
list.append(GDTabBarModel.create(.friend, needNavVC: needNav))
case "personalpage":
list.append(GDTabBarModel.create(.me))
list.append(GDTabBarModel.create(.me, needNavVC: needNav))
default:
list.append(GDTabBarModel.create(.showRoomList))
list.append(GDTabBarModel.create(.showRoomList, needNavVC: needNav))
}
}
} else {
......
......@@ -159,6 +159,10 @@ extension UserModel {
self.payDescription = payDescription
}
if let couponcenter = dict["couponcenter"] as? String {
self.couponcenter = couponcenter
}
self.createtime = (dict["createtime"] as? Int) ?? 0
self.isPwd = (dict["isPwd"] as? Bool) ?? false
......@@ -337,7 +341,7 @@ class GDUserCenter: BaseViewModel {
GDUserCenter.shared.user.accept(user)
user.addToHistoryUser() // 保存或更新历史记录
}
case .setUserInfo(uid: let uid, username: let username, avatar: let avatar, phone: let phone, activebonds: let activebonds, addr: let addr, age: let age, birth: let birth, bonds: let bonds, constellation: let constellation, diamond: let diamond, gold: let gold, isnew: let isnew, lev: let lev, level: let level, money: let money, nickname: let nickname, onlineTime: let onlineTime, roomId: let roomId, sex: let sex, showTime: let showTime, showNearby: let showNearby, invflag: let invflag, height: let height, weight: let weight, familyId: let familyId, family: let family, boss: let boss, fans: let fans, follows: let follows, let rich, let isNewUser, let createtime, let isPwd, let gorgeousNumber, let payDescription):
case .setUserInfo(uid: let uid, username: let username, avatar: let avatar, phone: let phone, activebonds: let activebonds, addr: let addr, age: let age, birth: let birth, bonds: let bonds, constellation: let constellation, diamond: let diamond, gold: let gold, isnew: let isnew, lev: let lev, level: let level, money: let money, nickname: let nickname, onlineTime: let onlineTime, roomId: let roomId, sex: let sex, showTime: let showTime, showNearby: let showNearby, invflag: let invflag, height: let height, weight: let weight, familyId: let familyId, family: let family, boss: let boss, fans: let fans, follows: let follows, let rich, let isNewUser, let createtime, let isPwd, let gorgeousNumber, let payDescription, let couponcenter):
var user = GDUserCenter.shared.user.value
guard let uid = uid else { return }
/// 如果传进来的数据不是当前的账户,则不刷新
......@@ -379,6 +383,7 @@ class GDUserCenter: BaseViewModel {
user.isPwd = isPwd
user.gorgeousNumber = gorgeousNumber
user.payDescription = payDescription
user.couponcenter = couponcenter
GDUserCenter.shared.user.accept(user)
user.addToHistoryUser() // 保存或更新历史记录
case .logout:
......@@ -1394,7 +1399,9 @@ extension GDUserCenter {
let payDescription = result.json["extend"]["payDescription"].gd_stringValue
GDUserCenter.reduce(action: .setUserInfo(uid:uid, username: username, avatar: avatar, phone: phone, activebonds: activebonds, addr: addr, age: age, birth: birth, bonds: bonds, constellation: constellation, diamond: diamond, gold: gold, isnew: isnew, lev: lev, level: level, money: money, nickname: nickname, onlineTime: onlineTime, roomId: roomId, sex: sex, showTime: showTime, showNearby: showNearby, invflag: invflag, height: height, weight: weight, familyId: familyId, family: family, boss: boss, fans: fans, follows: follows, rich: rich, isNewUser: isNewUser, createtime: createTime, isPwd: isPwd, gorgeousNumber: gorgeousNumber, payDescription: payDescription))
let couponcenter = result.json["extend"]["couponcenter"].gd_stringValue
GDUserCenter.reduce(action: .setUserInfo(uid:uid, username: username, avatar: avatar, phone: phone, activebonds: activebonds, addr: addr, age: age, birth: birth, bonds: bonds, constellation: constellation, diamond: diamond, gold: gold, isnew: isnew, lev: lev, level: level, money: money, nickname: nickname, onlineTime: onlineTime, roomId: roomId, sex: sex, showTime: showTime, showNearby: showNearby, invflag: invflag, height: height, weight: weight, familyId: familyId, family: family, boss: boss, fans: fans, follows: follows, rich: rich, isNewUser: isNewUser, createtime: createTime, isPwd: isPwd, gorgeousNumber: gorgeousNumber, payDescription: payDescription, couponcenter:couponcenter))
single(.success(()))
default:
single(.failure(GDMoyaError(code: result.code, msg: result.msg)))
......
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 sign in to comment