Explorar o código

Merge branch 'feature/liuxuqing' into develop

Chris %!s(int64=6) %!d(string=hai) anos
pai
achega
42bde79d2a

+ 4 - 2
RainbowPlanet/RainbowPlanet/Modules/OrderModule/Order/ViewController/OrderViewController.swift

@@ -183,8 +183,10 @@ extension OrderViewController :JXSegmentedListContainerViewDataSource {
             vc.refundNo = orderModel.refundNo
             self.navigationController?.pushViewController(vc, animated: true)
         }
-        if button.titleLabel?.text == "去评价" {
-            
+        if button.titleLabel?.text == "去评价" {            
+            let vc = OrderCommentController()
+            vc.orderDetailModel = orderModel
+            self.navigationController?.pushViewController(vc, animated: true)
         }
         if button.titleLabel?.text == "再次购买" {
             let vc = ShopViewController()

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderApplyRefund/ViewController/OrderApplyRefundController.swift

@@ -280,7 +280,7 @@ extension OrderApplyRefundController {
             return
         }
         
-        if productArr?.count == 0 {
+        if goodsImageArr.count == 0 {
             SwiftProgressHUD.shared().showText("请拍照上传问题")
             return
         }

+ 26 - 6
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderComment/View/OrderCommentTableViewCell.swift

@@ -7,12 +7,21 @@
 //
 
 import UIKit
+import RxSwift
 import IQKeyboardManagerSwift
 
 class OrderCommentTableViewCell: UITableViewCell {
     
+    let disposeBag = DisposeBag()
+    
     private let maxImageCount: Int = 6
     
+    typealias CommentTextViewClosure = (_ text: String) -> Void
+    var commentTextViewClosure : CommentTextViewClosure?
+    
+    typealias StartChangedBlock = (_ starValue:Int?) -> Void
+    var startChangedBlock : StartChangedBlock?
+    
     typealias ChoosePicBlock = () -> Void
     var choosePicBlock : ChoosePicBlock?
     
@@ -26,14 +35,10 @@ class OrderCommentTableViewCell: UITableViewCell {
         }
     }
     
-    var productMdl : ProductModel? {
+    var orderModelDetailModel: OrderModelDetailModel? {
         didSet {
             // 商品图片
-            iconImageView.kf.setImage(with: kURLImage(name: productMdl?.productImg ?? ""), placeholder: kImage(name: "pic_preload"))
-            // 商品名称
-            titleLabel.text = productMdl?.productName
-            // 价格
-            cmtTextView.text = "¥\(productMdl?.skuPrice ?? 0)"
+            iconImageView.kf.setImage(with: kURLImage(name: orderModelDetailModel?.productImg ?? "pic_preload"), placeholder: kImage(name: "pic_preload"))
         }
     }
     
@@ -140,6 +145,7 @@ class OrderCommentTableViewCell: UITableViewCell {
         starView.halfStarImage = kImage(name: "star_rating_half")
         starView.filledStarImage = kImage(name: "star_rating_filled")
         starView.allowsHalfStars = false
+        starView.addTarget(self, action: #selector(starViewDidClick), for: .valueChanged)
         return starView        
     }()
     
@@ -150,6 +156,12 @@ class OrderCommentTableViewCell: UITableViewCell {
         cmtTextView.font = kRegularFont14
         cmtTextView.placeholder = "输入商品评价..."
         cmtTextView.placeholderTextColor = k999999Color
+        cmtTextView.rx.text.orEmpty.changed.subscribe(onNext: {
+            [weak self] (text) in
+            if let commentTextViewClosure = self?.commentTextViewClosure {
+                commentTextViewClosure(self?.cmtTextView.text ?? "")
+            }
+        }).disposed(by: disposeBag)
         return cmtTextView
     }()
     
@@ -185,6 +197,14 @@ class OrderCommentTableViewCell: UITableViewCell {
         self.collectionView.collectionViewLayout.invalidateLayout()
     }
     
+    // 评分视图点击
+    @objc func starViewDidClick(starView: SwiftyStarRatingView)  {
+        let starValue = Int(starView.value)
+        if let startChangedBlock = self.startChangedBlock {
+            startChangedBlock(starValue)
+        }
+    }
+    
 }
 
 extension OrderCommentTableViewCell: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource,UICollectionViewDelegate {

+ 59 - 43
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderComment/ViewController/OrderCommentController.swift

@@ -8,11 +8,20 @@
 
 import UIKit
 import RxSwift
+import SwiftyJSON
 
 class OrderCommentController: BaseViewController {
     
-    // 上传图片数组
-    var goodsImageArr = Array<UIImage>()
+    var orderDetailModel: OrderModel? {
+        didSet {
+            self.productArr = self.orderDetailModel?.detail
+            self.tableView.reloadData()
+        }
+    }
+    
+    // 商品数组
+    var productArr: Array<OrderModelDetailModel>?
+    
     // 提交评论参数Model
     var paraMdl = OrderCommentParameterModel()
     
@@ -33,10 +42,7 @@ class OrderCommentController: BaseViewController {
         commitButton.backgroundColor = kFFA42FColor
         self.view.addSubview(commitButton)
         commitButton.rx.tap.subscribe(onNext: { [weak self] (data) in
-            print("点击了--提交评价")
-            self?.uploadMultiImgUrl(imageArr: self!.goodsImageArr)
-//            self?.uploadSingleImgUrl(imageArr: self!.goodsImageArr)
-            
+            self?.commitProductComment()
         }).disposed(by: disposeBag)
         commitButton.snp.makeConstraints { (make) in
             make.left.right.equalToSuperview()
@@ -79,23 +85,32 @@ class OrderCommentController: BaseViewController {
 extension OrderCommentController : UITableViewDelegate, UITableViewDataSource {
     
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return 1
+        return productArr?.count ?? 0
     }
     
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let commentCell = OrderCommentTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
-        commentCell.goodsImageArr = self.goodsImageArr
+        commentCell.orderModelDetailModel = productArr![indexPath.row]
+        commentCell.goodsImageArr = productArr![indexPath.row].imageArr
         commentCell.frame = tableView.bounds
         commentCell.layoutIfNeeded()
         commentCell.reloadData()
+        commentCell.startChangedBlock = {
+            [weak self] (starValue) in
+            self?.productArr![indexPath.row].starValue = starValue!
+        }
+        commentCell.commentTextViewClosure = {
+            [weak self] (text) in
+            self?.productArr![indexPath.row].comment = text
+        }
         commentCell.choosePicBlock = {
             [weak self] in
             // 添加图片            
             UIAlertController.showConfirmActionSheet(camera: { (action) in
                 PhotoAndCameraManager.shared().authorizeCamera()
                 PhotoAndCameraManager.shared().photoAndCameraManagerImageBlock = { [weak self] (image) in
-                    if self?.goodsImageArr.count ?? 0 < 6 {
-                        self?.goodsImageArr.append(image)
+                    if self?.productArr![indexPath.row].imageArr.count ?? 0 < 6 {
+                        self?.productArr![indexPath.row].imageArr.append(image)
                         self?.tableView.reloadData()
                     } else {
                         print("------超过最大数量")
@@ -105,8 +120,8 @@ extension OrderCommentController : UITableViewDelegate, UITableViewDataSource {
             }) { (action) in
                 PhotoAndCameraManager.shared().authorizePhoto()
                 PhotoAndCameraManager.shared().photoAndCameraManagerImageBlock = { [weak self] (image) in
-                    if self?.goodsImageArr.count ?? 0 < 6 {
-                        self?.goodsImageArr.append(image)
+                    if self?.productArr![indexPath.row].imageArr.count ?? 0 < 6 {
+                        self?.productArr![indexPath.row].imageArr.append(image)
                         self?.tableView.reloadData()
                     } else {
                         print("------超过最大数量")
@@ -116,7 +131,7 @@ extension OrderCommentController : UITableViewDelegate, UITableViewDataSource {
         }
         commentCell.delPicTransBlock = {
             [weak self] (idxRow) in
-            self?.goodsImageArr.remove(at: idxRow!)
+            self?.productArr![idxRow!].imageArr.remove(at: idxRow!)
             self?.tableView.reloadData()
         }
         return commentCell
@@ -148,43 +163,44 @@ extension OrderCommentController : UITableViewDelegate, UITableViewDataSource {
 
 //MARK: - 逻辑处理
 extension OrderCommentController {
-    
-    /// 单图上传
-    ///
-    /// - Parameter goodsImageArr: 图片数组
-    func uploadSingleImgUrl(imageArr:[UIImage]) -> Void {
+    // 提交评价
+    func commitProductComment() {
         
-        SwiftMoyaNetWorkServiceConfig.shared().configUploadSingleImgApi(imageArray: imageArr) { [weak self] (data) -> (Void) in
-            print(data)
+        for productMdl in productArr! {
+            if productMdl.starValue == 0 {
+                SwiftProgressHUD.shared().showText("请给予商品评分")
+                return
+            }
+//            if productMdl.comment == "" {
+//                SwiftProgressHUD.shared().showText("请填写商品评价")
+//                return
+//            }
         }
         
+        // 上传全部商品图片
+        for (idx, productMdl) in (productArr?.enumerated())! {
+            let curImageArr = productArr![idx].imageArr
+            
+            if curImageArr.isEmpty {
+                continue
+            }
+            
+            let sema = DispatchSemaphore(value: 0)
+            // 多图上传Api
+            SwiftMoyaNetWorkServiceConfig.shared().configUploadMultiImgApi(imageArray: curImageArr) { (imgUrlArr) -> (Void) in
+                let imgJsonStr = JSON(imgUrlArr).description
+                productMdl.imageArrUrlStr = imgJsonStr
+                sema.signal()
+            }
+            //异步调用返回前,就会一直阻塞在这
+            sema.wait()
+        }
         
-//        SwiftMoyaNetWorkService.shared.commonUploadpicSingleApi(imageArray:goodsImageArr) { [weak self] (data) -> (Void) in
-//
-//            SwiftMoyaNetWorkService.shared.minePersonalUploadFaceUrlApi(faceUrl: data as! String , completion: { [weak self] (data) -> (Void) in
-//                self?.personalPortraitView.isReloadData = true
-//                NotificationCenter.default.post(name: kMineUserQueryModelTokenModelChangeNotificationName, object: nil,userInfo: nil)
-//            })
-//        }
+        self.productAddCommentApi()
     }
     
-    /// 多图上传
-    ///
-    /// - Parameter goodsImageArr: 图片数组
-    func uploadMultiImgUrl(imageArr:[UIImage]) -> Void {
-        
-        SwiftMoyaNetWorkServiceConfig.shared().configUploadMultiImgApi(imageArray: imageArr) { [weak self] (data) -> (Void) in
-            print(data)
-        }
-        
+    func productAddCommentApi() {
         
-        //        SwiftMoyaNetWorkService.shared.commonUploadpicSingleApi(imageArray:goodsImageArr) { [weak self] (data) -> (Void) in
-        //
-        //            SwiftMoyaNetWorkService.shared.minePersonalUploadFaceUrlApi(faceUrl: data as! String , completion: { [weak self] (data) -> (Void) in
-        //                self?.personalPortraitView.isReloadData = true
-        //                NotificationCenter.default.post(name: kMineUserQueryModelTokenModelChangeNotificationName, object: nil,userInfo: nil)
-        //            })
-        //        }
     }
     
 }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Modules/OrderModule/OrderDetail/ViewController/OrderDetailViewController.swift

@@ -111,7 +111,7 @@ class OrderDetailViewController: BaseViewController {
             self.navigationController?.pushViewController(vc, animated: true)
         }
         if button.titleLabel?.text == "去评价" {
-            
+            print("--去评价1")
         }
         if button.titleLabel?.text == "再次购买" {
             let vc = ShopViewController()

+ 6 - 1
RainbowPlanet/RainbowPlanet/Service/Model/OrderModel/OrderListModel.swift

@@ -109,7 +109,12 @@ class OrderModelDetailModel : NSObject, Mappable{
     var status : Int?
     
     // 申请退款本地计算用
-    var isSelect: Int = 0
+    var isSelect : Int = 0
+    // 创建评价本地使用
+    var starValue : Int = 0
+    var comment : String = ""
+    var imageArr : Array<UIImage> = []
+    var imageArrUrlStr : String = ""
     
     
     class func newInstance(map: Map) -> Mappable?{