Commit 12d21c7a authored by Alex朱枝文's avatar Alex朱枝文

银河管家增加灰度逻辑控制

parent 89d2148f
...@@ -15,7 +15,6 @@ class YHButlerServiceViewModel { ...@@ -15,7 +15,6 @@ class YHButlerServiceViewModel {
let params: [String : Any] = ["yh_id": id] let params: [String : Any] = ["yh_id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.QiYu.userInfomation let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.QiYu.userInfomation
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: params) { json, code in
let dic = json.data
guard let data = json.data, let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []), let dataString = jsonData.string(encoding: .utf8) else { guard let data = json.data, let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []), let dataString = jsonData.string(encoding: .utf8) else {
callBackBlock(nil, YHErrorModel()) callBackBlock(nil, YHErrorModel())
return return
......
...@@ -27,38 +27,23 @@ class YHButlerServiceManager: NSObject { ...@@ -27,38 +27,23 @@ class YHButlerServiceManager: NSObject {
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil) 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(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRevUatParam), name: YhConstant.YhNotification.didRevUatParam, object: nil)
} }
deinit { deinit {
NotificationCenter.default.removeObserver(self) NotificationCenter.default.removeObserver(self)
} }
func setupSDK() { func setupSDK() {
let qyOption = QYSDKOption(appKey: YhConstant.QiYuSDK.appKey) let qyOption = QYSDKOption(appKey: YhConstant.QiYuSDK.appKey)
qyOption.appName = YhConstant.QiYuSDK.appName qyOption.appName = YhConstant.QiYuSDK.appName
QYSDK.shared().register(with: qyOption) QYSDK.shared().register(with: qyOption)
updateSDKAccountInfo(completion: { [weak self] _ in guard isUatAllowed() else {
self?.lastMessage = self?.getLastMessage() return
})
}
/// 必须在初始化后调用
func getLastMessage() -> YHButlerServiceMessage? {
guard let message = getSessionList().first else {
return nil
}
return YHButlerServiceMessageHandler.handleSessionMessage(sessionMessage: message)
}
func updateUserInfo(userId: String, userData: String, completion: @escaping (Bool) -> Void) {
let userInfo = QYUserInfo()
userInfo.userId = userId
userInfo.data = userData
QYSDK.shared().setUserInfo(userInfo) { success, error in
completion(success)
} }
initSDKAccountAndLastMessage()
} }
func updateApnsToken(token: Data) { func updateApnsToken(token: Data) {
QYSDK.shared().updateApnsToken(token) QYSDK.shared().updateApnsToken(token)
} }
...@@ -91,20 +76,49 @@ class YHButlerServiceManager: NSObject { ...@@ -91,20 +76,49 @@ class YHButlerServiceManager: NSObject {
}) })
} }
} }
}
extension YHButlerServiceManager {
// MARK: - 常用公开方法
private func logoutCurrentUser(completion: @escaping (Bool) -> Void) { /// 灰度打开
QYSDK.shared().logout { flag in func isUatAllowed() -> Bool {
completion(flag) let allowed = YHUatHelper.shared.getUatModuleStatusBy(module: YHUatModules.QiYu_Service) == 1
} return allowed || true
} }
/// 初始化SDK用户信息
func initSDKAccountAndLastMessage() {
updateSDKAccountInfo(completion: { [weak self] _ in
self?.lastMessage = self?.getLastMessage()
})
}
/// 必须在初始化后调用
func getLastMessage() -> YHButlerServiceMessage? {
guard let message = getSessionList().first else {
return nil
}
return YHButlerServiceMessageHandler.handleSessionMessage(sessionMessage: message)
}
} }
extension YHButlerServiceManager { extension YHButlerServiceManager {
// MARK: - 私有登录登出的处理逻辑 // MARK: - 私有方法以及登录登出的处理逻辑
@objc private func didRevUatParam() {
guard isUatAllowed() else {
return
}
initSDKAccountAndLastMessage()
}
@objc private func loginSuccess() { @objc private func loginSuccess() {
setupInfomationForQiYu(completion: { _ in }) guard isUatAllowed() else {
return
}
initSDKAccountAndLastMessage()
} }
@objc private func logoutSuccess() { @objc private func logoutSuccess() {
...@@ -121,6 +135,15 @@ extension YHButlerServiceManager { ...@@ -121,6 +135,15 @@ extension YHButlerServiceManager {
} }
} }
private func updateUserInfo(userId: String, userData: String, completion: @escaping (Bool) -> Void) {
let userInfo = QYUserInfo()
userInfo.userId = userId
userInfo.data = userData
QYSDK.shared().setUserInfo(userInfo) { success, error in
completion(success)
}
}
private func setupInfomationForQiYu(completion: @escaping (Bool) -> Void) { private func setupInfomationForQiYu(completion: @escaping (Bool) -> Void) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else { guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
completion(false) completion(false)
...@@ -133,12 +156,21 @@ extension YHButlerServiceManager { ...@@ -133,12 +156,21 @@ extension YHButlerServiceManager {
} }
} }
/// 启动先判断是否当前登录账号是SDK账号,如果不相同,先登出,再用新账号信息写入 /// 启动先判断是否当前登录账号是SDK账号
private func updateSDKAccountInfo(completion: @escaping (Bool) -> Void) { private func updateSDKAccountInfo(completion: @escaping (Bool) -> Void) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0, QYSDK.shared().currentUserID() != userId else { // 如果未登录直接退出设置
completion(true) guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
completion(false)
return return
} }
// 如果新旧账号相同,直接设置用户账号信息
guard QYSDK.shared().currentUserID() != userId else {
setupInfomationForQiYu(completion: { done in
completion(done)
})
return
}
// 如果新旧账号不相同,先登出SDK,再用新账号信息写入,
logoutCurrentUser { [weak self] success in logoutCurrentUser { [weak self] success in
if success { if success {
self?.setupInfomationForQiYu(completion: { done in self?.setupInfomationForQiYu(completion: { done in
...@@ -149,6 +181,12 @@ extension YHButlerServiceManager { ...@@ -149,6 +181,12 @@ extension YHButlerServiceManager {
} }
} }
} }
private func logoutCurrentUser(completion: @escaping (Bool) -> Void) {
QYSDK.shared().logout { flag in
completion(flag)
}
}
} }
extension YHButlerServiceManager { extension YHButlerServiceManager {
......
...@@ -104,9 +104,16 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -104,9 +104,16 @@ class YHHomePageViewController: YHBaseViewController {
//MARK: - 私有方法 //MARK: - 私有方法
private extension YHHomePageViewController { private extension YHHomePageViewController {
func updateMgrItem() { func updateMgrItem() {
// 页面已经加载了
guard view.window != nil, isViewLoaded, homeHeaderView.superview != nil else {
return
}
guard YHButlerServiceManager.shared.isUatAllowed(), YHLoginManager.shared.isLogin() else {
return
}
needUpdateMgrItem = false needUpdateMgrItem = false
let showButler = true let showButler = true
let serviceMessage = YHButlerServiceManager.shared.lastMessage let serviceMessage = YHButlerServiceManager.shared.getLastMessage()
self.homeHeaderView.orderTipsView.customerServiceMessage = YHButlerServiceHomeInfoMessage(showButler: showButler, serviceMessage: serviceMessage) self.homeHeaderView.orderTipsView.customerServiceMessage = YHButlerServiceHomeInfoMessage(showButler: showButler, serviceMessage: serviceMessage)
} }
...@@ -308,8 +315,16 @@ private extension YHHomePageViewController { ...@@ -308,8 +315,16 @@ private extension YHHomePageViewController {
} }
} }
@objc func didRevUatParam() {
guard serviceCenterMainReqVM.arrContactList.count > 0 else {
return
}
updateMgrItem()
}
func setupNotification() { func setupNotification() {
NotificationCenter.default.addObserver(self, selector: #selector(didQiYuReceiveNewMsg), name: YhConstant.YhNotification.didQiYuReceiveNewMsgNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(didQiYuReceiveNewMsg), name: YhConstant.YhNotification.didQiYuReceiveNewMsgNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRevUatParam), name: YhConstant.YhNotification.didRevUatParam, object: nil)
} }
} }
......
...@@ -73,7 +73,7 @@ class YHOrderTipsView: UIView { ...@@ -73,7 +73,7 @@ class YHOrderTipsView: UIView {
mgrItem.updateMessageState(didReadMessage: customerServiceMessage?.serviceMessage?.isRead ?? true) mgrItem.updateMessageState(didReadMessage: customerServiceMessage?.serviceMessage?.isRead ?? true)
} else { } else {
updateItems() updateItems()
mgrItem.updateManagerTipsItemView(message: customerServiceMessage?.serviceMessage?.content, didReadMessage: customerServiceMessage?.serviceMessage?.isRead == true) mgrItem.updateManagerTipsItemView(message: customerServiceMessage?.serviceMessage?.content ?? "一对一专属服务", didReadMessage: customerServiceMessage?.serviceMessage?.isRead ?? true)
} }
} }
} }
......
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