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