123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- //
- // MessageMainViewController.swift
- // RainbowPlanet
- //
- // Created by Christopher on 2019/6/10.
- // Copyright © 2019 RainbowPlanet. All rights reserved.
- //
- import UIKit
- import Lottie
- import ESTabBarController_swift
- class MessageMainViewController: BaseViewController {
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
- deinit {
- NXLLog("deinit")
- if observe != nil {
- NotificationCenter.default.removeObserver(observe!)
- }
- }
- weak var observe : NSObjectProtocol?
-
- var messageIndexModel : MessageIndexModel?
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupViews()
- setupData()
- }
-
- override func setupViews() {
- navigationBar.title = "消息"
- view.backgroundColor = kf7f8faColor
- view.addSubview(collectionView)
- view.insertSubview(navigationBar, aboveSubview: collectionView)
- }
-
- override func setupData() {
- // 查看全部热门视频
- observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("MessageMainViewController"), object: nil, queue: OperationQueue.main) {
- [weak self] notification in
- self?.messageIndexModel = notification.object as? MessageIndexModel
- self?.collectionView.reloadData()
- self?.setTabBarItemBadge()
- }
- collectionView.addHeader(withBeginRefresh: true, animation: true) {
- [weak self] (page) in
- self?.userMemberMessageIndexApi()
- }
-
- observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("MessageModuleTop"), object: nil, queue: OperationQueue.main, using: {
- [weak self] (notification) in
- if self?.collectionView.contentOffset == CGPoint(x: 0, y: 0) {
- self?.collectionView.mj_header.beginRefreshing()
- }else {
- self?.collectionView.scrollToTop()
- }
- })
- }
-
- lazy var collectionView: UICollectionView = {
- let collectionView = UICollectionView.init(frame: CGRect(x: 0, y: kNavBarTotalHeight, width: kScreenWidth, height: kScreenHeight - kNavBarTotalHeight), collectionViewLayout: collectionViewLayout)
- collectionView.backgroundColor = kf7f8faColor
- collectionView.delegate = self;
- collectionView.dataSource = self;
- collectionView.showsVerticalScrollIndicator = false
- collectionView.showsHorizontalScrollIndicator = false
- return collectionView
- }()
-
- private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
- let collectionViewLayout = UICollectionViewFlowLayout.init()
- collectionViewLayout.minimumLineSpacing = 0
- collectionViewLayout.minimumInteritemSpacing = 0
- return collectionViewLayout
- }()
-
- }
- extension MessageMainViewController {
-
- /// 用户消息首页
- func userMemberMessageIndexApi() {
- SwiftMoyaNetWorkServiceUser.shared().userMemberMessageIndexApi(completion: {
- [weak self] (messageIndexModel) -> (Void) in
- self?.messageIndexModel = messageIndexModel as? MessageIndexModel
- self?.collectionView.reloadData()
- self?.setTabBarItemBadge()
- MJRefreshManager.mjRefreshManager(collectionView: self?.collectionView)
- }) {
- [weak self] loadingStauts in
- MJRefreshManager.mjRefreshManagerLoadingStatus(collectionView: self?.collectionView, loadingStatus: loadingStauts)
- }
- }
-
- /// 用户消息阅读
- func userMemberReadMessageApi(messageShowTypes:String,completion: @escaping () -> Void){
- SwiftMoyaNetWorkServiceUser.shared().userMemberReadMessageApi(messageShowTypes: messageShowTypes) { (data) -> (Void) in
- completion()
- }
- }
-
- }
- extension MessageMainViewController {
-
- /// push到消息控制器
- ///
- /// - Parameters:
- /// - messageVCType: 类型
- /// - messageShowTypes: key
- func pushMessageListController(messageVCType:MessageListVCType,messageShowTypes:String) {
- let vc = MessageListController()
- vc.messageVCType = messageVCType
- vc.messageShowTypes = messageShowTypes
- self.navigationController?.pushViewController(vc, animated: true)
- self.setTabBarItemBadge()
- }
- }
- extension MessageMainViewController: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
- func numberOfSections(in collectionView: UICollectionView) -> Int {
- return 2
- }
-
- func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- switch section {
- case 0:
- return 3
- default:
- return 2
- }
- }
-
- func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
- switch indexPath.section {
- case 0:
- let cell = MessageHomeOneCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
- if self.messageIndexModel != nil {
- switch indexPath.row {
- case 0:// 评论和@
- cell.messageModel = (self.messageIndexModel?.comment)!
- case 1:// 赞与互动
- cell.messageModel = (self.messageIndexModel?.praise)!
- default: //关注通知
- cell.messageModel = (self.messageIndexModel?.follow)!
- }
- }
-
- return cell
- default:
- let cell = MessageHomeTwoCollectionViewCell.cellWith(collectionView: collectionView, indexPath: indexPath)
- if self.messageIndexModel != nil {
- switch indexPath.row {
- case 0:// 星球通知
- cell.messageModel = (self.messageIndexModel?.notification)!
- default:// 星球活动
- cell.messageModel = (self.messageIndexModel?.activity)!
- }
- }
- return cell
- }
- }
-
- func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-
- switch indexPath.section {
- case 0:
- switch indexPath.row {
- case 0:// 评论和@
- if self.messageIndexModel?.comment?.isYes == 1 {
- userMemberReadMessageApi(messageShowTypes: self.messageIndexModel?.comment?.key ?? "") {
- [weak self] in
- self?.messageIndexModel?.comment?.isYes = 0
- collectionView.reloadItems(at: [indexPath])
- self?.pushMessageListController(messageVCType: .comment, messageShowTypes: self?.messageIndexModel?.comment?.key ?? "")
- self?.setTabBarItemBadge()
- }
- }else {
- self.pushMessageListController(messageVCType: .comment, messageShowTypes: self.messageIndexModel?.comment?.key ?? "")
- }
-
- case 1:// 赞与互动
- if self.messageIndexModel?.praise?.isYes == 1 {
- userMemberReadMessageApi(messageShowTypes: self.messageIndexModel?.praise?.key ?? "") {
- [weak self] in
- self?.messageIndexModel?.praise?.isYes = 0
- collectionView.reloadItems(at: [indexPath])
- self?.pushMessageListController(messageVCType: .praise, messageShowTypes: self?.messageIndexModel?.praise?.key ?? "")
- self?.setTabBarItemBadge()
- }
- }else {
- self.pushMessageListController(messageVCType: .praise, messageShowTypes: self.messageIndexModel?.praise?.key ?? "")
- }
- default: //关注通知
- if self.messageIndexModel?.follow?.isYes == 1 {
- userMemberReadMessageApi(messageShowTypes: self.messageIndexModel?.follow?.key ?? "") {
- [weak self] in
- self?.messageIndexModel?.follow?.isYes = 0
- collectionView.reloadItems(at: [indexPath])
- self?.pushMessageListController(messageVCType: .follow, messageShowTypes: self?.messageIndexModel?.follow?.key ?? "")
- self?.setTabBarItemBadge()
- }
- }else {
- pushMessageListController(messageVCType: .follow, messageShowTypes: self.messageIndexModel?.follow?.key ?? "")
- }
- }
- default:
- switch indexPath.row {
- case 0:// 星球通知
- if self.messageIndexModel?.notification?.isYes == 1 {
- userMemberReadMessageApi(messageShowTypes: self.messageIndexModel?.notification?.key ?? "") {
- [weak self] in
- self?.messageIndexModel?.notification?.isYes = 0
- collectionView.reloadItems(at: [indexPath])
- let vc = MessagePlanetNotiController()
- vc.messageShowTypes = self?.messageIndexModel?.notification?.key ?? ""
- self?.navigationController?.pushViewController(vc, animated: true)
- self?.setTabBarItemBadge()
- }
- }else {
- let vc = MessagePlanetNotiController()
- vc.messageShowTypes = self.messageIndexModel?.notification?.key ?? ""
- self.navigationController?.pushViewController(vc, animated: true)
- self.setTabBarItemBadge()
- }
- default:// 星球活动
- if self.messageIndexModel?.activity?.isYes == 1 {
- userMemberReadMessageApi(messageShowTypes: self.messageIndexModel?.activity?.key ?? "") {
- [weak self] in
- self?.messageIndexModel?.activity?.isYes = 0
- collectionView.reloadItems(at: [indexPath])
- let vc = MessagePlanetActivityController()
- vc.messageShowTypes = self?.messageIndexModel?.activity?.key ?? ""
- self?.navigationController?.pushViewController(vc, animated: true)
- self?.setTabBarItemBadge()
- }
- }else {
- let vc = MessagePlanetActivityController()
- vc.messageShowTypes = self.messageIndexModel?.activity?.key ?? ""
- self.navigationController?.pushViewController(vc, animated: true)
- self.setTabBarItemBadge()
- }
- }
- }
-
- }
-
- func setTabBarItemBadge() {
- if self.messageIndexModel?.activity?.isYes == 1 || self.messageIndexModel?.follow?.isYes == 1 || self.messageIndexModel?.notification?.isYes == 1 || self.messageIndexModel?.praise?.isYes == 1 || self.messageIndexModel?.comment?.isYes == 1{
- let tabBarItem = self.tabBarItem as? ESTabBarItem
- tabBarItem?.contentView?.badgeColor = kFE352BColor
- tabBarItem?.contentView?.badgeValue = ""
- tabBarItem?.contentView?.badgeOffset = UIOffset(horizontal: 0, vertical: -22)
- }else {
- let tabBarItem = self.tabBarItem as? ESTabBarItem
- tabBarItem?.contentView?.badgeValue = nil
- }
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
- switch indexPath.section {
- case 0:
- return CGSize(width:(kScreenWidth)/3, height:104)
- default:
- return CGSize(width:kScreenWidth, height:70)
- }
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
- return UIEdgeInsets(top:0, left: 0, bottom: 0, right: 0)
- }
-
- func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
- return CGSize(width: kScreenWidth, height: 10)
- }
-
- }
|