Ver código fonte

Merge branch 'develop' into feature/nanxinlin

* develop:
  创建订单Fixed
  创建订单

# Conflicts:
#	RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
#	RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceOrder/SwiftMoyaNetWorkServiceOrder.swift
南鑫林 6 anos atrás
pai
commit
a1b64f8f04

+ 8 - 0
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -307,6 +307,8 @@
 		BD1DC6C5228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C3228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift */; };
 		BD1DC6C6228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C4228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift */; };
 		BD1DC6C9228D005000B89C57 /* OrderCreateParameterModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */; };
+		BD1DC6CB228D157000B89C57 /* OrderCreateBackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6CA228D157000B89C57 /* OrderCreateBackModel.swift */; };
+		BD1DC6CD228D160D00B89C57 /* OrderPurchaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD1DC6CC228D160D00B89C57 /* OrderPurchaseModel.swift */; };
 		BD20F1CB2283C12000677D8E /* ShoppingCartListNoneItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */; };
 		BD20F1CD2283C51300677D8E /* ShoppingCartFinishPayController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */; };
 		BD20F1CF2283CE2300677D8E /* ShoppingCartFinishPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */; };
@@ -671,6 +673,8 @@
 		BD1DC6C3228CFD0B00B89C57 /* SwiftMoyaNetWorkServiceOrder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftMoyaNetWorkServiceOrder.swift; sourceTree = "<group>"; };
 		BD1DC6C4228CFD0B00B89C57 /* SwiftMoyaServiceOrderApi.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftMoyaServiceOrderApi.swift; sourceTree = "<group>"; };
 		BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderCreateParameterModel.swift; sourceTree = "<group>"; };
+		BD1DC6CA228D157000B89C57 /* OrderCreateBackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderCreateBackModel.swift; sourceTree = "<group>"; };
+		BD1DC6CC228D160D00B89C57 /* OrderPurchaseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPurchaseModel.swift; sourceTree = "<group>"; };
 		BD20F1CA2283C12000677D8E /* ShoppingCartListNoneItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListNoneItemCell.swift; sourceTree = "<group>"; };
 		BD20F1CC2283C51300677D8E /* ShoppingCartFinishPayController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayController.swift; sourceTree = "<group>"; };
 		BD20F1CE2283CE2300677D8E /* ShoppingCartFinishPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartFinishPayView.swift; sourceTree = "<group>"; };
@@ -2705,6 +2709,8 @@
 			children = (
 				BD1DC6C8228D005000B89C57 /* OrderCreateParameterModel.swift */,
 				A7FF1597228D092A00A85748 /* OrderListModel.swift */,
+				BD1DC6CA228D157000B89C57 /* OrderCreateBackModel.swift */,
+				BD1DC6CC228D160D00B89C57 /* OrderPurchaseModel.swift */,
 			);
 			path = OrderModel;
 			sourceTree = "<group>";
@@ -3232,6 +3238,7 @@
 				A72A72D522321E2700B21995 /* ColorMacro.swift in Sources */,
 				A72A7333223256E100B21995 /* PayManager.swift in Sources */,
 				A70B2C6722887B2B00B2449F /* ProductDetailEvaluationListTableViewCell.swift in Sources */,
+				BD1DC6CD228D160D00B89C57 /* OrderPurchaseModel.swift in Sources */,
 				A775CC00223774A300EBDCF8 /* ShoppingMallView.swift in Sources */,
 				A7FF1555228AC27600A85748 /* ProductAllCommentView.swift in Sources */,
 				A7CC7526227196A8003C4F38 /* AccountSecurityTableViewCell.swift in Sources */,
@@ -3306,6 +3313,7 @@
 				A7636AC822682BAF00374F9E /* LocationView.swift in Sources */,
 				A738D205225AF90D00EEE860 /* WeChatpayOrderModel.swift in Sources */,
 				A7CC7524227190FB003C4F38 /* AccountSecurityView.swift in Sources */,
