Преглед на файлове

Merge branch 'feature/jeremy' into develop

南鑫林 преди 5 години
родител
ревизия
3bc34a1640
променени са 46 файла, в които са добавени 365 реда и са изтрити 172 реда
  1. 29 20
      RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate+Window.swift
  2. 1 1
      RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate.swift
  3. 13 9
      RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift
  4. 2 3
      RainbowPlanet/RainbowPlanet/Base/BaseViewController/BaseViewController.swift
  5. 1 1
      RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebBaseViewController.swift
  6. 1 0
      RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebViewController.swift
  7. 3 0
      RainbowPlanet/RainbowPlanet/Manager/MJRefreshManager/MJRefreshManager.swift
  8. 2 2
      RainbowPlanet/RainbowPlanet/Manager/MessageModuleManager/MessageModuleManager.swift
  9. 19 1
      RainbowPlanet/RainbowPlanet/Manager/WebViewJavascriptBridgeManager/WebViewJavascriptBridgeManager.swift
  10. 4 0
      RainbowPlanet/RainbowPlanet/Model/ConfigModel/SelfMentionAddressListModel.swift
  11. 10 0
      RainbowPlanet/RainbowPlanet/Model/UserModel/UserModel.swift
  12. 1 1
      RainbowPlanet/RainbowPlanet/Model/VirusModel/VirueRecordAddParameterModel.swift
  13. 24 0
      RainbowPlanet/RainbowPlanet/Model/WVJBModel/WVJBModel.swift
  14. 10 6
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Follow/CommunityFollowViewController.swift
  15. 20 3
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Main/CommunityViewController.swift
  16. 1 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Planet/CommunityPlanet/CommunityPlanetViewController.swift
  17. 9 4
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Recommend/CommunityRecommnendViewController.swift
  18. 5 1
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/ViewController/CommunityFindFriendsViewController.swift
  19. 11 6
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/Controller/CommunityRecommendController.swift
  20. 1 3
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/AllCommentCell/RecommendMajorCommentCell.swift
  21. 0 3
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/AllCommentCell/RecommendSubCommentTableViewCell.swift
  22. 10 6
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/CommunityPostDetailTableViewHeaderView.swift
  23. 2 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/HTMLCell/CommunityRecommendDetailHTMLTableViewCell.swift
  24. 4 2
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendBottomCommentView.swift
  25. 2 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendSimilarCell.swift
  26. 5 0
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/imageCell/RecommendDetailContentCell.swift
  27. 7 6
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunitySubComment/ViewController/CommunitySubCommentController.swift
  28. 6 5
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoContent/View/CommunityAllCommentView.swift
  29. 6 5
      RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoSubCommentController/CommunityVideoSubCommentController.swift
  30. 6 1
      RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageMain/ViewController/MessageMainViewController.swift
  31. 1 0
      RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift
  32. 8 5
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishAddTopic/Controller/PublishAddTopicController.swift
  33. 15 5
      RainbowPlanet/RainbowPlanet/Modules/RedemptionAreaModule/ViewController/RedemptionAreaViewController.swift
  34. 18 7
      RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/RegisterLogin/ViewController/RegisterLoginViewController.swift
  35. 11 7
      RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchContentList/ViewController/SearchContentListViewController.swift
  36. 22 15
      RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchTopicList/ViewController/SearchTopicListViewController.swift
  37. 10 23
      RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchUser/ViewController/SearchUserListViewController.swift
  38. 1 0
      RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/ViewController/ShoppingMallViewController.swift
  39. 5 0
      RainbowPlanet/RainbowPlanet/Router/MineRouterModuleType.swift
  40. 5 0
      RainbowPlanet/RainbowPlanet/Router/RegisterLoginRouterModuleType.swift
  41. 4 2
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCMS/SwiftMoyaNetWorkServiceCMS.swift
  42. 12 6
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCommunity/SwiftMoyaNetWorkServiceCommunity.swift
  43. 3 2
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift
  44. 6 6
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/ApiMacro.swift
  45. 5 5
      RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/SwiftMoyaNetWorkManager.swift
  46. 24 0
      RainbowPlanet/RainbowPlanet/Tools/WKWebView/WebView.swift

+ 29 - 20
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate+Window.swift

@@ -7,6 +7,7 @@
 //
 
 import UIKit
