From d178e85e06d287ce8ca8b79811ec636fbc9d50e1 Mon Sep 17 00:00:00 2001
From: 杨锴 <841720330@qq.com>
Date: 星期三, 04 十二月 2024 09:29:22 +0800
Subject: [PATCH] fix bug

---
 XQMuse/Root/Network/NetworkRequest.swift      |    4 
 XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib |    8 
 XQMuse/Root/Network/Models.swift              |   11 +
 XQMuse/Root/Home/VC/PaymentOrderVC.swift      |  186 +++++++++++++++++++------------
 XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift  |  110 +++++++++--------
 XQMuse/Root/Network/Services.swift            |    6 
 6 files changed, 194 insertions(+), 131 deletions(-)

diff --git a/XQMuse/Root/Home/VC/PaymentOrderVC.swift b/XQMuse/Root/Home/VC/PaymentOrderVC.swift
index 5d45939..137e9a8 100644
--- a/XQMuse/Root/Home/VC/PaymentOrderVC.swift
+++ b/XQMuse/Root/Home/VC/PaymentOrderVC.swift
@@ -28,6 +28,7 @@
         case course = 2
         case vip = 3
         case recharge = 4
+        case none = 0
     }
 
     @IBOutlet weak var image_cover: UIImageView!
@@ -101,12 +102,13 @@
     private var museItemModel:MeditationModel?
     private var courseItemModel:CourseModel?
     private var giftUserId:Int?
-    private var giftToOther:Bool!
+    private var giftToOther:Bool = false
     private var courseModel:CourseModel?
     private var museModel:MeditationModel?
+    private var pendingModel:PendingItemModel?
     private var balance:Double = 0
-    private var type:PaymentOrderType!
-    private var showType:DisplayType!
+    private var type:PaymentOrderType = .none
+//    private var showType:DisplayType!
     private var businessId:Int?
 
     private var orderId:String? //下单后的ID
@@ -117,8 +119,14 @@
         self.courseItemModel = courseItemModel
         self.giftToOther = giftToOther
         self.type = type
-        self.showType = showType
+//        self.showType = showType
         self.businessId = businessId
