XQMuse/Root/Home/VC/PaymentOrderVC.swift | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
XQMuse/Root/Me/VC/WatchHistoryDetailVC.swift | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
XQMuse/Root/Network/Models.swift | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
XQMuse/Root/Network/NetworkRequest.swift | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
XQMuse/Root/Network/Services.swift | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
XQMuse/Root/TreeGroup/VC/TreeTeskDetailVC.xib | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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,6 +147,25 @@ btn.titleLabel?.font = .systemFont(ofSize: 15) btn.addTarget(self, action: #selector(cancelAction), for: .touchUpInside) 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) @@ -196,6 +223,7 @@ } }).disposed(by: disposeBag) } } Services.getTurn().subscribe(onNext: {[weak self]data in guard let weakSelf = self else { return } @@ -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 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 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 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(museItemModel: m, type: .muse, giftToOther: false, showType: .horizontal,businessId: item.id) let vc = PaymentOrderVC(pendingModel: m, type: weakSelf.viewModel.state.value == 1 ? .muse:.course) 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) } } // 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) // } // } } } 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 = "" } 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)") 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) 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"/>