Browse Source

详情页面模型转为productId,shopId

南鑫林 6 years ago
parent
commit
9feaaf389c

+ 4 - 2
RainbowPlanet/RainbowPlanet/Modules/CommonModules/SearchModule/SearchResult/ViewController/SearchResultViewController.swift

@@ -68,9 +68,11 @@ class SearchResultViewController: BaseViewController {
         
         searchResultView.didSelectRow = {
             [weak self] indexPath in
-            let vc = ProductDetailViewController()
             let productSearch = self?.productSearchModelArray[indexPath.row]
-            vc.productSearchModel = productSearch
+
+            let vc = ProductDetailViewController()
+            vc.productId = productSearch?.id
+            vc.shopId = productSearch?.shopId
             self?.navigationController?.pushViewController(vc, animated: true)
             
         }

+ 2 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartHotSale/ShoppingCartHotSaleTableViewCell.swift

@@ -172,7 +172,8 @@ extension ShoppingCartHotSaleTableViewCell: UICollectionViewDelegateFlowLayout,U
     func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
         let productSearchModel = hotSaleModelArr?[indexPath.row]
         let vc = ProductDetailViewController()
-        vc.productSearchModel = productSearchModel
+        vc.productId = productSearchModel?.id
+        vc.shopId = productSearchModel?.shopId
         getCurrentVC().navigationController?.pushViewController(vc, animated: true)
     }
     

+ 9 - 3
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartView.swift