+    }
+
+    init(pendingModel:PendingItemModel,type:PaymentOrderType){
+        super.init(nibName: nil, bundle: nil)
+        self.pendingModel = pendingModel
+        self.type = type
     }
 
     required init?(coder: NSCoder) {
@@ -139,62 +147,82 @@
         btn.titleLabel?.font = .systemFont(ofSize: 15)
         btn.addTarget(self, action: #selector(cancelAction), for: .touchUpInside)
 
-        if type == .course{
-            if self.businessId != nil{
-                self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: btn)
+
+        if let m = pendingModel{
+            price = m.amount
+            image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
+            label_courseName.text = m.title
+            label_teacher.text = ""
+            label_paymentCount.text = "x1"
+
+            if isShowMore{
+                label_price.text = "¥\(m.amount.jq_formatFloat)"
+                label_orderPrice.text = "¥\(m.amount.jq_formatFloat)"
+                label_totalPrice.text = "¥\(m.amount.jq_formatFloat)"
+            }else{
+                label_price.text = "愈疗币\(m.amount.jq_formatFloat)"
+                label_orderPrice.text = "愈疗币\(m.amount.jq_formatFloat)"
+                label_totalPrice.text = "愈疗币\(m.amount.jq_formatFloat)"
+            }
+            getBalance()
+        }else{
+            if type == .course{
+                if self.businessId != nil{
+                    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: btn)
+                }
+
+                Services.getCourseDetail(courseId: courseItemModel!.id).subscribe(onNext: {data in
+                    if let m = data.data{
+                        self.courseModel = m
+                        self.price = m.iosPrice
+                        self.image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
+                        self.label_courseName.text = m.courseTitle
+
+                        self.label_teacher.text = "导师 \(m.tutor)"
+                        self.label_paymentCount.text = "x1"
+
+                        if self.isShowMore{
+                            self.label_price.text = "¥\(m.iosPrice.jq_formatFloat)"
+                            self.label_orderPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
+                            self.label_totalPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
+                        }else{
+                            self.label_price.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                            self.label_orderPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                            self.label_totalPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                        }
+                        self.getBalance()
+                    }
+                }).disposed(by: disposeBag)
             }
 
-            Services.getCourseDetail(courseId: courseItemModel!.id).subscribe(onNext: {data in
-                if let m = data.data{
-                    self.courseModel = m
-                    self.price = m.iosPrice
-                    self.image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
-                    self.label_courseName.text = m.courseTitle
-
-                    self.label_teacher.text = "导师 \(m.tutor)"
-                    self.label_paymentCount.text = "x1"
-
-                    if self.isShowMore{
-                        self.label_price.text = "¥\(m.iosPrice.jq_formatFloat)"
-                        self.label_orderPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
-                        self.label_totalPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
-                    }else{
-                        self.label_price.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                        self.label_orderPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                        self.label_totalPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                    }
-                    self.getBalance()
+            if type == .muse{
+                if self.businessId != nil{
+                    self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: btn)
                 }
-            }).disposed(by: disposeBag)
-        }
 
-        if type == .muse{
-            if self.businessId != nil{
-                self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: btn)
+                Services.getMeditationDetail(id: museItemModel!.id).subscribe(onNext: {[weak self] data in
+                    guard let weakSelf = self else { return }
+                    if let m = data.data{
+                        weakSelf.museModel = m
+                        weakSelf.price = m.iosPrice
+                        weakSelf.image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
+                        weakSelf.label_courseName.text = m.meditationTitle
+                        weakSelf.label_teacher.text = ""
+                        weakSelf.label_paymentCount.text = "x1"
+
+                        if weakSelf.isShowMore{
+                            weakSelf.label_price.text = "¥\(m.iosPrice.jq_formatFloat)"
+                            weakSelf.label_orderPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
+                            weakSelf.label_totalPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
+                        }else{
+                            weakSelf.label_price.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                            weakSelf.label_orderPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                            weakSelf.label_totalPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
+                        }
+                        weakSelf.getBalance()
+                    }
+                }).disposed(by: disposeBag)
             }
-
-            Services.getMeditationDetail(id: museItemModel!.id).subscribe(onNext: {[weak self] data in
-                guard let weakSelf = self else { return }
-                if let m = data.data{
-                    weakSelf.museModel = m
-                    weakSelf.price = m.iosPrice
-                    weakSelf.image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
-                    weakSelf.label_courseName.text = m.meditationTitle
-                    weakSelf.label_teacher.text = ""
-                    weakSelf.label_paymentCount.text = "x1"
-
-                    if weakSelf.isShowMore{
-                        weakSelf.label_price.text = "¥\(m.iosPrice.jq_formatFloat)"
-                        weakSelf.label_orderPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
-                        weakSelf.label_totalPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
-                    }else{
-                        weakSelf.label_price.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                        weakSelf.label_orderPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                        weakSelf.label_totalPrice.text = "愈疗币\(m.iosPrice.jq_formatFloat)"
-                    }
-                    weakSelf.getBalance()
-                }
-            }).disposed(by: disposeBag)
         }
 
         Services.getTurn().subscribe(onNext: {[weak self]data in
@@ -217,6 +245,18 @@
                     weakSelf.label_price.text = "¥\(m.iosPrice.jq_formatFloat)"
                     weakSelf.label_orderPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
                     weakSelf.label_totalPrice.text = "¥\(m.iosPrice.jq_formatFloat)"
+                }
+
+                if let m = weakSelf.pendingModel{
+                    weakSelf.price = m.amount
+                    weakSelf.image_cover.sd_setImage(with: URL(string: m.coverUrl.components(separatedBy: ",").first?.jq_urlEncoded()))
+                    weakSelf.label_courseName.text = m.title
+                    weakSelf.label_teacher.text = ""
+                    weakSelf.label_paymentCount.text = "x1"
+                    weakSelf.label_price.text = "¥\(m.amount.jq_formatFloat)"
+                    weakSelf.label_orderPrice.text = "¥\(m.amount.jq_formatFloat)"
+                    weakSelf.label_totalPrice.text = "¥\(m.amount.jq_formatFloat)"
+                    weakSelf.getBalance()
                 }
             }
         }).disposed(by: disposeBag)