+				BD1DC6CB228D157000B89C57 /* OrderCreateBackModel.swift in Sources */,
 				A72A72BD22321DE000B21995 /* Extension+UIColor.swift in Sources */,
 				A7FF1596228CFA8100A85748 /* OrderListViewController.swift in Sources */,
 				A7A98E05227EB891005306E9 /* CategoryViewController.swift in Sources */,

+ 14 - 5
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartFinishPay/View/ShoppingCartFinishPayView.swift

@@ -10,6 +10,13 @@ import UIKit
 
 class ShoppingCartFinishPayView: BaseView {
     
+    // 热销ModelArr
+    var hotSaleModelArr : Array<ProductSearchModel>? {
+        didSet {
+            self.tableView.reloadSections([1], with: UITableView.RowAnimation.none)
+        }
+    }
+    
     override func setupViews() {
         self.backgroundColor = kf7f8faColor
         addSubview(tableView)
@@ -57,11 +64,13 @@ extension ShoppingCartFinishPayView : UITableViewDelegate, UITableViewDataSource
 //            let cell = ShoppingCartPayFailureCell.cellWith(tableView: tableView, indexPath: indexPath)
             return cell
         case 1:
-            let cell = ShoppingCartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
-            cell.frame = tableView.bounds
-            cell.layoutIfNeeded()
-            cell.reloadData()
-            return cell
+            // 超值热卖
+            let hotSaleCell = ShoppingCartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            hotSaleCell.frame = tableView.bounds
+            hotSaleCell.hotSaleModelArr = hotSaleModelArr
+            hotSaleCell.layoutIfNeeded()
+            hotSaleCell.reloadData()
+            return hotSaleCell
             
         default:
             return UITableViewCell()

+ 29 - 7
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartFinishPay/ViewController/ShoppingCartFinishPayController.swift

@@ -11,6 +11,8 @@ import RxSwift
 
 class ShoppingCartFinishPayController: BaseViewController {
     
+    var productSearchModelArray = Array<ProductSearchModel>()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         setupViews()
@@ -20,7 +22,7 @@ class ShoppingCartFinishPayController: BaseViewController {
     
     override func setupViews() {
         navigationBar.title = "支付成功"
-        
+        self.setFinishPayView()
     }
     
     override func setupLayouts() {
@@ -28,12 +30,14 @@ class ShoppingCartFinishPayController: BaseViewController {
     }
     
     override func setupData() {
-        //TODO:获取热销列表
-        //        SwiftMoyaNetWorkServiceCMS.shared().cmsTemplateSetTemplateNameApi {
-        //            [weak self] (data) -> (Void) in
-        //            self?.setShoppingCartView()
-        self.setFinishPayView()
-        //        }
+        
+        finishPayView.tableView.addHeaderWithHeader(withBeginRefresh: true, animation: false) { [weak self] (page) in
+            self?.productHotSaleApi(page: page)
+        }
+        
+        finishPayView.tableView.addFooterWithWithHeader(withAutomaticallyRefresh: false) { [weak self] (page) in
+            self?.productHotSaleApi(page: page)
+        }
     }
     
     /// 添加view
@@ -50,4 +54,22 @@ class ShoppingCartFinishPayController: BaseViewController {
         return finishPayView
     }()
     
+    /// 商品热销
+    func productHotSaleApi(page:Int = 1) {
+        SwiftMoyaNetWorkServiceProduct.shared().productHotSaleApi(page: page) { [weak self] (productSearchListModel) -> (Void) in
+            let productSearchListModel = productSearchListModel as? ProductSearchListModel
+            if productSearchListModel?.pagination?.currentPage ?? 1  <= productSearchListModel?.pagination?.totalPages ?? 1 {
+                if productSearchListModel?.pagination?.currentPage == 1{
+                    self?.productSearchModelArray.removeAll()
+                }
+                self?.productSearchModelArray = (self?.productSearchModelArray)! + (productSearchListModel?.data!)!
+                
+                self?.finishPayView.hotSaleModelArr = self?.productSearchModelArray
+                
+            } else {
+                self?.finishPayView.hotSaleModelArr = self?.productSearchModelArray
+            }
+        }
+    }
+    
 }

+ 12 - 13
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartPayOrder/View/ShoppingCartOrderPayView.swift

@@ -73,33 +73,32 @@ class ShoppingCartOrderPayView: BaseView {
         let accountView = OrderPayAcountView()
         accountView.commitOrderBlock = {
             [weak self] in
-//            if let commitOrderTransBlock = self?.commitOrderTransBlock {
-//                commitOrderTransBlock()
-//            }
-            
-            print("------点击提交订单--payView")
-            print(self?.expressAddressMdl as! ExpressAddresModel)
-            print(self?.selfAddressInfoMdl as Any)
-            
             let paraMdl = OrderCreateParameterModel()
-            paraMdl.money = self!.totalProductPrice * 100
+            paraMdl.money = self!.totalProductPrice
+            paraMdl.selShopListArr = self?.proListModelArr
             switch self?.deliverType {
             case "1":
                 // 自提
                 paraMdl.name = self?.selfAddressInfoMdl?.name
                 paraMdl.mobile = Int(self?.selfAddressInfoMdl?.mobile ?? "")
                 paraMdl.address = ""
+                // FIXME:待填充
                 paraMdl.pickNodeId = 0
-//                paraMdl.
-                
+                paraMdl.pickNodeContact = ""
             case "2":
                 // 快递
-                return
+                paraMdl.name = self?.expressAddressMdl?.contactName
+                paraMdl.mobile = Int(self?.expressAddressMdl?.contactMobile ?? "")
+                paraMdl.address = self?.expressAddressMdl?.address
+                paraMdl.pickNodeId = 0
+                paraMdl.pickNodeContact = ""
             default:
                 return
             }
             
-
+            if let commitOrderTransBlock = self?.commitOrderTransBlock {
+                commitOrderTransBlock(paraMdl)
+            }
             
         }
         return accountView

+ 12 - 5
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCartPayOrder/ViewController/ShoppingCartPayOrderController.swift

@@ -74,10 +74,7 @@ class ShoppingCartPayOrderController: BaseViewController {
         orderPayView.totalProductPrice = self.totalProductPrice!
         orderPayView.commitOrderTransBlock = {
             [weak self] (paraMdl) in
-            // 支付弹窗调用
-            AlertSheetView.payAlertSheetView {
-                
-            }
+            self?.orderCreateApi(paraMdl: paraMdl)            
         }
         orderPayView.jumpNavBlock = {
             [weak self] (jumpType) in
@@ -92,7 +89,6 @@ class ShoppingCartPayOrderController: BaseViewController {
                 let vc = EditSelfMentionContactsViewController()
                 self?.navigationController?.pushViewController(vc, animated: true)
             case WillJumpType.selfPersonalInfo:
-                print("------自提个人信息")
                 let vc = SelfMentionContactsListViewController()
                 self?.navigationController?.pushViewController(vc, animated: true)
             case WillJumpType.selfAddressInfo:                
@@ -118,4 +114,15 @@ class ShoppingCartPayOrderController: BaseViewController {
         }        
     }
     
+    // 创建订单
+    func orderCreateApi(paraMdl: OrderCreateParameterModel) {
+        SwiftMoyaNetWorkServiceOrder.shared().orderCreateApi(paraMdl: paraMdl) { (data) -> (Void) in
+            
+            // 支付弹窗调用
+            AlertSheetView.payAlertSheetView {
+                
+            }
+        }
+    }
+    
 }

+ 33 - 0
RainbowPlanet/RainbowPlanet/Service/Model/OrderModel/OrderCreateBackModel.swift

@@ -0,0 +1,33 @@
+//
+//  OrderCreateBackModel.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import Foundation
+import ObjectMapper
+
+class OrderCreateBackModel : NSObject, Mappable{
+    
+    var money : String?
+    var patchNum : String?
+    var purchases : [OrderPurchaseModel]?
+    
+    
+    class func newInstance(map: Map) -> Mappable?{
+        return OrderCreateBackModel()
+    }
+    required init?(map: Map){}
+    private override init(){}
+    
+    func mapping(map: Map)
+    {
+        money <- map["money"]
+        patchNum <- map["patch_num"]
+        purchases <- map["purchases"]
+        
+    }
+    
+}

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/Model/OrderModel/OrderCreateParameterModel.swift

@@ -17,6 +17,6 @@ class OrderCreateParameterModel : NSObject{
     var pickNodeId : Int?
     var pickNodeContact : String?
     var money : Int?
-    var selProductListMdlArr : Array<CartProductListModel>?
+    var selShopListArr : Array<CartProductListModel>?
 }
 

+ 32 - 0
RainbowPlanet/RainbowPlanet/Service/Model/OrderModel/OrderPurchaseModel.swift

@@ -0,0 +1,32 @@
+//
+//  OrderPurchaseModel.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import Foundation
+import ObjectMapper
+
+
+class OrderPurchaseModel : NSObject, Mappable{
+    
+    var id : Int?
+    var purchaseNo : String?
+    
+    
+    class func newInstance(map: Map) -> Mappable?{
+        return OrderPurchaseModel()
+    }
+    required init?(map: Map){}
+    private override init(){}
+    
+    func mapping(map: Map)
+    {
+        id <- map["id"]
+        purchaseNo <- map["purchase_no"]
+        
+    }
+    
+}

+ 29 - 79
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServiceOrder/SwiftMoyaNetWorkServiceOrder.swift

@@ -27,23 +27,9 @@ class SwiftMoyaNetWorkServiceOrder: NSObject {
     ///
     /// - Parameters:
     ///   - completion: 回调
-    func orderCreateApi(name:String  = "", mobile:Int = 0, address:String = "", pickId:Int = 0, pickContact:String = "", money:Int = 0, proListMdlArr: Array<CartProductListModel>, completion: @escaping apiCallBack) {
-        
-        
-        
-        
-        
-//        name    是    string    收货人
-//        mobile    是    int    电话
-//        address    是    string    收货地址
-//        pick_node_id    否    int    自提点id
-//        pick_node_contact    否    string    自提点店长
-//        money    是    int    支付总金额(分)
-        
+    func orderCreateApi(paraMdl:OrderCreateParameterModel, completion: @escaping apiCallBack) {
         var parameters = Dictionary<String,Any>()
         
-        
-        
         // 本地获取city_id/city_name
         let loacationModel = LocationModel.shared().getLocationModel()
         let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
@@ -54,75 +40,39 @@ class SwiftMoyaNetWorkServiceOrder: NSObject {
         let deliver_type = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
         parameters.updateValue(deliver_type ?? 0, forKey: "deliver_type")
         
-        SwiftProgressHUD.shared().showWait()
-        SwiftMoyaNetWorkManager.shared().request(CartAmountModel.self,target: MultiTarget(SwiftMoyaServiceProductApi.productCartAdd(parameters: parameters))) { (cartAmountModel) in
-            SwiftProgressHUD.shared().hide()
-            completion(cartAmountModel)
-        }
-    }
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    // MARK: - 搜索、列表
-    /// 搜索、列表
-    ///
-    /// - Parameters:
-    ///   - keyword: 关键字:商品名称、子标题、规格
-    ///   - category_id: 一级分类id
-    ///   - field_order: 1销量 2价格
-    ///   - desc: 排序方式:1 desc倒序、2 asc正序
-    ///   - completion: 回调
-    func productListApi(page:Int = 1,shopId:Int  = 0, keyword:String = "",categoryId:Int = 0,desc:Int = 0,fieldOrder:Int = 0,completion: @escaping apiCallBack) {
-        var parameters = Dictionary<String,Any>()
-        // 本地获取city_id
-        let loacationModel = LocationModel.shared().getLocationModel()
-        let baiduToCityModel = BaiduToCityFactory.shared.query(bjcityId: loacationModel!.cityCode)
-        parameters.updateValue(baiduToCityModel.areaCode, forKey: "city_id")
-        
-        // 本地获取deliver_type
-        let deliver_type = DeliveryMethodTypeModel.shared().getModel()?.deliveryMethodType
-        parameters.updateValue(deliver_type ?? "2", forKey: "deliver_type")
-        parameters.updateValue(page, forKey: "page")
-        parameters.updateValue(keyword, forKey: "keyword")
-        
-        if shopId == 0 {
-            parameters.updateValue("", forKey: "shop_id")
-        }else {
-            parameters.updateValue(shopId, forKey: "shop_id")
-        }
-        
-        if desc == 0 {
-            parameters.updateValue("", forKey: "desc")
-        }else {
-            parameters.updateValue(desc, forKey: "desc")
-        }
-        
-        if fieldOrder == 0 {
-            parameters.updateValue("", forKey: "field_order")
-        }else {
-            parameters.updateValue(fieldOrder, forKey: "field_order")
-        }
-        
-        if categoryId == 0 {
-            parameters.updateValue("", forKey: "category_id1")
-        }else {
-            parameters.updateValue(categoryId, forKey: "category_id1")
+        parameters.updateValue(paraMdl.name ?? "", forKey: "name")
+        parameters.updateValue(paraMdl.mobile ?? 0, forKey: "mobile")
+        parameters.updateValue(paraMdl.address ?? "", forKey: "address")
+        parameters.updateValue(paraMdl.pickNodeId ?? 0, forKey: "pick_node_id")
+        parameters.updateValue(paraMdl.pickNodeContact ?? "", forKey: "pick_node_contact")
+        parameters.updateValue(paraMdl.money ?? 0, forKey: "money")
+        
+        // 处理Json字符串
+        var detailDicArr = Array<Any>()
+        for productListShopMdl: CartProductListModel in paraMdl.selShopListArr! {
+            var shopDic = Dictionary<String,Any>()
+            var productsArr = Array<Any>()
+            for productMdl: ProductModel in productListShopMdl.productList! {
+                var productDic = Dictionary<String,Any>()
+                productDic.updateValue(productMdl.skuId ?? 0, forKey: "sku_id")
+                productDic.updateValue(productMdl.amount ?? 0, forKey: "number")
+                productsArr.append(productDic)
+            }
+            shopDic.updateValue(productListShopMdl.shopId ?? 0, forKey: "shop_id")
+            shopDic.updateValue(productListShopMdl.buyerNotes ?? "", forKey: "remark")
+            shopDic.updateValue(productsArr, forKey: "products")
+            detailDicArr.append(shopDic)
         }
+        let jsonStr = JSON(detailDicArr).description
+        parameters.updateValue(jsonStr, forKey: "detail")
         
         SwiftProgressHUD.shared().showWait()
-        SwiftMoyaNetWorkManager.shared()
-            .request(ProductSearchListModel.self,target: MultiTarget(SwiftMoyaServiceProductApi.productSearch(parameters: parameters))) {(productSearchListModel) in
-                SwiftProgressHUD.shared().hide()
-                completion(productSearchListModel)
+        SwiftMoyaNetWorkManager.shared().request(OrderCreateBackModel.self,target: MultiTarget(SwiftMoyaServiceOrderApi.orderCreate(parameters: parameters))) { (orderCreateBackModel) in
+            SwiftProgressHUD.shared().hide()
+            completion(orderCreateBackModel)
         }
     }
-
+    
     // MARK: - 前台订单列表
     /// 前台订单列表
     ///

+ 2 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaServiceApi/SwiftMoyaServicePay/SwiftMoyaServicePayApi.swift

@@ -12,10 +12,10 @@ import Moya
 
 // MARK: - 支付宝支付接口
 /// 支付宝支付接口
-public let kAlipayApi = "/api/alipay"
+public let kAlipayApi = "/pay/alipay"
 
 /// 支付宝支付接口
-public let kWeixinpayApi = "/api/weixin"
+public let kWeixinpayApi = "/pay/wxpay"
 
 /// 支付
 ///