@@ -10,6 +10,9 @@ import UIKit
 
 class ShoppingCartView: BaseView {
     
+    typealias ProductDidSelectRowAt = (ProductModel) -> Void
+    var productDidSelectRowAt : ProductDidSelectRowAt?
+    
     // 购物车列表ModelArr
     var cartListModelArr : Array<CartProductListModel>? {
         didSet {
@@ -222,15 +225,18 @@ extension ShoppingCartView : UITableViewDelegate, UITableViewDataSource {
     
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         if !(cartListModelArr?.isEmpty ?? true) {
+            //跳转商品详情
             if indexPath.section < cartListModelArr!.count {
-                let productMdl = cartListModelArr?[indexPath.section].productList?[indexPath.row]
+                let productMdl = (cartListModelArr?[indexPath.section].productList?[indexPath.row])!
+                
+                if let productDidSelectRowAt = productDidSelectRowAt {
+                    productDidSelectRowAt(productMdl)
+                }
 
             }
         }
     }
     
-    
-    
     func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
         if cartListModelArr?.count ?? 0 > 0 && section < cartListModelArr!.count {
             return 58

+ 13 - 5
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/ViewController/ShoppingCartViewController.swift

@@ -54,10 +54,7 @@ class ShoppingCartViewController: BaseViewController {
         shoppingCartView.tableView.addFooterWithWithHeader(withAutomaticallyRefresh: false) { [weak self] (page) in
             self?.productHotSaleApi(page: page)
         }
-    }
-    
-    private lazy var shoppingCartView: ShoppingCartView = {
-        let shoppingCartView = ShoppingCartView()
+        
         shoppingCartView.orderPayTransBlock = {
             [weak self] (selMdlArr, totalPrice) in
             let vc = ShoppingCartPayOrderController()
@@ -68,8 +65,19 @@ class ShoppingCartViewController: BaseViewController {
         }
         shoppingCartView.refreshTransBlock = {
             [weak self] in
-            self?.productCartListApi()            
+            self?.productCartListApi()
         }
+        shoppingCartView.productDidSelectRowAt = {
+            [weak self] (productModel) in
+            let vc = ProductDetailViewController()
+            vc.productId = productModel.productId
+            vc.shopId = productModel.shopId
+            self?.navigationController?.pushViewController(vc, animated: true)
+        }
+    }
+    
+    private lazy var shoppingCartView: ShoppingCartView = {
+        let shoppingCartView = ShoppingCartView()
         return shoppingCartView
     }()
     

+ 2 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Category/ViewController/CategoryViewController.swift

@@ -84,7 +84,8 @@ class CategoryViewController: BaseViewController {
              [weak self] indexPath in
             let vc = ProductDetailViewController()
             let productSearch = self?.productSearchModelArray[indexPath.row]
-            vc.productSearchModel = productSearch
+            vc.productId = productSearch?.id
+            vc.shopId = productSearch?.shopId
             self?.navigationController?.pushViewController(vc, animated: true)
             
         }

+ 21 - 39
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductAllComment/ViewController/ProductAllCommentViewController.swift

@@ -10,9 +10,9 @@ import UIKit
 
 class ProductAllCommentViewController: BaseViewController {
     
-    var productModel : ProductModel?
     
-    var productSearchModel : ProductSearchModel?
+    /// 商品Id
+    var productId : Int = 0
     
     var productAllCommentArray = Array<ProductCommentModel>()
     
@@ -35,6 +35,11 @@ class ProductAllCommentViewController: BaseViewController {
         }
     }
     
+    private lazy var productAllCommentView: ProductAllCommentView = {
+        let productAllCommentView = ProductAllCommentView()
+        return productAllCommentView
+    }()
+    
     override func setupData() {
         productAllCommentView.tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) { [weak self] (page) in
             self?.productCommentListApi(page:page)
@@ -44,46 +49,23 @@ class ProductAllCommentViewController: BaseViewController {
         }
     }
     
-    private lazy var productAllCommentView: ProductAllCommentView = {
-        let productAllCommentView = ProductAllCommentView()
-        return productAllCommentView
-    }()
-    
+    /// 获取商品评价列表
+    ///
+    /// - Parameter page: 分页
     func productCommentListApi(page:Int = 1) {
-        if self.productModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(page:page,productId: productModel?.id ?? 0) {
-                [weak self] (productCommentListModel) -> (Void) in
-                let productCommentListModel = productCommentListModel as? ProductCommentListModel
-                if productCommentListModel?.pagination?.currentPage ?? 1  <= productCommentListModel?.pagination?.totalPages ?? 1 {
-                    if productCommentListModel?.pagination?.currentPage == 1{
-                        self?.productAllCommentArray.removeAll()
-                        self?.productAllCommentView.tableView.resetNoMoreData()
-                    }
-                    self?.productAllCommentArray = (self?.productAllCommentArray)! + (productCommentListModel?.data!)!
-                    self?.productAllCommentView.productAllCommentArray = self?.productAllCommentArray
-                }else {
-                    self?.productAllCommentView.tableView.endFooterNoMoreData()
+        SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(page:page,productId: productId ) {
+            [weak self] (productCommentListModel) -> (Void) in
+            let productCommentListModel = productCommentListModel as? ProductCommentListModel
+            if productCommentListModel?.pagination?.currentPage ?? 1  <= productCommentListModel?.pagination?.totalPages ?? 1 {
+                if productCommentListModel?.pagination?.currentPage == 1{
+                    self?.productAllCommentArray.removeAll()
+                    self?.productAllCommentView.tableView.resetNoMoreData()
                 }
-                
-            }
-        }
-        
-        if self.productSearchModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(page:page,productId: productSearchModel?.id ?? 0) { [weak self] (productCommentListModel) -> (Void) in
-                let productCommentListModel = productCommentListModel as? ProductCommentListModel
-                if productCommentListModel?.pagination?.currentPage ?? 1  <= productCommentListModel?.pagination?.totalPages ?? 1 {
-                    if productCommentListModel?.pagination?.currentPage == 1{
-                        self?.productAllCommentArray.removeAll()
-                        self?.productAllCommentView.tableView.resetNoMoreData()
-                    }
-                    self?.productAllCommentArray = (self?.productAllCommentArray)! + (productCommentListModel?.data!)!
-                    self?.productAllCommentView.productAllCommentArray = self?.productAllCommentArray
-                }else {
-                    self?.productAllCommentView.tableView.endFooterNoMoreData()
-                }
-                
+                self?.productAllCommentArray = (self?.productAllCommentArray)! + (productCommentListModel?.data!)!
+                self?.productAllCommentView.productAllCommentArray = self?.productAllCommentArray
+            }else {
+                self?.productAllCommentView.tableView.endFooterNoMoreData()
             }
         }
     }
-
 }

+ 3 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/Cell/ProductDetailHotSell/ProductDetailHotSellTableViewCell.swift

@@ -110,8 +110,10 @@ extension ProductDetailHotSellTableViewCell: UICollectionViewDelegateFlowLayout,
     }
     
     func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        let productSearchModel = productSearchListModel?.data?[indexPath.row]
         let vc = ProductDetailViewController()
-        vc.productSearchModel = productSearchListModel?.data?[indexPath.row]
+        vc.productId = productSearchModel?.id
+        vc.shopId = productSearchModel?.shopId
         getCurrentVC().navigationController?.pushViewController(vc, animated: true)
         
     }

+ 3 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/View/ProductDetailView.swift

@@ -43,7 +43,7 @@ class ProductDetailView: BaseView {
             tableView.ly_startLoading()
             tableView.reloadData()
             if productDetailModel != nil {
-                
+                bottomBgView.isHidden = false
                 if productDetailModel?.commentNumber != 0 && productDetailModel?.commentNumber != nil {
                     titles[2] = "商品评价" + "(" + "\(productDetailModel?.commentNumber ?? 0)" + ")"
                     
@@ -55,6 +55,8 @@ class ProductDetailView: BaseView {
                     tableView.tableHeaderView = productDetailTableViewHeaderView
                     productDetailTableViewHeaderView.productDetailModel = productDetailModel
                 }
+            }else {
+                bottomBgView.isHidden = true
             }
         }
     }

+ 18 - 53
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ProductDetail/ViewController/ProductDetailViewController.swift

@@ -18,9 +18,10 @@ class ProductDetailViewController: BaseViewController {
     }
     weak var observe : NSObjectProtocol?
     
-    var productModel : ProductModel?
-    
-    var productSearchModel : ProductSearchModel?
+    /// 商品Id
+    var productId : Int?
+    /// 店铺Id
+    var shopId : Int?
     
     var productDetailModel : ProductDetailModel?
 
@@ -81,12 +82,7 @@ class ProductDetailViewController: BaseViewController {
         productDetailView.lookAllCommentClosure = {
             [weak self] in
             let vc = ProductAllCommentViewController()
-            if self?.productModel != nil {
-                vc.productModel = self?.productModel
-            }
-            if self?.productSearchModel != nil {
-                vc.productSearchModel = self?.productSearchModel
-            }
+            vc.productId = self?.productId ?? 0
             self?.navigationController?.pushViewController(vc, animated: true)
         }
         productDetailView.addCartClosure = {
@@ -126,61 +122,30 @@ class ProductDetailViewController: BaseViewController {
     
     /// 获取商品详情
     private func productDetailApi() {
-        if self.productModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productDetailApi(id: self.productModel?.id ?? 0) {
-                [weak self] (productDetailModel) -> (Void) in
-                self?.productDetailModel = productDetailModel as? ProductDetailModel
-                self?.productDetailView.productDetailModel = productDetailModel as? ProductDetailModel
-            }
-        }
-        
-        if self.productSearchModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productDetailApi(id: self.productSearchModel?.id ?? 0) {
-                [weak self] (productDetailModel) -> (Void) in
-                self?.productDetailModel = productDetailModel as? ProductDetailModel
-                self?.productDetailView.productDetailModel = productDetailModel as? ProductDetailModel
-            }
+        SwiftMoyaNetWorkServiceProduct.shared().productDetailApi(id: productId ?? 0) {
+            [weak self] (productDetailModel) -> (Void) in
+            self?.productDetailModel = productDetailModel as? ProductDetailModel
+            self?.productDetailView.productDetailModel = productDetailModel as? ProductDetailModel
         }
     }
     
     /// 获取商家商品列表
     private func productListApi() {
-        
-        if self.productModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productListApi(page: 1, shopId: productSearchModel?.shopId ?? 0,desc: 2, fieldOrder: 1) {
-                [weak self] (productListModel) -> (Void) in
-                let productSearchListModel = productListModel as? ProductSearchListModel
-                self?.productDetailView.productSearchListModel = productSearchListModel
-            }
-        }
-        
-        if self.productSearchModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productListApi(page: 1, shopId: productSearchModel?.shopId ?? 0,desc: 2, fieldOrder: 1) {
-                [weak self] (productListModel) -> (Void) in
-                let productSearchListModel = productListModel as? ProductSearchListModel
-                self?.productDetailView.productSearchListModel = productSearchListModel
-            }
+        SwiftMoyaNetWorkServiceProduct.shared().productListApi(page: 1, shopId: productId ?? 0,desc: 2, fieldOrder: 1) {
+            [weak self] (productListModel) -> (Void) in
+            let productSearchListModel = productListModel as? ProductSearchListModel
+            self?.productDetailView.productSearchListModel = productSearchListModel
         }
     }
     
     
     /// 获取评价列表
     func productCommentListApi() {
-        if self.productModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(productId: productModel?.id ?? 0) {
-                [weak self] (productCommentListModel) -> (Void) in
-                let productCommentListModel = productCommentListModel as? ProductCommentListModel
-                self?.productDetailView.productCommentListModel = productCommentListModel
-
-            }
-        }
-        
-        if self.productSearchModel != nil {
-            SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(productId: productSearchModel?.id ?? 0) { [weak self] (productCommentListModel) -> (Void) in
-                    let productCommentListModel = productCommentListModel as? ProductCommentListModel
-                self?.productDetailView.productCommentListModel = productCommentListModel
-
-            }
+        SwiftMoyaNetWorkServiceProduct.shared().productCommentListApi(productId: productId ?? 0) {
+            [weak self] (productCommentListModel) -> (Void) in
+            let productCommentListModel = productCommentListModel as? ProductCommentListModel
+            self?.productDetailView.productCommentListModel = productCommentListModel
+            
         }
     }
     

+ 2 - 1
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/Shop/ViewController/ShopViewController.swift

@@ -65,7 +65,8 @@ class ShopViewController: BaseViewController {
             [weak self] indexPath in
             let vc = ProductDetailViewController()
             let productSearch = self?.productSearchModelArray[indexPath.row]
-            vc.productSearchModel = productSearch
+            vc.productId = productSearch?.id
+            vc.shopId = productSearch?.shopId
             self?.navigationController?.pushViewController(vc, animated: true)
         }
        

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

@@ -44,7 +44,8 @@ class ShoppingMallViewController: BaseViewController {
         observe = NotificationCenter.default.addObserver(forName: NSNotification.Name("ProductDetailVC"), object: nil, queue: OperationQueue.main) {[weak self] (notification) in
             let productModel = notification.object as! ProductModel
             let vc = ProductDetailViewController()
-            vc.productModel = productModel
+            vc.productId = productModel.id
+            vc.shopId = productModel.shopId
             self?.navigationController?.pushViewController(vc, animated: true)
         }