@@ -360,15 +400,6 @@
     }
 
     @IBAction func chooseAction(_ sender: TapBtn) {
-        var price:Double = 0
-        switch type {
-            case .course:
-                price = courseModel?.iosPrice ?? 0
-            case .muse:
-                price = courseModel?.iosPrice ?? 0
-            default:break
-        }
-
 
         //是否能全部抵扣
         let allDiscount = balance > price
@@ -464,6 +495,7 @@
     @IBAction func completeAction(_ sender: UIButton) {
 
         var id:Int = 0
+        var orderId:Int?
         if let m = courseModel{
             id = m.id
         }
@@ -474,6 +506,11 @@
             guard id != UserViewModel.getAvatarInfo().id else {
                 alertError(msg: "不能赠送给自己");return
             }
+        }
+
+        if let m = pendingModel{
+            id = m.id
+            orderId = m.orderId
         }
 
         guard btn_isRead.isSelected else {
@@ -493,12 +530,17 @@
         if isShowMore{
             guard tapType != .none else {alertError(msg: "请选择支付方式");return}
             var targetId:Int = 0
-            switch type {
-                case .course:
-                    targetId = courseModel!.id
-                case .muse:
-                    targetId = museModel!.id
-                default:break
+
+            if let m = pendingModel{
+                targetId = m.id
+            }else{
+                switch type {
+                    case .course:
+                        targetId = courseModel!.id
+                    case .muse:
+                        targetId = museModel!.id
+                    default:break
+                }
             }
 
             if balance < price && tapType == .t1{
@@ -520,7 +562,7 @@
                 paymentByCoin(id: id);return
             }
 
-            Services.placeOrder(orderForm: type, payType: payType, amount: nil, balanceFlag: discountByCoin, orderId: nil, receiverId: giftUserId, targetId: targetId, vipType: nil).subscribe(onNext: { [weak self] data in
+            Services.placeOrder(orderForm: type, payType: payType, amount: nil, balanceFlag: discountByCoin, orderId: orderId, receiverId: giftUserId, targetId: targetId, vipType: nil).subscribe(onNext: { [weak self] data in
                 guard let weakSelf = self else { return }
                 if let m = data.data{
                     weakSelf.orderId = m.orderId
@@ -563,7 +605,7 @@
         }
 
         if businessId != nil{
-            Services.gvieCourseAgain(orderForm: type, id: businessId!).subscribe(onNext: {[weak self]data in
+            Services.gvieCourseAgain(id: businessId!).subscribe(onNext: {[weak self]data in
                 guard let weakSelf = self else { return }
                 self?.museItemModel?.isBuy = .yes
                 self?.courseItemModel?.isBuy = .yes
diff --git a/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
index d9bc092..a662566 100644
--- a/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
+++ b/XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift
@@ -99,59 +99,67 @@
 
 								let item = viewModel.dataSource.value[indexPath.row]
 
-								if viewModel.state.value == 1{
-            //待支付
-            if item.paymentStatus == .yes{
-                Services.getMeditationDetail(id: item.businessId).subscribe(onNext: {data in
-                    if let m = data.data{
-                        let vc = PaymentOrderVC(museItemModel: m, type: .muse, giftToOther: false, showType: .horizontal,businessId: item.id)
-                        JQ_currentViewController().jq_push(vc: vc)
-                    }
-                }).disposed(by: disposeBag)
-                return
+        Services.gvieCourseAgain(id: item.id).subscribe(onNext: {[weak self]data in
+            guard let weakSelf = self else { return }
+            if let m = data.data{
+                let vc = PaymentOrderVC(pendingModel: m, type: weakSelf.viewModel.state.value == 1 ? .muse:.course)
+                JQ_currentViewController().jq_push(vc: vc)
             }
+        }).disposed(by: disposeBag)
 
-
-            Services.getMeditationDetail(id: item.businessId).subscribe(onNext: {data in
-                if let m = data.data{
-                    let vc = HomeItemDetailVC(model: m)
-                    JQ_currentViewController().jq_push(vc: vc)
-                }
-            }).disposed(by: disposeBag)
-								}else{
-            if item.courseType == .online{
-
-                //待支付
-                if item.paymentStatus == .yes{
-                    Services.getCourseDetail(courseId: item.businessId).subscribe(onNext: { data in
-                        if let m = data.data{
-                            let vc = PaymentOrderVC(courseItemModel: m, type: .course, giftToOther: false, showType: .horizontal,businessId: item.id)
-                            JQ_currentViewController().jq_push(vc: vc)
-                        }
-                    }).disposed(by: disposeBag)
-                    return
-                }
-
-
-                Services.getCourseDetail(courseId: item.businessId).subscribe(onNext: {data in
-                    if let m = data.data{
-                        if m.isVip == .no && m.chargeType == .vipFree{
-                            let vc = VIPCenterVC()
-                            JQ_currentNavigationController().pushViewController(vc)
-                        }else if m.courseType == .online{
-                            let vc = CourseDetialVC(courseModel: m)
-                            JQ_currentViewController().jq_push(vc: vc)
-                        }else{
-                            let vc = CourseDetialOfflineVC(courseId: m.id)
-                            JQ_currentViewController().jq_push(vc: vc)
-                        }
-                    }
-                }).disposed(by: disposeBag)
-            }else{
-                let vc = CourseDetialOfflineVC(courseId: item.businessId)
-                push(vc: vc)
-            }
-								}
+//								if viewModel.state.value == 1{
+//            //待支付
+//            if item.paymentStatus == .yes{
+//                Services.getMeditationDetail(id: item.businessId).subscribe(onNext: {data in
+//                    if let m = data.data{
+//                        let vc = PaymentOrderVC(museItemModel: m, type: .muse, giftToOther: false, showType: .horizontal,businessId: item.id)
+//                        JQ_currentViewController().jq_push(vc: vc)
+//                    }
+//                }).disposed(by: disposeBag)
+//                return
+//            }
+//
+//
+//            Services.getMeditationDetail(id: item.businessId).subscribe(onNext: {data in
+//                if let m = data.data{
+//                    let vc = HomeItemDetailVC(model: m)
+//                    JQ_currentViewController().jq_push(vc: vc)
+//                }
+//            }).disposed(by: disposeBag)
+//								}else{
+//            if item.courseType == .online{
+//
+//                //待支付
+//                if item.paymentStatus == .yes{
+//                    Services.getCourseDetail(courseId: item.businessId).subscribe(onNext: { data in
+//                        if let m = data.data{
+//                            let vc = PaymentOrderVC(courseItemModel: m, type: .course, giftToOther: false, showType: .horizontal,businessId: item.id)
+//                            JQ_currentViewController().jq_push(vc: vc)
+//                        }
+//                    }).disposed(by: disposeBag)
+//                    return
+//                }
+//
+//
+//                Services.getCourseDetail(courseId: item.businessId).subscribe(onNext: {data in
+//                    if let m = data.data{
+//                        if m.isVip == .no && m.chargeType == .vipFree{
+//                            let vc = VIPCenterVC()
+//                            JQ_currentNavigationController().pushViewController(vc)
+//                        }else if m.courseType == .online{
+//                            let vc = CourseDetialVC(courseModel: m)
+//                            JQ_currentViewController().jq_push(vc: vc)
+//                        }else{
+//                            let vc = CourseDetialOfflineVC(courseId: m.id)
+//                            JQ_currentViewController().jq_push(vc: vc)
+//                        }
+//                    }
+//                }).disposed(by: disposeBag)
+//            }else{
+//                let vc = CourseDetialOfflineVC(courseId: item.businessId)
+//                push(vc: vc)
+//            }
+//								}
 				}
 }
 
diff --git a/XQMuse/Root/Network/Models.swift b/XQMuse/Root/Network/Models.swift
index 060c255..0c1d3da 100644
--- a/XQMuse/Root/Network/Models.swift
+++ b/XQMuse/Root/Network/Models.swift
@@ -529,3 +529,14 @@
     var qrcodeUrl: String?
     var zeroFlag: Int = 0
 }
+
+struct PendingItemModel:HandyJSON{
+    var amount:Double = 0
+    var balance:Double = 0
+    var coverUrl:String = ""
+    var id:Int = 0
+    var orderFrom:Int = 0
+    var orderId:Int = 0
+    var title:String = ""
+    var tutor:String = ""
+}
diff --git a/XQMuse/Root/Network/NetworkRequest.swift b/XQMuse/Root/Network/NetworkRequest.swift
index f26133a..957b6e8 100644
--- a/XQMuse/Root/Network/NetworkRequest.swift
+++ b/XQMuse/Root/Network/NetworkRequest.swift
@@ -240,7 +240,9 @@
 																								switch next.code{
 																												case 200:ob.onNext(next)
                             case 401:ob.onError(NetRequestError.InvaildSession)
-                            case 501:ob.onError(NetRequestError.InvaildSession)
+                            case 501:
+                                sceneDelegate?.needLogin()
+                                ob.onError(NetRequestError.InvaildSession)
 																												default:
 																																if !ignoreAlert{
 																																				alertError(msg: "\(next.msg)")
diff --git a/XQMuse/Root/Network/Services.swift b/XQMuse/Root/Network/Services.swift
index 7261ee7..ed3e7e5 100644
--- a/XQMuse/Root/Network/Services.swift
+++ b/XQMuse/Root/Network/Services.swift
@@ -13,8 +13,8 @@
 import CoreLocation
 
 #if DEBUG
-//let All_Url = "https://xq.xqzhihui.com/api"
-let All_Url = "http://192.168.110.64:9000"
+let All_Url = "https://xq.xqzhihui.com/api"
+//let All_Url = "http://192.168.110.64:9000"
 //let All_Url = "https://mock.apipost.net/mock/31b303c60464000"
 #else
 let All_Url = "https://xq.xqzhihui.com/api"
@@ -355,7 +355,7 @@
         return NetworkRequest.request(params: params, method: .post, progress: true)
     }
 
-    class func gvieCourseAgain(orderForm:PaymentOrderVC.PaymentOrderType,id:Int)->Observable<BaseResponse<SimpleModel>>{
+    class func gvieCourseAgain(id:Int)->Observable<BaseResponse<PendingItemModel>>{
         let params = ParamsAppender.build(url: All_Url)
         params.interface(url: "/order/client/order/order/payOrder")
             .append(key: "id", value: id)
diff --git a/XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib b/XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib
index 4b06883..73b8fb3 100644
--- a/XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib
+++ b/XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23094" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23084"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -30,8 +30,8 @@
                             <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前能量值" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qUa-f2-Af9">
-                            <rect key="frame" x="146.66666666666666" y="57.333333333333343" width="71.666666666666657" height="17"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="累计总能量值" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qUa-f2-Af9">
+                            <rect key="frame" x="140.66666666666666" y="57.333333333333343" width="83.666666666666657" height="17"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                             <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>

--
Gitblit v1.7.1