+import SwiftyMediator
 
 extension AppDelegate {
 
@@ -29,26 +30,21 @@ extension AppDelegate {
         SwiftMoyaNetWorkServiceConfig.shared().configApi {(data) -> (Void) in}
         /// 判断初始化页面
         if (UserModel.shared().getModel()?.token) != nil { //是否已经登录
-
-            if (UserModel.shared().getModel()?.gender == nil || UserModel.shared().getModel()?.gender == 0) {//设置性别
-                SwiftMoyaNetWorkServiceUser.shared().userRefreshApi {[weak self] _ in
+            SwiftMoyaNetWorkServiceUser.shared().userRefreshApi {
+                [weak self] _ in
+                if (UserModel.shared().getModel()?.gender == nil || UserModel.shared().getModel()?.gender == 0) {//设置性别
                     self?.setSexViewController()
-                }
-            }else if (UserModel.shared().getModel()?.gender == 1 || UserModel.shared().getModel()?.gender == 2) && UserModel.shared().getModel()?.isFollowSuggestTopic == 0  { //设置话题
-                SwiftMoyaNetWorkServiceUser.shared().userRefreshApi {[weak self] _ in
+                }else if (UserModel.shared().getModel()?.gender == 1 || UserModel.shared().getModel()?.gender == 2) && UserModel.shared().getModel()?.isFollowSuggestTopic == 0  { //设置话题
                     self?.setTopicViewController()
-                }
-            }else if (UserModel.shared().getModel()?.gender == 1 || UserModel.shared().getModel()?.gender == 2) && UserModel.shared().getModel()?.isFollowSuggestTopic == 1 { //设置首页
-
-                SwiftMoyaNetWorkServiceUser.shared().userRefreshApi {[weak self] _ in
+                }else {// 进入首页
                     self?.setTabbarController()
-
+                    //获取消息的小红点
+                    MessageModuleManager.shared.userMemberMessageIndexApi()
                 }
-            }else {// 设置登录
-                setLoginController()
             }
-        }else {// 设置登录
-            setLoginController()
+            
+        }else {// 进入首页
+            setTabbarController()
         }
         
         /// 引导页
@@ -58,19 +54,32 @@ extension AppDelegate {
     /// 设置Tabbar
     func setTabbarController() {
         self.window?.rootViewController = BaseTabbarViewController.shared.tabBarViewController()
-        //获取消息的小红点
-        MessageModuleManager.shared.userMemberMessageIndexApi()
     }
 
-    /// 设置Login
-    func setLoginController() {
+    /// 登录
+    func setLogin() {
+        Mediator.present(RegisterLoginRouterModuleType.presentRegisterLogin)
+    }
+    
+    /// 退出登录
+    func setLoginOut() {
         //移除友盟别名
         UMManager.shared.removeAlias()
         //移除本地用户信息
         UserModel.shared().removeLoginModel()
         //移除快递信息
         DeliveryMethodTypeModel.shared().removeLoginModel()
-        self.window?.rootViewController = BaseNavigationViewController.init(rootViewController: RegisterLoginViewController())
+        BaseTabbarViewController.shared.v1 = nil
+        BaseTabbarViewController.shared.v2 = nil
+        BaseTabbarViewController.shared.v3 = nil
+        BaseTabbarViewController.shared.v4 = nil
+        BaseTabbarViewController.shared.v5 = nil
+        BaseTabbarViewController.shared.lottieAnimateContentView1 = nil
+        BaseTabbarViewController.shared.lottieAnimateContentView2 = nil
+        BaseTabbarViewController.shared.lottieAnimateContentView4 = nil
+        BaseTabbarViewController.shared.lottieAnimateContentView5 = nil
+        //进入到首页
+        setTabbarController()
     }
     
     /// 设置性别页面

+ 1 - 1
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate.swift

@@ -19,7 +19,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         //版本更新
         _ = UpdateVersionManager.shared
         //网络监听
-        AlamofireReachabilityManager.shared.reachability()
+//        AlamofireReachabilityManager.shared.reachability()
         //初始化百度地图
         BaiduMapManager.shared.initBaiduMap()
         //百度开始定位

+ 13 - 9
RainbowPlanet/RainbowPlanet/Base/BaseTabbarViewController/BaseTabbarViewController.swift

@@ -90,7 +90,7 @@ class BaseTabbarViewController: NSObject {
     /// 兑换专区
     var v2 : RedemptionAreaViewController!
     /// 发布
-    var v3 : UIViewController!
+    var v3 : BaseViewController!
     /// 消息
     var v4 : MessageMainViewController!
     /// 我的
@@ -130,13 +130,17 @@ class BaseTabbarViewController: NSObject {
 
         esTabBarController.didHijackHandler = {
             tabbarController, viewController, index in
-            let isUploadFinish: Bool = PublishUploadManager.shared().isPublishFinished
-            if isUploadFinish {
-                let pickVc = PublishViewController()
-                let nav = BaseNavigationViewController.init(rootViewController: pickVc)
-                tabbarController.present(nav, animated: true, completion: nil)
-            } else {
-                SwiftProgressHUD.shared().showText("内容上传中,请稍等", textAlignment: .center)
+            if UserModel.isTokenNil() {
+                kAppDelegate.setLogin()
+            }else {
+                let isUploadFinish: Bool = PublishUploadManager.shared().isPublishFinished
+                if isUploadFinish {
+                    let pickVc = PublishViewController()
+                    let nav = BaseNavigationViewController.init(rootViewController: pickVc)
+                    tabbarController.present(nav, animated: true, completion: nil)
+                } else {
+                    SwiftProgressHUD.shared().showText("内容上传中,请稍等", textAlignment: .center)
+                }
             }
         }
         
@@ -147,7 +151,7 @@ class BaseTabbarViewController: NSObject {
         /// 兑换专区
         v2 = RedemptionAreaViewController()
         /// 发布
-        v3 = UIViewController()
+        v3 = BaseViewController()
         /// 消息
         v4 = MessageMainViewController()
         /// 我的

+ 2 - 3
RainbowPlanet/RainbowPlanet/Base/BaseViewController/BaseViewController.swift

@@ -20,7 +20,7 @@ class BaseViewController: UIViewController {
         navigationController?.navigationBar.isHidden = true
         view.backgroundColor = UIColor.white
         if #available(iOS 11.0, *) {
-            UIScrollView.appearance().contentInsetAdjustmentBehavior =  .automatic
+            UIScrollView.appearance().contentInsetAdjustmentBehavior = .never
         } else {
             if self.responds(to: #selector(setter: self.automaticallyAdjustsScrollViewInsets)) {
                 self.automaticallyAdjustsScrollViewInsets = false
@@ -53,8 +53,7 @@ class BaseViewController: UIViewController {
         navigationBar.wr_setLeftButton(image: image)
         navigationBar.onClickLeftButton = {
             [weak self] in
-            guard let strongSelf = self else { return }
-            strongSelf.wr_toLastViewController(animated: true)
+            self?.wr_toLastViewController(animated: true)
         }
     }
 

+ 1 - 1
RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebBaseViewController.swift

@@ -29,6 +29,7 @@ class BaseJSWebBaseViewController: BaseViewController {
     }
     
     override func setupViews() {
+        removeWKWebViewCookies()
         view.addSubview(wkWebView)
         view.addSubview(progressView)
         WebViewJavascriptBridge.enableLogging()
@@ -161,7 +162,6 @@ class BaseJSWebBaseViewController: BaseViewController {
                 progressView.alpha = 0.0
                 progressView .setProgress(0.0, animated: false)
             }
-           NXLLog(wkWebView.estimatedProgress)
         }else if keyPath == "title" {
             let vc = wkWebView.findViewController() as? BaseViewController
             _ = vc?.navigationBar.title = wkWebView.title

+ 1 - 0
RainbowPlanet/RainbowPlanet/Base/BaseWebViewController/BaseJSWebViewController.swift

@@ -28,6 +28,7 @@ class BaseJSWebViewController: UIViewController {
     }
     
     func setupViews() {
+        removeWKWebViewCookies()
         view.addSubview(wkWebView)
         view.addSubview(progressView)
         WebViewJavascriptBridge.enableLogging()

+ 3 - 0
RainbowPlanet/RainbowPlanet/Manager/MJRefreshManager/MJRefreshManager.swift

@@ -23,6 +23,9 @@ class MJRefreshManager: NSObject {
             tableView?.endHeaderRefresh()
         }
         tableView?.endFooterRefresh()
+        if totalPages == 1 && currentPage == 1 {
+            tableView?.endFooterNoMoreData()
+        }
         if  currentPage ?? 1  >= totalPages ?? 1 {
             tableView?.endFooterNoMoreData()
         }

+ 2 - 2
RainbowPlanet/RainbowPlanet/Manager/MessageModuleManager/MessageModuleManager.swift

@@ -13,12 +13,12 @@ class MessageModuleManager: NSObject {
     
     /// 获取message信息
     func userMemberMessageIndexApi() {
-        SwiftMoyaNetWorkServiceUser.shared().userMemberMessageIndexApi {
+        SwiftMoyaNetWorkServiceUser.shared().userMemberMessageIndexApi(completion: {
             (messageIndexModel) -> (Void) in
             let messageIndexModel = messageIndexModel as? MessageIndexModel
             if messageIndexModel?.activity?.isYes == 1 || messageIndexModel?.follow?.isYes == 1 || messageIndexModel?.notification?.isYes == 1 || messageIndexModel?.praise?.isYes == 1 || messageIndexModel?.comment?.isYes == 1 {
                 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "MessageMainViewController"), object: messageIndexModel)
             }
-        }
+        }) { _ in}
     }
 }

+ 19 - 1
RainbowPlanet/RainbowPlanet/Manager/WebViewJavascriptBridgeManager/WebViewJavascriptBridgeManager.swift

@@ -80,13 +80,31 @@ class WebViewJavascriptBridgeManager: NSObject {
                 }
             }
             // 去星球
-            if wvjbModel?.params?.paramsModelPage == .planet{
+            if wvjbModel?.params?.paramsModelPage == .planet {
                 BaseTabbarViewController.shared.esTabBarController.selectedIndex = 0
                 BaseTabbarViewController.shared.v1.reloadSegmentedStarView()
                 if viewController != nil {
                     viewController?.navigationController?.popToRootViewController(animated: true)
                 }
             }
+            
+            // 去登陆
+            if wvjbModel?.params?.paramsModelPage == .signin {
+                Mediator.present(RegisterLoginRouterModuleType.presentRegisterLogin)
+            }
+            
+            // 去个人中心
+            if wvjbModel?.params?.paramsModelPage == .user {
+                if wvjbModel?.params?.payload?.uid != nil {
+                    Mediator.present(MineRouterModuleType.pushOtherPersonalCenter(uid: wvjbModel?.params?.payload?.uid ?? 0))
+                }
+            }
+            
+            // 账户(绑定微信/绑定QQ)
+            if wvjbModel?.params?.paramsModelPage == .account {
+                Mediator.present(MineRouterModuleType.pushAccountSecurity)
+            }
+            
         }
         // 跳转原生
         if wvjbModel?.modelType  == .follow {

+ 4 - 0
RainbowPlanet/RainbowPlanet/Model/ConfigModel/SelfMentionAddressListModel.swift

@@ -206,4 +206,8 @@ class SelfMentionAddressModel : NSObject, NSCoding, Mappable{
         UserDefaults.standard.removeObject(forKey: "SelfMentionAddressModel")
     }
     
+    class func isToken() {
+        
+    }
+    
 }

+ 10 - 0
RainbowPlanet/RainbowPlanet/Model/UserModel/UserModel.swift

@@ -186,6 +186,16 @@ public class UserModel : NSObject, NSCoding, Mappable{
             return false
         }
     }
+    
+    class func isTokenNil() -> Bool {
+        if (UserModel.shared().getModel()?.token) == nil {
+            return true
+        }else {
+            return false
+        }
+    }
+    
+    
 
 }
 

+ 1 - 1
RainbowPlanet/RainbowPlanet/Model/VirusModel/VirueRecordAddParameterModel.swift

@@ -23,7 +23,7 @@ class VirueRecordAddParameterModel: NSObject, Mappable{
     /// 应用标识
     var appIdentification : String = "app"
     /// 用户ID
-    var targetId : String = "\((UserModel.shared().getModel()?.uid)!)"
+    var targetId : String = "\((UserModel.shared().getModel()?.uid ?? 0))"
     /// 动作ID
     var actionId : String = ""
     /// 行为ID

+ 24 - 0
RainbowPlanet/RainbowPlanet/Model/WVJBModel/WVJBModel.swift

@@ -74,6 +74,9 @@ enum WVJBParamsModelPage : String {
     case account = "account"
     case exchange = "exchange"
     case planet = "planet"
+    case user = "user"
+    case signin = "signin"
+    
 }
 /// WebViewJavascriptBridgeParameterModel 简写 WVJBParameterModel
 class WVJBParamsModel:NSObject,Mappable {
@@ -106,6 +109,8 @@ class WVJBParamsModel:NSObject,Mappable {
         }
     }
     
+    var payload : WVJBPayloadModel?
+    
     class func newInstance(map: Map) -> Mappable?{
         return WVJBParamsModel()
     }
@@ -122,6 +127,25 @@ class WVJBParamsModel:NSObject,Mappable {
         status <- map["status"]
         list <- map["list"]
         current <- map["current"]
+        payload <- map["payload"]
     }
 
 }
+
+/// WebViewJavascriptBridgeParameterModel 简写 WVJBParameterModel
+class WVJBPayloadModel:NSObject,Mappable {
+    /// 关注
+    var uid : Int?
+    
+    class func newInstance(map: Map) -> Mappable?{
+        return WVJBParamsModel()
+    }
+    required init?(map: Map){}
+    override init(){}
+    
+    func mapping(map: Map)
+    {
+        uid <- map["uid"]
+    }
+    
+}

+ 10 - 6
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Follow/CommunityFollowViewController.swift

@@ -12,6 +12,7 @@ import JXSegmentedView
 class CommunityFollowViewController: UIViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -191,19 +192,20 @@ extension CommunityFollowViewController {
     
     /// 获取关注用户列表
     func cmsMemberListApi() {
-        SwiftMoyaNetWorkServiceCMS.shared().cmsMemberListApi(takeCount: 20) {
+        SwiftMoyaNetWorkServiceCMS.shared().cmsMemberListApi(takeCount: 20,completion: {
             [weak self] (cmsMemberListModel) -> (Void) in
             let cmsMemberListModel = cmsMemberListModel as? CMSMemberListModel
             self?.cmsMemberModels = (cmsMemberListModel?.list)!
             self?.tableView.reloadData()
-        }
+        }) {_ in }
     }
     
     /// 关注feed流
     ///
     /// - Parameter page: 分页
     func communityFollowFeedApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityFollowFeedApi(page:page) {
+        
+        SwiftMoyaNetWorkServiceCommunity.shared().communityFollowFeedApi(page:page,completion:{
             [weak self] (communityFollowFeedModel) -> (Void) in
             let communityFollowFeedModel = communityFollowFeedModel as? CommunityFollowFeedModel
             if communityFollowFeedModel?.pagination?.currentPage ?? 1  <= communityFollowFeedModel?.pagination?.totalPages ?? 1 {
@@ -216,12 +218,14 @@ extension CommunityFollowViewController {
                     self?.tableView.tableHeaderView = self?.followTableHeaderView
                 }
                 self?.tableView.reloadData()
-                if  self?.communityFollowDataModels.count ?? 0 >= communityFollowFeedModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityFollowFeedModel?.pagination?.currentPage, totalPages: communityFollowFeedModel?.pagination?.totalPages)
+
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     

+ 20 - 3
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Main/CommunityViewController.swift

@@ -20,7 +20,9 @@ var communityModuleTopType :CommunityModuleTopType?
 
 class CommunityViewController: BaseViewController {
     
+    
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -393,19 +395,36 @@ class CommunityViewController: BaseViewController {
         return listContainerView
     }()
     
+    var index : Int?
+    
 }
 
 extension CommunityViewController : JXSegmentedViewDelegate {
     //点击选中或者滚动选中都会调用该方法。适用于只关心选中事件,而不关心具体是点击还是滚动选中的情况。
     func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
         if index == 0 {
-            communityModuleTopType = .communityModuleFollowTop
+            if UserModel.isTokenNil() {
+                self.segmentedView.selectItemAt(index: self.index ?? 1)
+                self.segmentedView.defaultSelectedIndex = self.index ?? 1
+                self.listContainerView.defaultSelectedIndex = self.index ?? 1
+                self.segmentedDataSource.reloadData(selectedIndex: self.index ?? 1)
+                kAppDelegate.setLogin()
+            }else {
+                listContainerView.didClickSelectedItem(at: index)
+                communityModuleTopType = .communityModuleFollowTop
+                self.index = index
+            }
         }
         if index == 1 {
             communityModuleTopType = .communityModuleRecommendTop
+            listContainerView.didClickSelectedItem(at: index)
+            self.index = index
+
         }
         if index == 2 {
             communityModuleTopType = .communityModulePlanetTop
+            listContainerView.didClickSelectedItem(at: index)
+            self.index = index
         }
         
     }
@@ -413,7 +432,6 @@ extension CommunityViewController : JXSegmentedViewDelegate {
     // 点击选中的情况才会调用该方法
     func segmentedView(_ segmentedView: JXSegmentedView, didClickSelectedItemAt index: Int) {
         //传递didClickSelectedItemAt事件给listContainerView,必须调用!!!
-        listContainerView.didClickSelectedItem(at: index)
     }
     
     // 滚动选中的情况才会调用该方法
@@ -424,7 +442,6 @@ extension CommunityViewController : JXSegmentedViewDelegate {
     // 正在滚动中的回调
     func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
         //传递scrolling事件给listContainerView,必须调用!!!
-        listContainerView.segmentedViewScrolling(from: leftIndex, to: rightIndex, percent: percent, selectedIndex: segmentedView.selectedIndex)
     }
     
     /// 是否允许点击选中目标index的item

+ 1 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Planet/CommunityPlanet/CommunityPlanetViewController.swift

@@ -16,6 +16,7 @@ import MJRefresh
 class CommunityPlanetViewController: BaseJSWebViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }

+ 9 - 4
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/Community/ViewController/Recommend/CommunityRecommnendViewController.swift

@@ -12,6 +12,7 @@ import JXSegmentedView
 class CommunityRecommnendViewController: UIViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -168,7 +169,8 @@ extension CommunityRecommnendViewController {
     ///
     /// - Parameter page: 分页
     func communityPostSuggestApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostSuggestApi(page:page) {
+        
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostSuggestApi(page:page,completion: {
             [weak self] (communityRecommendFeedModel) -> (Void) in
             let communityRecommendFeedModel = communityRecommendFeedModel as? CommunityRecommendFeedModel
             if communityRecommendFeedModel?.pagination?.currentPage ?? 1  <= communityRecommendFeedModel?.pagination?.totalPages ?? 1 {
@@ -178,13 +180,16 @@ extension CommunityRecommnendViewController {
                 }
                 self?.communityRecommendDataModels = (self?.communityRecommendDataModels)! + (communityRecommendFeedModel?.data!)!
                 self?.tableView.reloadData()
-                if  self?.communityRecommendDataModels.count ?? 0 >= communityRecommendFeedModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityRecommendFeedModel?.pagination?.currentPage, totalPages: communityRecommendFeedModel?.pagination?.totalPages)
+
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
+        
     }
     
     /// 评论

+ 5 - 1
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityFindFriends/ViewController/CommunityFindFriendsViewController.swift

@@ -91,11 +91,15 @@ class CommunityFindFriendsViewController: BaseViewController {
 extension CommunityFindFriendsViewController {
     /// 获取关注列表
     func cmsMemberListApi() {
-        SwiftMoyaNetWorkServiceCMS.shared().cmsMemberListApi(takeCount: 50) {
+        SwiftMoyaNetWorkServiceCMS.shared().cmsMemberListApi(takeCount: 50,completion: {
             [weak self] (cmsMemberListModel) -> (Void) in
             let cmsMemberListModel = cmsMemberListModel as? CMSMemberListModel
             self?.cmsMemberModels = (cmsMemberListModel?.list)!
             self?.tableView.reloadData()
+            MJRefreshManager.hiddenHeaderWithFooter(tableView:  self?.tableView)
+        }) {
+            [weak self] loadingStatus in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView:  self?.tableView)
         }
     }
     

+ 11 - 6
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/Controller/CommunityRecommendController.swift

@@ -11,6 +11,8 @@ import UIKit
 class CommunityRecommendController: BaseViewController {
     
     deinit {
+        NXLLog("deinit")
+        self.view = nil
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -141,6 +143,7 @@ class CommunityRecommendController: BaseViewController {
     }()
     
     lazy var tableView: UITableView = {
+        [unowned self] in
         let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
         tableView.separatorStyle = .none
         tableView.backgroundColor = kf7f8faColor
@@ -408,23 +411,24 @@ extension CommunityRecommendController {
     ///   - postId: 内容id
     ///   - page: 分页
     func communityPostCommentApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostCommentsApi(postId: id, page: page) {
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostCommentsApi(postId: id, page: page,completion: {
             [weak self] (communityPostCommentsModel) -> (Void) in
             self?.communityPostCommentsModel = communityPostCommentsModel as? CommunityPostCommentsModel
             self?.count = self?.communityPostDetailModel?.commentCount ?? 0
             if self?.communityPostCommentsModel?.pagination?.currentPage == 1{
                 self?.communityPostCommentModels.removeAll()
+                self?.tableView.resetNoMoreData()
             }
             self?.communityPostCommentModels = (self?.communityPostCommentModels)! + (self?.communityPostCommentsModel?.data!)!
             self?.tableView.reloadData()
-        }
+        }) { _ in }
     }
     
     /// 相关推荐
     ///
     /// - Parameter page: 分页
     func communityPostsApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostsApi(topicIds:"[\(self.communityPostDetailModel?.topicIds ?? "")]", page: page) {
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostsApi(topicIds:"[\(self.communityPostDetailModel?.topicIds ?? "")]", page: page, completion: {
             [weak self] (communityPostsModel) -> (Void) in
             let communityPostsModel = communityPostsModel as? CommunityPostsModel
             if communityPostsModel?.pagination?.currentPage ?? 1  <= communityPostsModel?.pagination?.totalPages ?? 1 {
@@ -435,12 +439,13 @@ extension CommunityRecommendController {
                 self?.communityPostDataModels = (self?.communityPostDataModels)! + (communityPostsModel?.data!)!
                 self?.heightList()
                 self?.tableView.reloadData()
-                if  self?.communityPostDataModels.count ?? 0 >= communityPostsModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityPostsModel?.pagination?.currentPage, totalPages: communityPostsModel?.pagination?.totalPages)
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     

+ 1 - 3
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/AllCommentCell/RecommendMajorCommentCell.swift

@@ -89,9 +89,6 @@ class RecommendMajorCommentCell: UITableViewCell {
         iconButton.setImage(kImage(name: "default_avatar"), for: UIControl.State.normal)
         iconButton.cornerRadius = 12
         iconButton.masksToBounds = true
-        iconButton.rx.tap.subscribe(onNext: { [weak self] (data) in
-            
-        }).disposed(by: disposeBag)
         return iconButton
     }()
     
@@ -121,6 +118,7 @@ class RecommendMajorCommentCell: UITableViewCell {
     }()
     
     lazy var tableView: UITableView = {
+        [unowned self] in
         let tableView = UITableView(frame: CGRect.zero, style: UITableView.Style.grouped)
         tableView.separatorStyle = .none
         tableView.backgroundColor = kf7f8faColor

+ 0 - 3
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/AllCommentCell/RecommendSubCommentTableViewCell.swift

@@ -84,9 +84,6 @@ class RecommendSubCommentTableViewCell: UITableViewCell {
         iconButton.setImage(kImage(name: "default_avatar"), for: UIControl.State.normal)
         iconButton.cornerRadius = 12
         iconButton.masksToBounds = true
-        iconButton.rx.tap.subscribe(onNext: { [weak self] (data) in
-            
-        }).disposed(by: disposeBag)
         return iconButton
     }()
     

+ 10 - 6
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/CommunityPostDetailTableViewHeaderView.swift

@@ -29,6 +29,7 @@ class CommunityPostDetailTableViewHeaderView: BaseView {
     }
     
     private lazy var pagerView: FSPagerView = {
+        [unowned self] in
         let pagerView = FSPagerView(frame: CGRect.zero)
         pagerView.backgroundColor = kf7f8faColor
         pagerView.delegate = self
@@ -103,8 +104,9 @@ extension CommunityPostDetailTableViewHeaderView:FSPagerViewDataSource,FSPagerVi
         let currentIndex = pagerView.currentIndex
         let cell = pagerView.cellForItem(at: currentIndex) as! CommunityPostDetailFSPagerViewCell
         UIView.animate(withDuration: 0.5) {
-            self.size = cell.size
-            self.tableView?.reloadData()
+            [weak self] in
+            self?.size = cell.size
+            self?.tableView?.reloadData()
         }
     }
     func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) {
@@ -112,8 +114,9 @@ extension CommunityPostDetailTableViewHeaderView:FSPagerViewDataSource,FSPagerVi
         self.numberLabel.text =  "  \(targetIndex+1)/" + "\(imgs.count)  "
         let cell = pagerView.cellForItem(at: currentIndex) as! CommunityPostDetailFSPagerViewCell
         UIView.animate(withDuration: 0.5) {
-            self.size = cell.size
-            self.tableView?.reloadData()
+            [weak self] in
+            self?.size = cell.size
+            self?.tableView?.reloadData()
         }
     }
     func pagerViewDidScroll(_ pagerView: FSPagerView) {
@@ -130,8 +133,9 @@ extension CommunityPostDetailTableViewHeaderView:FSPagerViewDataSource,FSPagerVi
         let currentIndex = pagerView.currentIndex
         let cell = pagerView.cellForItem(at: currentIndex) as! CommunityPostDetailFSPagerViewCell
         UIView.animate(withDuration: 0.5) {
-            self.size = cell.size
-            self.tableView?.reloadData()
+            [weak self] in
+            self?.size = cell.size
+            self?.tableView?.reloadData()
         }
     }
     

+ 2 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/HTMLCell/CommunityRecommendDetailHTMLTableViewCell.swift

@@ -13,6 +13,7 @@ import SwiftyMediator
 class CommunityRecommendDetailHTMLTableViewCell: UITableViewCell {
     
     deinit {
+        NXLLog("deinit")
         webView.scrollView.removeObserver(self, forKeyPath: "contentSize")
     }
 
@@ -186,6 +187,7 @@ class CommunityRecommendDetailHTMLTableViewCell: UITableViewCell {
     }()
     
     private lazy var collectionView: UICollectionView = {
+        [unowned self] in
         let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
         collectionView.backgroundColor = kffffffColor
         collectionView.delegate = self

+ 4 - 2
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendBottomCommentView.swift

@@ -145,7 +145,8 @@ class RecommendBottomCommentView: BaseView {
             likeBtn.isSelected = !likeBtn.isSelected
             if self?.communityPostDetailModel?.isLike == 0 {
                 self?.praiseAnimationView.isHidden = false
-                self?.praiseAnimationView.play(completion: { (_) in
+                self?.praiseAnimationView.play(completion: {
+                    [weak self] (_) in
                     self?.praiseAnimationView.isHidden = true
                 })
             }
@@ -166,7 +167,8 @@ class RecommendBottomCommentView: BaseView {
             collectBtn.isSelected = !collectBtn.isSelected
             if self?.communityPostDetailModel?.isCollect == 0 {
                 self?.collectAnimationView.isHidden = false
-                self?.collectAnimationView.play(completion: { (_) in
+                self?.collectAnimationView.play(completion: {
+                    [weak self] (_) in
                     self?.collectAnimationView.isHidden = true
                 })
             }

+ 2 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/RecommendSimilarCell.swift

@@ -51,6 +51,7 @@ class RecommendSimilarCell: UITableViewCell {
     }
     
     private lazy var collectionView: UICollectionView = {
+        [unowned self] in
         let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
         collectionView.backgroundColor = kf7f8faColor
         collectionView.delegate = self;
@@ -62,6 +63,7 @@ class RecommendSimilarCell: UITableViewCell {
         return collectionView
     }()
     private lazy var collectionViewLayout: WaterFallLayout = {
+        [unowned self] in
         let collectionViewLayout = WaterFallLayout()
         collectionViewLayout.delegate = self
         collectionViewLayout.scrollDirection = .horizontal

+ 5 - 0
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityRecommendDetail/View/imageCell/RecommendDetailContentCell.swift

@@ -12,6 +12,10 @@ import SwiftyMediator
 
 class RecommendDetailContentCell: UITableViewCell {
     
+    deinit {
+        NXLLog("deinit")
+    }
+    
     class func cellWith(tableView:UITableView,indexPath:IndexPath) -> RecommendDetailContentCell {
         let ID = "RecommendDetailContentCell"
         tableView.register(RecommendDetailContentCell.self, forCellReuseIdentifier: ID)
@@ -166,6 +170,7 @@ class RecommendDetailContentCell: UITableViewCell {
     }()
     
     private lazy var collectionView: UICollectionView = {
+        [unowned self] in
         let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
         collectionView.backgroundColor = kffffffColor
         collectionView.delegate = self

+ 7 - 6
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunitySubComment/ViewController/CommunitySubCommentController.swift

@@ -105,9 +105,10 @@ extension CommunitySubCommentController {
     ///
     /// - Parameter page: 分页
     func communityPostReplyApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostReplyApi(postId: communityPostCommentModel?.id ?? 0, page: page) { [weak self] (communityPostReplysModel) -> (Void) in
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostReplyApi(postId: communityPostCommentModel?.id ?? 0, page: page,completion: {
+            [weak self] (communityPostReplysModel) -> (Void) in
             let communityPostReplysModel = communityPostReplysModel as? CommunityPostReplysModel
-
+            
             if communityPostReplysModel?.pagination?.currentPage ?? 1  <= communityPostReplysModel?.pagination?.totalPages ?? 1 {
                 if communityPostReplysModel?.pagination?.currentPage == 1{
                     self?.communityPostReplyModels.removeAll()
@@ -115,14 +116,14 @@ extension CommunitySubCommentController {
                 }
                 self?.communityPostReplyModels = (self?.communityPostReplyModels)! + (communityPostReplysModel?.data!)!
                 self?.tableView.reloadData()
-                if  self?.communityPostReplyModels.count ?? 0 >= communityPostReplysModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
                 self?.navigationBar.title = "\(self?.communityPostReplyModels.count ?? 0)条评论"
-
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityPostReplysModel?.pagination?.currentPage, totalPages: communityPostReplysModel?.pagination?.totalPages)
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] loadingStauts in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     

+ 6 - 5
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoContent/View/CommunityAllCommentView.swift

@@ -253,7 +253,7 @@ extension CommunityAllCommentView {
     ///   - postId: 内容id
     ///   - page: 分页
     func communityPostCommentApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostCommentsApi(postId: postId ?? 0, page: page) {
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostCommentsApi(postId: postId ?? 0, page: page,completion: {
             [weak self] (communityPostCommentsModel) -> (Void) in
             let communityPostCommentsModel = communityPostCommentsModel as? CommunityPostCommentsModel
             self?.communityPostCommentsModel = communityPostCommentsModel
@@ -271,16 +271,17 @@ extension CommunityAllCommentView {
                 if self?.communityPostCommentsModel?.pagination?.currentPage == 1{
                     self?.communityPostCommentModels.removeAll()
                     self?.tableView.resetNoMoreData()
-
+                    
                 }
                 self?.communityPostCommentModels = (self?.communityPostCommentModels)! + (self?.communityPostCommentsModel?.data!)!
                 self?.tableView.reloadData()
-                if  self?.communityPostCommentModels.count ?? 0 >= self?.communityPostCommentsModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: self?.communityPostCommentsModel?.pagination?.currentPage, totalPages: self?.communityPostCommentsModel?.pagination?.totalPages)
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] loadingStaus in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     

+ 6 - 5
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoSubCommentController/CommunityVideoSubCommentController.swift

@@ -101,7 +101,8 @@ extension CommunityVideoSubCommentController {
     ///
     /// - Parameter page: 分页
     func communityPostReplyApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostReplyApi(postId: communityPostCommentModel?.id ?? 0, page: page) { [weak self] (communityPostReplysModel) -> (Void) in
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostReplyApi(postId: communityPostCommentModel?.id ?? 0, page: page,completion: {
+            [weak self] (communityPostReplysModel) -> (Void) in
             let communityPostReplysModel = communityPostReplysModel as? CommunityPostReplysModel
             
             if communityPostReplysModel?.pagination?.currentPage ?? 1  <= communityPostReplysModel?.pagination?.totalPages ?? 1 {
@@ -111,14 +112,14 @@ extension CommunityVideoSubCommentController {
                 }
                 self?.communityPostReplyModels = (self?.communityPostReplyModels)! + (communityPostReplysModel?.data!)!
                 self?.navigationBar.title = "\(communityPostReplysModel?.pagination?.total ?? 0)条评论"
-
                 self?.tableView.reloadData()
-                if  self?.communityPostReplyModels.count ?? 0 >= communityPostReplysModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityPostReplysModel?.pagination?.currentPage, totalPages: communityPostReplysModel?.pagination?.totalPages)
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] loadingStatus in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     

+ 6 - 1
RainbowPlanet/RainbowPlanet/Modules/MessageModule/MessageMain/ViewController/MessageMainViewController.swift

@@ -13,6 +13,7 @@ import ESTabBarController_swift
 class MessageMainViewController: BaseViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -79,11 +80,15 @@ extension MessageMainViewController {
     
     /// 用户消息首页
     func userMemberMessageIndexApi() {
-        SwiftMoyaNetWorkServiceUser.shared().userMemberMessageIndexApi {
+        SwiftMoyaNetWorkServiceUser.shared().userMemberMessageIndexApi(completion: {
             [weak self] (messageIndexModel) -> (Void) in
             self?.messageIndexModel = messageIndexModel as? MessageIndexModel
             self?.collectionView.reloadData()
             self?.setTabBarItemBadge()
+            MJRefreshManager.hiddenHeaderWithFooter(collectionView: self?.collectionView)
+        }) {
+            [weak self] loadingStauts in
+            MJRefreshManager.hiddenHeaderWithFooter(collectionView: self?.collectionView)
         }
     }
     

+ 1 - 0
RainbowPlanet/RainbowPlanet/Modules/MineModule/PersonalCenter/UserPersonalCenter/ViewController/UserPersonalCenterViewController.swift

@@ -15,6 +15,7 @@ import ESTabBarController_swift
 class UserPersonalCenterViewController: BaseViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }

+ 8 - 5
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishAddTopic/Controller/PublishAddTopicController.swift

@@ -238,26 +238,29 @@ extension PublishAddTopicController {
     ///
     /// - Parameter page: 分页
     func communityTopicsApi(isSuggest:Int, categoryId:Int, page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityTopicsApi(categoryId: categoryId, isSuggest: isSuggest, name: "", page: page) {
+        SwiftMoyaNetWorkServiceCommunity.shared().communityTopicsApi(categoryId: categoryId, isSuggest: isSuggest, page: page, completion: {
             [weak self] (communityTopicsModel) -> (Void) in
             let communityTopicsModel = communityTopicsModel as? CommunityTopicsModel
             if communityTopicsModel?.pagination?.currentPage ?? 1  <= communityTopicsModel?.pagination?.totalPages ?? 1 {
                 if communityTopicsModel?.pagination?.currentPage == 1{
                     self?.topicListModels.removeAll()
                     self?.tableView.resetNoMoreData()
-
+                    self?.tableView.isHiddenFooter(true)
                 }
                 self?.topicListModels = (self?.topicListModels)! + (communityTopicsModel?.data!)!
                 // 更新选中状态
                 self?.fixTopicSelectedStatus()
                 self?.tableView.reloadData()
-                if  self?.topicListModels.count ?? 0 >= communityTopicsModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: communityTopicsModel?.pagination?.currentPage, totalPages: communityTopicsModel?.pagination?.totalPages)
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
+            
         }
+
     }
     
     // 校正选中状态

+ 15 - 5
RainbowPlanet/RainbowPlanet/Modules/RedemptionAreaModule/ViewController/RedemptionAreaViewController.swift

@@ -12,6 +12,7 @@ import SwiftyMediator
 class RedemptionAreaViewController: BaseViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }
@@ -29,6 +30,7 @@ class RedemptionAreaViewController: BaseViewController {
     }
     
     override func setupViews() {
+        self.navigationBar.title = "兑换商城"
         view.addSubview(tableView)
         navigationBar.wr_setRightButton(image: kImage(name: "navbar_class_black")!)
     }
@@ -46,7 +48,7 @@ class RedemptionAreaViewController: BaseViewController {
     }()
     
     override func setupData() {
-        tableView.addHeader(withBeginRefresh: true, animation: false) {
+        tableView.addHeader(withBeginRefresh: true, animation: true) {
             [weak self] (page) in
             self?.cmsTemplateExchangeApi()
         }
@@ -71,11 +73,15 @@ extension RedemptionAreaViewController {
     
     /// 加载cms
     func cmsTemplateExchangeApi() {
-        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateExchangeApi {
+        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateExchangeApi(completion: {
             [weak self] (cmsRedemptionAreaModel) -> (Void) in
             self?.cmsRedemptionAreaModel = cmsRedemptionAreaModel as? CMSRedemptionAreaModel
             self?.navigationBar.title = self?.cmsRedemptionAreaModel?.title
             self?.tableView.reloadData()
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
+        }) {
+            [weak self] loadingStaus in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
     }
     
@@ -121,10 +127,14 @@ extension RedemptionAreaViewController : UITableViewDelegate, UITableViewDataSou
         let cmsRedemptionAreaContent = self.cmsRedemptionAreaModel?.content?[indexPath.section]
         switch cmsRedemptionAreaContent?.cmsRedemptionAreaContentType {
         case .banner?:
-            if cmsRedemptionAreaContent?.rule?.isEmpty ?? true {
-                return  105
+            if UserModel.isTokenNil() {
+                 return  (150 * kScaleWidth)
             }else {
-                return  (150 * kScaleWidth) + 105
+                if cmsRedemptionAreaContent?.rule?.isEmpty ?? true {
+                    return  105
+                }else {
+                    return  (150 * kScaleWidth) + 105
+                }
             }
         case .specialOne?:
             if cmsRedemptionAreaContent?.rule?.isEmpty ?? true {

+ 18 - 7
RainbowPlanet/RainbowPlanet/Modules/RegisterLoginModule/RegisterLogin/ViewController/RegisterLoginViewController.swift

@@ -14,12 +14,16 @@ class RegisterLoginViewController: BaseViewController {
         super.viewDidLoad()
         setupViews()
         setupLayouts()
+        setupData()
     }
 
     override func setupViews() {
+        navigationBar.wr_setRightButton(image: kImage(name: "common_order_close")!)
+        navigationBar.leftButton.isHidden = true
         view.backgroundColor = UIColor.white
-        navigationBar.isHidden = true
         view.addSubview(registerLoginView)
+        view.insertSubview(navigationBar, aboveSubview:registerLoginView)
+
     }
 
     override func setupLayouts() {
@@ -27,9 +31,12 @@ class RegisterLoginViewController: BaseViewController {
             make.edges.equalToSuperview()
         }
     }
-
-    private lazy var registerLoginView: RegisterLoginView = {
-        let registerLoginView = RegisterLoginView()
+    
+    override func setupData() {
+        navigationBar.onClickRightButton = {
+            [weak self] in
+            self?.navigationController?.dismiss(animated: true, completion: nil)
+        }
         // 微信注册登录
         registerLoginView.weiXinLoginBlock = { [weak self] in
             UMManager.shared.loginGetUserInfo(platformType: UMSocialPlatformType.wechatSession) { (userModel) -> (Void) in
@@ -50,15 +57,15 @@ class RegisterLoginViewController: BaseViewController {
                             kAppDelegate.setTabbarController()
                         }
                     }else {
-                        var userModel1 = UserModel()
+                        let userModel1 = UserModel()
                         userModel1.token = userModel.token
                         userModel1.accessToken = userModel.accessToken
                         userModel1.openId = userModel.openId
                         userModel1.unionId = userModel.unionId
                         UserModel.shared().setModel(model: userModel1)
-                        Mediator.push(RegisterLoginRouterModuleType.pushBindPhoneNumber(bindPhoneNumberVCType: .weixinlogin))                        
+                        Mediator.push(RegisterLoginRouterModuleType.pushBindPhoneNumber(bindPhoneNumberVCType: .weixinlogin))
                     }
-
+                    
                 })
             }
         }
@@ -66,6 +73,10 @@ class RegisterLoginViewController: BaseViewController {
             [weak self] in
             self?.navigationController?.pushViewController(MobileLoginViewController(), animated: true)
         }
+    }
+
+    private lazy var registerLoginView: RegisterLoginView = {
+        let registerLoginView = RegisterLoginView()
         return registerLoginView
     }()
 

+ 11 - 7
RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchContentList/ViewController/SearchContentListViewController.swift

@@ -48,11 +48,11 @@ class SearchContentListViewController: UIViewController {
     }
     
     func setupData() {
-        collectionView.addHeader(withBeginRefresh: true, animation: false) {
+        collectionView.addHeader(withBeginRefresh: true, animation: true) {
             [weak self] (page) in
             self?.communityPostsApi(page: page)
         }
-        collectionView.addFooter(withAutomaticallyRefresh: true) {
+        collectionView.addFooter(withAutomaticallyRefresh: false) {
             [weak self] (page) in
             self?.communityPostsApi(page: page)
         }
@@ -89,24 +89,28 @@ class SearchContentListViewController: UIViewController {
 
 extension SearchContentListViewController {
     func communityPostsApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityPostsApi(keyword: keyWord,page: page) {
+        SwiftMoyaNetWorkServiceCommunity.shared().communityPostsApi(keyword: keyWord, page: page, completion: {
             [weak self] (communityPostsModel) -> (Void) in
             let communityPostsModel = communityPostsModel as? CommunityPostsModel
             if communityPostsModel?.pagination?.currentPage ?? 1  <= communityPostsModel?.pagination?.totalPages ?? 1 {
                 if communityPostsModel?.pagination?.currentPage == 1{
                     self?.communityPostDataModels.removeAll()
                     self?.collectionView.resetNoMoreData()
-
                 }
                 self?.communityPostDataModels = (self?.communityPostDataModels)! + (communityPostsModel?.data!)!
+                if (self?.communityPostDataModels.isEmpty)! {
+                    self?.collectionView.isHiddenFooter(true)
+                }
                 self?.heightList()
+                MJRefreshManager.hiddenHeaderWithFooter(collectionView: self?.collectionView, currentPage: communityPostsModel?.pagination?.currentPage, totalPages: communityPostsModel?.pagination?.totalPages)
                 self?.collectionView.reloadData()
-                if  self?.communityPostDataModels.count ?? 0 >= communityPostsModel?.pagination?.total ?? 0 {
-                    self?.collectionView.endFooterNoMoreData()
-                }
+
             }else {
                 self?.collectionView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(collectionView: self?.collectionView)
         }
     }
     

+ 22 - 15
RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchTopicList/ViewController/SearchTopicListViewController.swift

@@ -9,7 +9,7 @@
 import UIKit
 import JXSegmentedView
 import SwiftyMediator
-class SearchTopicListViewController: UIViewController {
+class SearchTopicListViewController: BaseViewController {
 
     var keyWord : String = ""
     var communityTopicModels = Array<CommunityTopicDataModel>()
@@ -22,7 +22,8 @@ class SearchTopicListViewController: UIViewController {
         setupData()
     }
 
-    func setupViews() {
+    override func setupViews() {
+        navigationBar.isHidden = true
         view.backgroundColor = kf7f8faColor
         view.addSubview(tableView)
         let emptyView = DIYEmptyView.empty(with: kImage(name: "default_page_content"), titleStr: "没有找到相关,去看看别人都在看什么吧~", detailStr: nil)
@@ -31,7 +32,7 @@ class SearchTopicListViewController: UIViewController {
         tableView.ly_startLoading()
     }
     
-    func setupLayouts() {
+    override func setupLayouts() {
         tableView.snp.makeConstraints { (make) in
             make.top.equalTo(5)
             make.left.equalTo(0)
@@ -40,12 +41,12 @@ class SearchTopicListViewController: UIViewController {
         }
     }
     
-    func setupData() {
-        tableView.addHeader(withBeginRefresh: true, animation: false) {
+    override func setupData() {
+        tableView.addHeader(withBeginRefresh: true, animation: true) {
             [weak self] (page) in
             self?.communityTopicsApi(page: page)
         }
-        tableView.addFooter(withAutomaticallyRefresh: true) {
+        tableView.addFooter(withAutomaticallyRefresh: false) {
             [weak self] (page) in
             self?.communityTopicsApi(page: page)
         }
@@ -61,6 +62,9 @@ class SearchTopicListViewController: UIViewController {
         return tableView
     }()
     
+    var communityTopicsModel : CommunityTopicsModel?
+
+    
 }
 
 extension SearchTopicListViewController {
@@ -70,24 +74,27 @@ extension SearchTopicListViewController {
     ///
     /// - Parameter page: 分页
     func communityTopicsApi(page:Int) {
-        SwiftMoyaNetWorkServiceCommunity.shared().communityTopicsApi(name: keyWord, page: page) {
+        
+        SwiftMoyaNetWorkServiceCommunity.shared().communityTopicsApi(name: keyWord, page: page, completion: {
             [weak self] (communityTopicsModel) -> (Void) in
-            let communityTopicsModel = communityTopicsModel as? CommunityTopicsModel
-            if communityTopicsModel?.pagination?.currentPage ?? 1  <= communityTopicsModel?.pagination?.totalPages ?? 1 {
-                if communityTopicsModel?.pagination?.currentPage == 1{
+            self?.communityTopicsModel = communityTopicsModel as? CommunityTopicsModel
+            if self?.communityTopicsModel?.pagination?.currentPage ?? 1  <= self?.communityTopicsModel?.pagination?.totalPages ?? 1 {
+                if self?.communityTopicsModel?.pagination?.currentPage == 1{
                     self?.communityTopicModels.removeAll()
                     self?.tableView.resetNoMoreData()
-
                 }
-                self?.communityTopicModels = (self?.communityTopicModels)! + (communityTopicsModel?.data!)!
+                self?.communityTopicModels = (self?.communityTopicModels)! + (self?.communityTopicsModel?.data!)!
+                MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: self?.communityTopicsModel?.pagination?.currentPage, totalPages: self?.communityTopicsModel?.pagination?.totalPages)
                 self?.tableView.reloadData()
-                if  self?.communityTopicModels.count ?? 0 >= communityTopicsModel?.pagination?.total ?? 0 {
-                    self?.tableView.endFooterNoMoreData()
-                }
+
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
+        }) {
+            [weak self] (loadingStatus) in
+            MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView)
         }
+
     }
 }
 

+ 10 - 23
RainbowPlanet/RainbowPlanet/Modules/SearchModule/SearchUser/ViewController/SearchUserListViewController.swift

@@ -40,7 +40,9 @@ class SearchUserListViewController: BaseViewController {
     override func setupLayouts() {
         tableView.snp.makeConstraints { (make) in
             make.top.equalTo(5)
-            make.left.right.bottom.equalToSuperview()
+            make.left.equalTo(0)
+            make.right.equalTo(0)
+            make.bottom.equalTo(0)
         }
     }
     override func setupData() {
@@ -48,7 +50,7 @@ class SearchUserListViewController: BaseViewController {
             [weak self] (page) in
             self?.userMemberSearchMemberApi(page: page)
         }
-        tableView.addFooter(withAutomaticallyRefresh: true) {
+        tableView.addFooter(withAutomaticallyRefresh: false) {
             [weak self] (page) in
             self?.userMemberSearchMemberApi(page: page)
         }
@@ -75,9 +77,7 @@ class SearchUserListViewController: BaseViewController {
         tableView.rowHeight = 81
         tableView.dataSource = self
         tableView.delegate = self
-        tableView.estimatedRowHeight = 0
-        tableView.estimatedSectionFooterHeight = 0
-        tableView.estimatedSectionHeaderHeight = 0
+
         return tableView
     }()
     
@@ -98,8 +98,12 @@ extension SearchUserListViewController {
                     self?.tableView.resetNoMoreData()
                 }
                 self?.searchMemberModels = (self?.searchMemberModels)!  + (searchMemberListModel?.data)!
-                self?.tableView.reloadData()
+                if (self?.searchMemberModels.isEmpty)! {
+                    self?.tableView.isHiddenFooter(true)
+                }
                 MJRefreshManager.hiddenHeaderWithFooter(tableView: self?.tableView, currentPage: searchMemberListModel?.pagination?.currentPage, totalPages: searchMemberListModel?.pagination?.totalPages)
+                self?.tableView.reloadData()
+
             }else {
                 self?.tableView.endFooterNoMoreData()
             }
@@ -165,23 +169,6 @@ extension SearchUserListViewController :UITableViewDataSource,UITableViewDelegat
         NotificationCenter.default.post(name: NSNotification.Name("OtherPersonalCenter"), object: searchMemberModel.uid)
 
     }
-    
-    
-    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
-        return 0.000001
-    }
-    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
-        return 0.000001
-    }
-
-    
-    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
-        return nil
-    }
-    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
-        return nil
-    }
-    
 }
 
 extension SearchUserListViewController : JXSegmentedListContainerViewListDelegate {

+ 1 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/ViewController/ShoppingMallViewController.swift

@@ -11,6 +11,7 @@ import UIKit
 class ShoppingMallViewController: BaseViewController {
     
     deinit {
+        NXLLog("deinit")
         if observe != nil {
             NotificationCenter.default.removeObserver(observe!)
         }

+ 5 - 0
RainbowPlanet/RainbowPlanet/Router/MineRouterModuleType.swift

@@ -15,6 +15,8 @@ import SwiftyMediator
 /// - pushOtherPersonalCenter: 他人个人中心
 public enum MineRouterModuleType: MediatorTargetType {
     case pushOtherPersonalCenter(uid:Int)
+    case pushAccountSecurity
+    
 }
 
 extension MineRouterModuleType: MediatorSourceType {
@@ -24,6 +26,9 @@ extension MineRouterModuleType: MediatorSourceType {
             let vc = OtherPersonalCenterViewController()
             vc.uid = uid
             return vc
+        case .pushAccountSecurity:
+            let vc = AccountSecurityViewController()
+            return vc
         }
     }
 }

+ 5 - 0
RainbowPlanet/RainbowPlanet/Router/RegisterLoginRouterModuleType.swift

@@ -15,6 +15,7 @@ import SwiftyMediator
 /// - pushBindPhoneNumber: 绑定手机号
 public enum RegisterLoginRouterModuleType: MediatorTargetType {
     case pushBindPhoneNumber(bindPhoneNumberVCType:BindPhoneNumberVCType)
+    case presentRegisterLogin
 }
 
 extension RegisterLoginRouterModuleType: MediatorSourceType {
@@ -24,6 +25,10 @@ extension RegisterLoginRouterModuleType: MediatorSourceType {
             let vc = BindPhoneNumberViewController()
             vc.bindPhoneNumberVCType = bindPhoneNumberVCType
             return vc
+        case .presentRegisterLogin:
+            let vc = RegisterLoginViewController()
+            let navc = BaseNavigationViewController(rootViewController: vc)
+            return navc
         }
     }
 }

+ 4 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCMS/SwiftMoyaNetWorkServiceCMS.swift

@@ -79,7 +79,7 @@ class SwiftMoyaNetWorkServiceCMS: NSObject {
     /// - Parameters:
     ///   - take_count: take_count
     ///   - completion: completion description
-    func cmsMemberListApi(takeCount:Int = 0,completion: @escaping successCallBack) {
+    func cmsMemberListApi(takeCount:Int = 0,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
 
         parameters.updateValue(takeCount, forKey: "take_count")
@@ -90,6 +90,7 @@ class SwiftMoyaNetWorkServiceCMS: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -97,7 +98,7 @@ class SwiftMoyaNetWorkServiceCMS: NSObject {
     ///
     /// - Parameters:
     ///   - completion: 回调
-    func cmsTemplateExchangeApi(completion: @escaping successCallBack) {
+    func cmsTemplateExchangeApi(completion: @escaping successCallBack,fail: @escaping failCallback) {
         let parameters = Dictionary<String,Any>()
         SwiftMoyaNetWorkManager.shared.requestObject(CMSRedemptionAreaModel.self,target: MultiTarget(SwiftMoyaServiceCMSApi.cmsTemplateExchange(parameters: parameters))) {
             (cmsRedemptionAreaModel) in
@@ -105,6 +106,7 @@ class SwiftMoyaNetWorkServiceCMS: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
 }

+ 12 - 6
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceCommunity/SwiftMoyaNetWorkServiceCommunity.swift

@@ -84,7 +84,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     ///   - name: 关键字
     ///   - page: 分页
     ///   - completion: 回调
-    func communityTopicsApi(categoryId:Int = 0, isSuggest:Int = 0,name:String = "",page:Int = 1,completion: @escaping successCallBack) {
+    func communityTopicsApi(categoryId:Int = 0, isSuggest:Int = 0,name:String = "",page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(isSuggest, forKey: "is_suggest")
         parameters.updateValue(categoryId, forKey: "category_id")
@@ -97,6 +97,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -107,7 +108,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     ///   - keyword: 关键字搜索:标题,内容
     ///   - page: 分页
     ///   - completion: 回调
-    func communityPostsApi(keyword:String = "",topicIds : String = "",page:Int = 1,completion: @escaping successCallBack) {
+    func communityPostsApi(keyword:String = "",topicIds : String = "",page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(keyword, forKey: "keyword")
         parameters.updateValue(topicIds, forKey: "topic_ids")
@@ -119,6 +120,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -326,7 +328,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     /// - Parameters:
     ///   - page: 多关注页面feed流
     ///   - completion: 回调
-    func communityFollowFeedApi(page:Int = 1,completion: @escaping successCallBack) {
+    func communityFollowFeedApi(page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(page, forKey: "page")
         SwiftMoyaNetWorkManager.shared.requestObject(CommunityFollowFeedModel.self, target: MultiTarget(SwiftMoyaServiceCommunityApi.communityFollowFeed(parameters: parameters))) {  (communityFollowFeedModel) in
@@ -335,6 +337,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -345,7 +348,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     /// - Parameters:
     ///   - page: 多关注页面feed流
     ///   - completion: completion description
-    func communityPostSuggestApi(page:Int = 1,completion: @escaping successCallBack) {
+    func communityPostSuggestApi(page:Int = 1,completion: @escaping successCallBack,fail:@escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(page, forKey: "page")
         
@@ -355,6 +358,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -485,7 +489,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     ///   - postId: 内容id
     ///   - page: 分页
     ///   - completion: 回调
-    func communityPostCommentsApi(postId:Int,page:Int = 1,completion: @escaping successCallBack) {
+    func communityPostCommentsApi(postId:Int,page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(postId, forKey: "post_id")
         parameters.updateValue(page, forKey: "page")
@@ -497,6 +501,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     
@@ -507,7 +512,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
     ///   - postId: 内容id
     ///   - page: 分页
     ///   - completion: 回调
-    func communityPostReplyApi(postId:Int,page:Int = 1,completion: @escaping successCallBack) {
+    func communityPostReplyApi(postId:Int,page:Int = 1,completion: @escaping successCallBack,fail: @escaping failCallback) {
         var parameters = Dictionary<String,Any>()
         parameters.updateValue(postId, forKey: "id")
         parameters.updateValue(page, forKey: "page")
@@ -518,6 +523,7 @@ public class SwiftMoyaNetWorkServiceCommunity: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     

+ 3 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceUser/SwiftMoyaNetWorkServiceUser.swift

@@ -128,7 +128,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
         let parameters = Dictionary<String,Any>()
         SwiftMoyaNetWorkManager.shared.requestAny(target: MultiTarget(SwiftMoyaServiceUserApi.userLogout(parameters: parameters))) { (data) in
             // 设置友盟别名
-            kAppDelegate.setLoginController()
+            kAppDelegate.setLoginOut()
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
@@ -738,7 +738,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
     /// 用户消息消息首页
     ///
     /// - Parameter completion: 回调
-    func userMemberMessageIndexApi(completion: @escaping successCallBack) {
+    func userMemberMessageIndexApi(completion: @escaping successCallBack,fail:@escaping failCallback) {
         let parameters = Dictionary<String,Any>()
         
         SwiftMoyaNetWorkManager.shared.requestObject(MessageIndexModel.self,target: MultiTarget(SwiftMoyaServiceUserApi.userMemberMessageIndex(parameters: parameters))) { (messageIndexModel) in
@@ -748,6 +748,7 @@ public class SwiftMoyaNetWorkServiceUser: NSObject {
         }
         SwiftMoyaNetWorkManager.shared.failCallback = {
             (loadingStatus) in
+            fail(loadingStatus)
         }
     }
     

+ 6 - 6
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/ApiMacro.swift

@@ -9,8 +9,8 @@
 import Foundation
 
 let kPersonalService = false
-let kDevelopSever = false
-let kBetaSever = true
+let kDevelopSever = true
+let kBetaSever = false
 let kProductSever = false
 
 // MARK: - 数据服务器
@@ -29,8 +29,8 @@ public func kApiDataPrefix() -> String {
 }
 
 let kVirusPersonalService = false
-let kVirusDevelopSever = false
-let kVirusBetaSever = true
+let kVirusDevelopSever = true
+let kVirusBetaSever = false
 let kVirusProductSever = false
 
 // MARK: - Virus
@@ -49,8 +49,8 @@ public func kApiVirusPrefix() -> String {
 }
 
 let kH5PersonalService = false
-let kH5DevelopSever = false
-let kH5BetaSever = true
+let kH5DevelopSever = true
+let kH5BetaSever = false
 let kH5ProductSever = false
 
 // MARK: - H5

+ 5 - 5
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceManger/SwiftMoyaNetWorkManager/SwiftMoyaNetWorkManager.swift

@@ -268,7 +268,7 @@ extension PrimitiveSequence where TraitType == SingleTrait, ElementType == Respo
                     return Single<RootModel?>.just(rootModel)
                 }else if response.statusCode == 401 {
                     self.log(response: response, json: json)
-                    kAppDelegate.setLoginController()
+                    kAppDelegate.setLoginOut()
                     return Single<RootModel?>.just(nil)
                 }else {
                     self.logError(response: response)
@@ -305,7 +305,7 @@ extension PrimitiveSequence where TraitType == SingleTrait, ElementType == Respo
                     }
                 }else if response.statusCode == 401 {
                     self.log(response: response, json: json)
-                    kAppDelegate.setLoginController()
+                    kAppDelegate.setLoginOut()
                     return Single<Any?>.just(nil)
                 }else {
                     self.logError(response: response)
@@ -343,7 +343,7 @@ extension PrimitiveSequence where TraitType == SingleTrait, ElementType == Respo
                     }
                 }else if response.statusCode == 401 {
                     self.log(response: response, json: json)
-                    kAppDelegate.setLoginController()
+                    kAppDelegate.setLoginOut()
                     return Single<[Any]?>.just(nil)
                 }else {
                     self.logError(response: response)
@@ -381,7 +381,7 @@ extension PrimitiveSequence where TraitType == SingleTrait, ElementType == Respo
                     }
                 }else if response.statusCode == 401 {
                     self.log(response: response, json: json)
-                    kAppDelegate.setLoginController()
+                    kAppDelegate.setLoginOut()
                     return Single<T?>.just(nil)
                 }else {
                     self.logError(response: response)
@@ -418,7 +418,7 @@ extension PrimitiveSequence where TraitType == SingleTrait, ElementType == Respo
                     }
                 }else if response.statusCode == 401 {
                     self.log(response: response, json: json)
-                    kAppDelegate.setLoginController()
+                    kAppDelegate.setLoginOut()
                     return Single<[T]?>.just(nil)
                 }else {
                     self.logError(response: response)

+ 24 - 0
RainbowPlanet/RainbowPlanet/Tools/WKWebView/WebView.swift

@@ -336,3 +336,27 @@ extension WebView: WKUIDelegate{
         target?.present(alert, animated: true, completion: nil)
     }
 }
+
+func removeWKWebViewCookies() {
+    
+    //iOS9.0以上使用的方法
+    if #available(iOS 9.0, *) {
+        let dataStore = WKWebsiteDataStore.default()
+        dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), completionHandler: { (records) in
+            for record in records{
+                //清除本站的cookie
+//                if record.displayName.contains("sina.com"){//这个判断注释掉的话是清理所有的cookie
+                    WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {
+                        //清除成功
+//                        NXLLog("清除成功\(record)")
+                    })
+//                }
+            }
+        })
+    } else {
+        //ios8.0以上使用的方法
+        let libraryPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first
+        let cookiesPath = libraryPath! + "/Cookies"
+        try!FileManager.default.removeItem(atPath: cookiesPath)
+    }
+}