Commit 2ae972d9 authored by Alex朱枝文's avatar Alex朱枝文

首页逻辑更改

parent d0337af2
......@@ -17,6 +17,13 @@ class YHButlerServiceMessage: NSObject {
}
// MARK: - 用于首页显示与否
class YHButlerServiceHomeInfoMessage: YHButlerServiceMessage {
class YHButlerServiceHomeInfoMessage: NSObject {
var showButler: Bool = false
var serviceMessage: YHButlerServiceMessage?
init(showButler: Bool, serviceMessage: YHButlerServiceMessage? = nil) {
self.showButler = showButler
self.serviceMessage = serviceMessage
super.init()
}
}
......@@ -29,6 +29,10 @@ class YHButlerServiceManager: NSObject {
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
}
deinit {
NotificationCenter.default.removeObserver(self)
}
func setupSDK() {
let qyOption = QYSDKOption(appKey: YhConstant.QiYuSDK.appKey)
qyOption.appName = YhConstant.QiYuSDK.appName
......@@ -68,22 +72,18 @@ class YHButlerServiceManager: NSObject {
completion(false)
return
}
completion(true)
sessionViewController.sessionTitle = sessionTitle
sessionViewController.source = source
sessionViewController.hidesBottomBarWhenPushed = true
navigationController?.pushViewController(sessionViewController, completion: {
completion(true)
})
navigationController?.pushViewController(sessionViewController)
}
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
completion(false)
return
}
/// YHHUD.show(.progress(message: "加载中..."))
getUserInfoViewModel.getUserInfomation(userId) { [weak self] dataString, error in
/// YHHUD.hide()
guard let dataString = dataString else {
completion(false)
return
......
......@@ -53,17 +53,43 @@ class YHHomePageViewController: YHBaseViewController {
//2、请求新的数据
getData()
setupNotification()
}
deinit {
NotificationCenter.default.removeObserver(self)
}
lazy var homeHeaderView: YHHomeHeadView = {
let view = YHHomeHeadView()
view.galaxyManagerItemClickEvent = { [weak self] in
YHHUD.show(.progress(message: "加载中..."))
self?.gotoYinHeManager(completion: { [weak self] success in
guard let self = self else {
return
}
YHHUD.hide()
if success {
YHButlerServiceManager.shared.clearUnreadCount()
self.updateMgrItem()
}
})
}
return view
}()
}
//MARK: - 私有方法
private extension YHHomePageViewController {
func updateMgrItem() {
let showButler = true
let serviceMessage = YHButlerServiceManager.shared.lastMessage
self.homeHeaderView.orderTipsView.customerServiceMessage = YHButlerServiceHomeInfoMessage(showButler: showButler, serviceMessage: serviceMessage)
}
// 是否展示订单提示视图
func showOrderTipsView(_ show:Bool) {
......@@ -250,6 +276,27 @@ private extension YHHomePageViewController {
self.loadMoreData()
}
}
@objc func didQiYuReceiveNewMsg() {
updateMgrItem()
}
func setupNotification() {
NotificationCenter.default.addObserver(self, selector: #selector(didQiYuReceiveNewMsg), name: YhConstant.YhNotification.didQiYuReceiveNewMsgNotification, object: nil)
}
}
extension YHHomePageViewController {
//MARK: - 跳银河管家
private func gotoYinHeManager(completion: @escaping (Bool) -> Void) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
return
}
YHButlerServiceManager.shared.gotoButlerServiceSessionVC(navigationController: navigationController, completion: { success in
completion(success)
})
}
}
//MARK: - public方法
......@@ -276,6 +323,7 @@ extension YHHomePageViewController {
guard let self = self else { return }
let isShow = self.serviceCenterMainReqVM.arrContactList.count > 0
if isShow {
self.updateMgrItem()
self.viewModel.getBasicInfoForSigner { success, error in
if success {
......
......@@ -19,6 +19,8 @@ class YHHomeHeadView: UIView {
return YHHomeHeadView.fixViewH + (20 + orderTipsView.tipViewH) + YHHomeHeadView.topMargin
}
var galaxyManagerItemClickEvent: (() -> Void)?
//获取headView的具体高度
func getHomeHeadViewH(showTips : Bool) -> CGFloat {
if showTips {
......@@ -59,6 +61,9 @@ class YHHomeHeadView: UIView {
//4.优才订单提示视图 - 未登录态不展示
lazy var orderTipsView: YHOrderTipsView = {
let view = YHOrderTipsView(frame: .zero)
view.galaxyManagerItemClickEvent = { [weak self] in
self?.galaxyManagerItemClickEvent?()
}
view.isHidden = true
return view
}()
......
......@@ -59,15 +59,17 @@ class YHOrderTipsView: UIView {
var arrLastTwoMessage : [YHHomeLastMessageModel]? {
didSet {
updateItems()
firstItem.message = arrLastTwoMessage?.first
}
}
var customerServiceMessage: YHButlerServiceHomeInfoMessage? {
didSet {
if let oldId = oldValue?.id, oldId.count > 0, oldId == customerServiceMessage?.id, oldValue?.showButler == customerServiceMessage?.showButler, oldValue?.isRead != customerServiceMessage?.isRead {
mgrItem.updateMessageState(didReadMessage: customerServiceMessage?.isRead ?? true)
updateItems()
if let oldId = oldValue?.serviceMessage?.id, oldId.count > 0, oldId == customerServiceMessage?.serviceMessage?.id, oldValue?.showButler == customerServiceMessage?.showButler, oldValue?.serviceMessage?.isRead != customerServiceMessage?.serviceMessage?.isRead {
mgrItem.updateMessageState(didReadMessage: customerServiceMessage?.serviceMessage?.isRead ?? true)
} else {
updateItems()
mgrItem.updateManagerTipsItemView(message: customerServiceMessage?.serviceMessage?.content, didReadMessage: customerServiceMessage?.serviceMessage?.isRead == true)
}
}
}
......@@ -105,57 +107,6 @@ class YHOrderTipsView: UIView {
bkgImageV.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
switch orderTipsViewStyle {
case .none:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
case .onlyMgr:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHGalaxyManagerTipsItemView.viewH)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
case .onlyOneOrder:
mgrItem.snp.makeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHOrderTipsItemView.viewH)
}
case .mgrAndOrder:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHGalaxyManagerTipsItemView.viewH)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHOrderTipsItemView.viewH)
}
}
}
//智能助理
......@@ -266,31 +217,78 @@ private extension YHOrderTipsView {
private func updateItems() {
if let mgrMessage = customerServiceMessage, mgrMessage.showButler {
mgrItem.isHidden = false
mgrItem.updateManagerTipsItemView(message: mgrMessage.content, didReadMessage: mgrMessage.isRead)
} else {
mgrItem.isHidden = true
mgrItem.updateManagerTipsItemView(message: nil, didReadMessage: true)
}
if let first = arrLastTwoMessage?.first {
firstItem.message = first
if let arrLastTwoMessage = arrLastTwoMessage, arrLastTwoMessage.count > 0 {
firstItem.isHidden = false
} else {
firstItem.isHidden = true
firstItem.message = nil
}
if mgrItem.isHidden == false, firstItem.isHidden == false {
orderTipsViewStyle = .mgrAndOrder
} else if mgrItem.isHidden == true, firstItem.isHidden == false {
orderTipsViewStyle = .onlyOneOrder
} else if mgrItem.isHidden == false, firstItem.isHidden == true {
orderTipsViewStyle = .onlyOneOrder
orderTipsViewStyle = .onlyMgr
} else {
orderTipsViewStyle = .none
}
setNeedsLayout()
layoutIfNeeded()
switch orderTipsViewStyle {
case .none:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
case .onlyMgr:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHGalaxyManagerTipsItemView.viewH)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
case .onlyOneOrder:
mgrItem.snp.makeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.width.height.equalTo(0)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHOrderTipsItemView.viewH)
}
case .mgrAndOrder:
mgrItem.snp.remakeConstraints { make in
make.top.equalTo(lableName.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHGalaxyManagerTipsItemView.viewH)
}
firstItem.snp.remakeConstraints { make in
make.top.equalTo(mgrItem.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(YHOrderTipsItemView.viewH)
}
}
// setNeedsLayout()
// layoutIfNeeded()
}
@objc func tapButton(gestureRecognizer:UITapGestureRecognizer) {
......
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