Commit 4bd776d9e8a43543f7e4a983c7043ff56b330015
1 parent
d0fa5d6a
积分支付逻辑调整
Showing
15 changed files
with
477 additions
and
64 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -92,6 +92,7 @@ |
| 92 | 92 | 1938BD412B4BEC6900390A34 /* CNLiveAlbumListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD402B4BEC6900390A34 /* CNLiveAlbumListModel.swift */; }; |
| 93 | 93 | 1938BD432B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD422B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift */; }; |
| 94 | 94 | 1938BD452B4E49CA00390A34 /* CNLiveDuanjuTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD442B4E49CA00390A34 /* CNLiveDuanjuTitleCell.swift */; }; |
| 95 | + 1938BD472B4FD5A500390A34 /* CNLiveIntegralAlertTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD462B4FD5A500390A34 /* CNLiveIntegralAlertTool.swift */; }; | |
| 95 | 96 | 19565EC02AF4DE0E007D6727 /* CNLiveShopDetailBtnsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565EBF2AF4DE0E007D6727 /* CNLiveShopDetailBtnsCell.swift */; }; |
| 96 | 97 | 19565EC22AF616CA007D6727 /* CNLiveShopDetailOrderAssetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565EC12AF616CA007D6727 /* CNLiveShopDetailOrderAssetCell.swift */; }; |
| 97 | 98 | 19565EC52AF8AD1F007D6727 /* CNLiveShopProductManagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19565EC42AF8AD1F007D6727 /* CNLiveShopProductManagerController.swift */; }; |
| ... | ... | @@ -346,6 +347,7 @@ |
| 346 | 347 | 1938BD402B4BEC6900390A34 /* CNLiveAlbumListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAlbumListModel.swift; sourceTree = "<group>"; }; |
| 347 | 348 | 1938BD422B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNHomepageDuanJuDetailViewController.swift; sourceTree = "<group>"; }; |
| 348 | 349 | 1938BD442B4E49CA00390A34 /* CNLiveDuanjuTitleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDuanjuTitleCell.swift; sourceTree = "<group>"; }; |
| 350 | + 1938BD462B4FD5A500390A34 /* CNLiveIntegralAlertTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveIntegralAlertTool.swift; sourceTree = "<group>"; }; | |
| 349 | 351 | 19565EBF2AF4DE0E007D6727 /* CNLiveShopDetailBtnsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopDetailBtnsCell.swift; sourceTree = "<group>"; }; |
| 350 | 352 | 19565EC12AF616CA007D6727 /* CNLiveShopDetailOrderAssetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopDetailOrderAssetCell.swift; sourceTree = "<group>"; }; |
| 351 | 353 | 19565EC42AF8AD1F007D6727 /* CNLiveShopProductManagerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopProductManagerController.swift; sourceTree = "<group>"; }; |
| ... | ... | @@ -982,6 +984,7 @@ |
| 982 | 984 | children = ( |
| 983 | 985 | 792E57D82A3AA2F2005834DB /* CNLiveCommonBaseModel.swift */, |
| 984 | 986 | 792E57DA2A3AE9F4005834DB /* CNLiveCommonQiniuTool.swift */, |
| 987 | + 1938BD462B4FD5A500390A34 /* CNLiveIntegralAlertTool.swift */, | |
| 985 | 988 | ); |
| 986 | 989 | path = Util; |
| 987 | 990 | sourceTree = "<group>"; |
| ... | ... | @@ -1688,6 +1691,7 @@ |
| 1688 | 1691 | 191732FE2B0B3EBF007BCC04 /* CNLiveShopGoodsDetailsViewController.swift in Sources */, |
| 1689 | 1692 | 79E496E32AB9357000127BF8 /* UITableViewCell+CNLiveExtension.swift in Sources */, |
| 1690 | 1693 | 7C83B4422A541EBF004BF4A4 /* CALayer+CNLiveExtensions.swift in Sources */, |
| 1694 | + 1938BD472B4FD5A500390A34 /* CNLiveIntegralAlertTool.swift in Sources */, | |
| 1691 | 1695 | 19565EC72AF8AD38007D6727 /* CNLiveShopNewProductController.swift in Sources */, |
| 1692 | 1696 | 798A44F72A3077ED00815935 /* CNLiveHotButton.swift in Sources */, |
| 1693 | 1697 | 7CD6753D2A2740B0008354C1 /* CNMainView.swift in Sources */, | ... | ... |
metaCode/Classes/Common/Util/CNLiveIntegralAlertTool.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveIntegralAlertTool.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2024/1/11. | |
| 6 | +// 积分支付弹窗 | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | +import QMUIKit | |
| 10 | +import SnapKit | |
| 11 | + | |
| 12 | +///积分支付状态类型 | |
| 13 | +enum CNLiveIntegralPayStatus { | |
| 14 | + ///积分充足 | |
| 15 | + case integralEnough | |
| 16 | + ///积分不足 | |
| 17 | + case integralNotEnough | |
| 18 | + ///支付中 | |
| 19 | + case paying | |
| 20 | + ///支付成功 | |
| 21 | + case paySuccess | |
| 22 | + ///支付失败 | |
| 23 | + case payFailed | |
| 24 | + | |
| 25 | +} | |
| 26 | + | |
| 27 | +class CNLiveIntegralAlertTool:NSObject{ | |
| 28 | + static let shared = CNLiveIntegralAlertTool() | |
| 29 | + | |
| 30 | + var homePageNeedReloadActionBlock:homePageNeedReloadBlockActionBlock? | |
| 31 | + | |
| 32 | + ///当前积分支付状态 | |
| 33 | + var currentIntegralPayStatus: CNLiveIntegralPayStatus = .integralEnough | |
| 34 | + | |
| 35 | + let delegate = UIApplication.shared.delegate as! AppDelegate | |
| 36 | + /// 专辑名称 | |
| 37 | + var title:String = "" | |
| 38 | + | |
| 39 | + /// 专辑积分值 | |
| 40 | + var integralCount:String = "0" | |
| 41 | + /// 支付的商品id | |
| 42 | + var productId:String = "" | |
| 43 | + /// 用户积分值 | |
| 44 | + var point:Int = 0 | |
| 45 | + /// 用户积分model | |
| 46 | + var checkInModel:MinePointCheckInModel? | |
| 47 | + | |
| 48 | + lazy var bgBtnView: UIButton = { | |
| 49 | + let bgBtnView = UIButton(frame: self.delegate.window!.bounds) | |
| 50 | + bgBtnView.backgroundColor = HexColor("#000000") | |
| 51 | + bgBtnView.alpha = 0.6 | |
| 52 | + bgBtnView.addTarget(self, action: #selector(bgBtnViewAction), for: .touchUpInside) | |
| 53 | + return bgBtnView | |
| 54 | + }() | |
| 55 | + | |
| 56 | + lazy var bottomBgView :UIView = { | |
| 57 | + let bottomBgView = UIView(frame: CGRect(x: 0, y: KSreenHeight-267, width: KSreenWidth, height: 267)) | |
| 58 | + bottomBgView.backgroundColor = HexColor("#FFFFFF") | |
| 59 | + bottomBgView.layer.cornerRadius = 9 | |
| 60 | + bottomBgView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] | |
| 61 | + bottomBgView.tag = 10000 | |
| 62 | + return bottomBgView | |
| 63 | + }() | |
| 64 | + | |
| 65 | + ///专辑标题 | |
| 66 | + lazy var albumTitleLabel: UILabel = { | |
| 67 | + let titleLabel = UILabel.init(frame: CGRectMake(15, 15, KSreenWidth-15-60, 20)) | |
| 68 | + titleLabel.textColor = HexColor("#333333") | |
| 69 | + titleLabel.textAlignment = .left | |
| 70 | + titleLabel.font = Font_16 | |
| 71 | + titleLabel.text = "剧集名称45集" | |
| 72 | + return titleLabel | |
| 73 | + }() | |
| 74 | + | |
| 75 | + lazy var closeBtn: UIButton = { | |
| 76 | + let closeBtn = UIButton(type: .custom) | |
| 77 | + closeBtn.frame = CGRect(x: self.albumTitleLabel.right, y: 0, width: 50, height: 50) | |
| 78 | + closeBtn.setImage(UIImage(named: "point_alert_close"), for: .normal) | |
| 79 | + closeBtn.addTarget(self, action: #selector(closeBtnAction), for: .touchUpInside) | |
| 80 | + return closeBtn | |
| 81 | + }() | |
| 82 | + | |
| 83 | + lazy var bottomLineView :UIView = { | |
| 84 | + let bottomLineView = UIView(frame: CGRect(x: 0, y: self.closeBtn.bottom+2, width: KSreenWidth, height: 1)) | |
| 85 | + bottomLineView.backgroundColor = HexColor("#E4E4E4") | |
| 86 | + return bottomLineView | |
| 87 | + }() | |
| 88 | + | |
| 89 | + ///积分数量 | |
| 90 | + lazy var integralCountLabel: UILabel = { | |
| 91 | + let titleLabel = UILabel.init(frame: CGRectMake(0, self.bottomLineView.bottom+30, 100, 66)) | |
| 92 | + titleLabel.textColor = HexColor("#333333") | |
| 93 | + titleLabel.textAlignment = .left | |
| 94 | + titleLabel.font = UIFont.boldSystemFont(ofSize: 55) | |
| 95 | + titleLabel.text = "8000" | |
| 96 | + return titleLabel | |
| 97 | + }() | |
| 98 | + ///余额XXX积分 | |
| 99 | + lazy var balanceIntegralLabel: UILabel = { | |
| 100 | + let titleLabel = UILabel.init(frame: CGRectMake(0, 0, 100, 20)) | |
| 101 | + titleLabel.textColor = HexColor("#696969") | |
| 102 | + titleLabel.textAlignment = .left | |
| 103 | + titleLabel.font = Font_14 | |
| 104 | + return titleLabel | |
| 105 | + }() | |
| 106 | + | |
| 107 | + lazy var payBtn: UIButton = { | |
| 108 | + let payBtn = UIButton(type: .custom) | |
| 109 | + payBtn.frame = CGRect(x: 15, y: self.bottomBgView.height-15-44, width: KSreenWidth-30, height: 44) | |
| 110 | + payBtn.setTitleColor(HexColor("#FFFFFF"), for: .normal) | |
| 111 | + // fillCode | |
| 112 | + let bgLayer1 = CAGradientLayer() | |
| 113 | + bgLayer1.colors = [UIColor(red: 0.4, green: 0.77, blue: 1, alpha: 1).cgColor, UIColor(red: 0.38, green: 0.6, blue: 1, alpha: 1).cgColor] | |
| 114 | + bgLayer1.locations = [0, 1] | |
| 115 | + bgLayer1.frame = payBtn.bounds | |
| 116 | + bgLayer1.startPoint = CGPoint(x: 0, y: 0.5) | |
| 117 | + bgLayer1.endPoint = CGPoint(x: 0.5, y: 0.5) | |
| 118 | + payBtn.layer.addSublayer(bgLayer1) | |
| 119 | + payBtn.addTarget(self, action: #selector(payBtnAction), for: .touchUpInside) | |
| 120 | + return payBtn | |
| 121 | + }() | |
| 122 | + | |
| 123 | + ///支付中img | |
| 124 | + lazy var payingImgView :UIImageView = { | |
| 125 | + let payingImgView = UIImageView(frame: CGRect(x: (KSreenWidth-45)/2.0, y: self.bottomLineView.bottom+65, width: 45, height: 43)) | |
| 126 | + payingImgView.image = UIImage(named: "jifen_paying") | |
| 127 | + return payingImgView | |
| 128 | + }() | |
| 129 | + ///支付成功img | |
| 130 | + lazy var paySuccessImgView :UIImageView = { | |
| 131 | + let paySuccessImgView = UIImageView(frame: CGRect(x: (KSreenWidth-78)/2.0, y: 60, width: 78, height: 78)) | |
| 132 | + paySuccessImgView.image = UIImage(named: "jifen_paySuccess") | |
| 133 | + return paySuccessImgView | |
| 134 | + }() | |
| 135 | + | |
| 136 | + ///支付中 | |
| 137 | + lazy var payingLabel: UILabel = { | |
| 138 | + let titleLabel = UILabel.init(frame: CGRectMake(0, self.payingImgView.bottom+15, KSreenWidth-40, 20)) | |
| 139 | + titleLabel.centerX = self.payingImgView.centerX | |
| 140 | + titleLabel.textColor = HexColor("#333333") | |
| 141 | + titleLabel.textAlignment = .center | |
| 142 | + titleLabel.font = Font_14 | |
| 143 | + return titleLabel | |
| 144 | + }() | |
| 145 | + | |
| 146 | + // MARK: - show | |
| 147 | + ///弹出积分购买弹窗 | |
| 148 | + func showIntegralAlert(title:String,integralCount:String,productId:String){ | |
| 149 | + self.title = title | |
| 150 | + self.integralCount = integralCount | |
| 151 | + self.productId = productId | |
| 152 | + | |
| 153 | + delegate.window?.addSubview(self.bgBtnView) | |
| 154 | + delegate.window?.addSubview(self.bottomBgView) | |
| 155 | + | |
| 156 | + //专辑所需积分值 | |
| 157 | + let intIntegralCount = Int(integralCount)! | |
| 158 | + //用户积分值 | |
| 159 | + self.getCheckIn { result, status in | |
| 160 | + let checkInModel = result as! MinePointCheckInModel | |
| 161 | + self.checkInModel = checkInModel | |
| 162 | + let pointStr = checkInModel.integral ?? "0" | |
| 163 | + let intPoint = Int(pointStr)! | |
| 164 | + self.point = intPoint | |
| 165 | + if intPoint > intIntegralCount{ | |
| 166 | + //可以支付积分 | |
| 167 | + self.currentIntegralPayStatus = .integralEnough | |
| 168 | + | |
| 169 | + }else{ | |
| 170 | + //积分不足 | |
| 171 | + self.currentIntegralPayStatus = .integralNotEnough | |
| 172 | + } | |
| 173 | + self.initUI() | |
| 174 | + | |
| 175 | + } | |
| 176 | + } | |
| 177 | + | |
| 178 | + //隐藏积分购买弹窗 | |
| 179 | + func hiddenIntegralAlert(){ | |
| 180 | + delegate.window?.subviews.forEach({ view in | |
| 181 | + if view.tag == 10000{ | |
| 182 | + UIView.animate(withDuration: 0.25) { | |
| 183 | + view.removeFromSuperview() | |
| 184 | + self.bgBtnView.removeFromSuperview() | |
| 185 | + } | |
| 186 | + } | |
| 187 | + }) | |
| 188 | + } | |
| 189 | + | |
| 190 | + func initUI(){ | |
| 191 | + self.bottomBgView.subviews.forEach { view in | |
| 192 | + view.removeFromSuperview() | |
| 193 | + } | |
| 194 | + | |
| 195 | + if self.currentIntegralPayStatus == .integralEnough{ | |
| 196 | + //积分充足 | |
| 197 | + self.bottomBgView.addSubview(self.albumTitleLabel) | |
| 198 | + self.albumTitleLabel.text = self.title | |
| 199 | + self.bottomBgView.addSubview(self.closeBtn) | |
| 200 | + self.bottomBgView.addSubview(self.bottomLineView) | |
| 201 | + self.bottomBgView.addSubview(self.integralCountLabel) | |
| 202 | + let integralCountStr = "\(self.integralCount)积分" | |
| 203 | + let priceAttri = NSMutableAttributedString.init(string: integralCountStr) | |
| 204 | + priceAttri.addAttribute(.font, value: regular_adapt_font(pointSize: 55), range: NSMakeRange(0, integralCountStr.count-2)) | |
| 205 | + priceAttri.addAttribute(.foregroundColor, value: HexColor("#333333")!, range: NSMakeRange(0, integralCountStr.count-2)) | |
| 206 | + priceAttri.addAttribute(.font, value: regular_adapt_font(pointSize: 16), range: NSMakeRange(integralCountStr.count-2, 2)) | |
| 207 | + priceAttri.addAttribute(.foregroundColor, value: HexColor("#333333")!, range: NSMakeRange(integralCountStr.count-2, 2)) | |
| 208 | + self.integralCountLabel.attributedText = priceAttri | |
| 209 | + | |
| 210 | + self.bottomBgView.addSubview(self.balanceIntegralLabel) | |
| 211 | + | |
| 212 | + self.balanceIntegralLabel.text = String(format: "余额%d积分", self.point) | |
| 213 | + | |
| 214 | + self.bottomBgView.addSubview(self.payBtn) | |
| 215 | + self.payBtn.setTitle("确认支付", for: .normal) | |
| 216 | + | |
| 217 | + self.integralCountLabel.snp.makeConstraints { make in | |
| 218 | + make.centerX.equalTo(self.bottomBgView.snp.centerX) | |
| 219 | + make.top.equalTo(self.bottomLineView.snp.bottom).offset(30) | |
| 220 | + make.width.lessThanOrEqualToSuperview().offset(-10) | |
| 221 | + } | |
| 222 | + self.balanceIntegralLabel.snp.makeConstraints { make in | |
| 223 | + make.centerX.equalTo(self.bottomBgView.snp.centerX) | |
| 224 | + make.top.equalTo(self.integralCountLabel.snp.bottom).offset(5) | |
| 225 | + make.width.lessThanOrEqualToSuperview() | |
| 226 | + } | |
| 227 | + | |
| 228 | + }else if self.currentIntegralPayStatus == .integralNotEnough{ | |
| 229 | + //积分不足 | |
| 230 | + self.bottomBgView.addSubview(self.albumTitleLabel) | |
| 231 | + self.albumTitleLabel.text = self.title | |
| 232 | + self.bottomBgView.addSubview(self.closeBtn) | |
| 233 | + self.bottomBgView.addSubview(self.bottomLineView) | |
| 234 | + self.bottomBgView.addSubview(self.integralCountLabel) | |
| 235 | + let integralCountStr = "\(self.integralCount)积分" | |
| 236 | + let priceAttri = NSMutableAttributedString.init(string: integralCountStr) | |
| 237 | + priceAttri.addAttribute(.font, value: regular_adapt_font(pointSize: 55), range: NSMakeRange(0, integralCountStr.count-2)) | |
| 238 | + priceAttri.addAttribute(.foregroundColor, value: HexColor("#333333")!, range: NSMakeRange(0, integralCountStr.count-2)) | |
| 239 | + priceAttri.addAttribute(.font, value: regular_adapt_font(pointSize: 16), range: NSMakeRange(integralCountStr.count-2, 2)) | |
| 240 | + priceAttri.addAttribute(.foregroundColor, value: HexColor("#333333")!, range: NSMakeRange(integralCountStr.count-2, 2)) | |
| 241 | + self.integralCountLabel.attributedText = priceAttri | |
| 242 | + | |
| 243 | + self.bottomBgView.addSubview(self.balanceIntegralLabel) | |
| 244 | + self.balanceIntegralLabel.text = String(format: "余额%d积分 积分不足", self.point) | |
| 245 | + | |
| 246 | + self.bottomBgView.addSubview(self.payBtn) | |
| 247 | + self.payBtn.setTitle("去赚积分", for: .normal) | |
| 248 | + | |
| 249 | + self.integralCountLabel.snp.makeConstraints { make in | |
| 250 | + make.centerX.equalTo(self.bottomBgView.snp.centerX) | |
| 251 | + make.top.equalTo(self.bottomLineView.snp.bottom).offset(30) | |
| 252 | + make.width.lessThanOrEqualToSuperview().offset(-10) | |
| 253 | + } | |
| 254 | + self.balanceIntegralLabel.snp.makeConstraints { make in | |
| 255 | + make.centerX.equalTo(self.bottomBgView.snp.centerX) | |
| 256 | + make.top.equalTo(self.integralCountLabel.snp.bottom).offset(5) | |
| 257 | + make.width.lessThanOrEqualToSuperview() | |
| 258 | + } | |
| 259 | + }else if self.currentIntegralPayStatus == .paying{ | |
| 260 | + //支付中 | |
| 261 | + self.bottomBgView.addSubview(self.albumTitleLabel) | |
| 262 | + self.albumTitleLabel.text = self.title | |
| 263 | + self.bottomBgView.addSubview(self.closeBtn) | |
| 264 | + self.bottomBgView.addSubview(self.bottomLineView) | |
| 265 | + self.bottomBgView.addSubview(self.payingImgView) | |
| 266 | + self.payingImgView = UIImageView(frame: CGRect(x: (KSreenWidth-45)/2.0, y: self.bottomLineView.bottom+65, width: 45, height: 43)) | |
| 267 | + self.payingImgView.image = UIImage(named: "jifen_paying") | |
| 268 | + | |
| 269 | + self.bottomBgView.addSubview(self.payingLabel) | |
| 270 | + self.payingLabel.text = "支付中..." | |
| 271 | + | |
| 272 | + }else if self.currentIntegralPayStatus == .paySuccess{ | |
| 273 | + //支付成功 | |
| 274 | + self.bottomBgView.addSubview(self.paySuccessImgView) | |
| 275 | + self.paySuccessImgView = UIImageView(frame: CGRect(x: (KSreenWidth-78)/2.0, y: 60, width: 78, height: 78)) | |
| 276 | + self.paySuccessImgView.image = UIImage(named: "jifen_paySuccess") | |
| 277 | + | |
| 278 | + self.bottomBgView.addSubview(self.payingLabel) | |
| 279 | + self.payingLabel.text = "支付成功\(self.integralCount)积分" | |
| 280 | + | |
| 281 | + self.bottomBgView.addSubview(self.payBtn) | |
| 282 | + self.payBtn.setTitle("完成", for: .normal) | |
| 283 | + | |
| 284 | + }else if self.currentIntegralPayStatus == .payFailed{ | |
| 285 | + //支付失败 | |
| 286 | + }else{ | |
| 287 | + //其他 | |
| 288 | + } | |
| 289 | + } | |
| 290 | + | |
| 291 | + //获取用户积分 | |
| 292 | + func getCheckIn(resultBlock: @escaping downSlideResultBlock){ | |
| 293 | + CNLiveMineViewModel.requestWithCheckIn { result, respStatue in | |
| 294 | + if respStatue == .success { | |
| 295 | + let checkModel = result as! MinePointCheckInModel | |
| 296 | + resultBlock(checkModel, .success) | |
| 297 | + } else { | |
| 298 | + resultBlock(NSNull(), .failed) | |
| 299 | + } | |
| 300 | + } | |
| 301 | + } | |
| 302 | + | |
| 303 | + // MARK: - BtnAction | |
| 304 | + @objc func bgBtnViewAction(){ | |
| 305 | + self.hiddenIntegralAlert() | |
| 306 | + } | |
| 307 | + @objc func closeBtnAction(){ | |
| 308 | + self.hiddenIntegralAlert() | |
| 309 | + } | |
| 310 | + @objc func payBtnAction(){ | |
| 311 | + if self.currentIntegralPayStatus == .integralEnough{ | |
| 312 | + self.postOrderVideoByPoint() | |
| 313 | + }else if self.currentIntegralPayStatus == .integralNotEnough{ | |
| 314 | + self.hiddenIntegralAlert() | |
| 315 | + //跳转任务中心 | |
| 316 | + navigationViewController().pushViewController(CNLiveMineQuestViewController(checkModel: self.checkInModel!), animated: pushAnimated) | |
| 317 | + | |
| 318 | + }else if self.currentIntegralPayStatus == .paying{ | |
| 319 | + | |
| 320 | + }else if self.currentIntegralPayStatus == .paySuccess{ | |
| 321 | + self.hiddenIntegralAlert() | |
| 322 | + }else if self.currentIntegralPayStatus == .payFailed{ | |
| 323 | + self.currentIntegralPayStatus = .integralEnough | |
| 324 | + self.initUI() | |
| 325 | + }else{ | |
| 326 | + | |
| 327 | + } | |
| 328 | + } | |
| 329 | + // MARK: - 积分付费接口 | |
| 330 | + func postOrderVideoByPoint(){ | |
| 331 | + self.currentIntegralPayStatus = .paying | |
| 332 | + self.initUI() | |
| 333 | + //付费接口 | |
| 334 | + CNLiveHomePageViewModel.orderVideoByPoint(prdId: self.productId) { result, status in | |
| 335 | + if status == .success{ | |
| 336 | + //购买成功 | |
| 337 | + self.currentIntegralPayStatus = .paySuccess | |
| 338 | + self.initUI() | |
| 339 | + //刷新短剧首页数据 | |
| 340 | + self.homePageNeedReloadActionBlock!() | |
| 341 | + }else{ | |
| 342 | + //购买失败 | |
| 343 | + if self.point > Int(self.integralCount)!{ | |
| 344 | + //可以支付积分 | |
| 345 | + self.currentIntegralPayStatus = .integralEnough | |
| 346 | + }else{ | |
| 347 | + //积分不足 | |
| 348 | + self.currentIntegralPayStatus = .integralNotEnough | |
| 349 | + } | |
| 350 | + self.initUI() | |
| 351 | + let errMsg = result as! String | |
| 352 | + showMessage(message: errMsg) | |
| 353 | + } | |
| 354 | + } | |
| 355 | + | |
| 356 | + } | |
| 357 | + | |
| 358 | + | |
| 359 | +} | ... | ... |
metaCode/Classes/Extensions/NSObject+CNLiveExtensions.swift
metaCode/Classes/Main/HomePages/View/HomepageDetail/CNLiveAlbumCell.swift
| ... | ... | @@ -105,29 +105,30 @@ class CNLiveAlbumCell:UITableViewCell{ |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | //获取专辑详情(简介等) |
| 108 | -// func getAlbumMsg(){ | |
| 109 | -// var aid = "" | |
| 110 | -// if self.albumModel != nil{ | |
| 111 | -// aid = self.albumModel!.contentId | |
| 112 | -// }else if self.albumMsgModel != nil{ | |
| 113 | -// aid = self.albumMsgModel!.albumId | |
| 114 | -// }else{ | |
| 115 | -// aid = "" | |
| 116 | -// } | |
| 117 | -// CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { result, status in | |
| 118 | -// hiddenLoading() | |
| 119 | -// if status == .success{ | |
| 120 | -// let model = result as! CNLiveAlbumMsgModel | |
| 121 | -// for listModel in self.albumModelArr! { | |
| 122 | -// listModel.albumMsgModel = model | |
| 123 | -// } | |
| 124 | -// print("暂时跳转主页") | |
| 125 | -// navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLivePlayletHomePageController(albumModelArr: self.albumModelArr!), animated: true) | |
| 126 | -// }else{ | |
| 127 | -// | |
| 128 | -// } | |
| 129 | -// } | |
| 130 | -// } | |
| 108 | + func getAlbumMsg(){ | |
| 109 | + var aid = "" | |
| 110 | + if self.albumModel != nil{ | |
| 111 | + aid = self.albumModel!.contentId | |
| 112 | + }else if self.albumMsgModel != nil{ | |
| 113 | + aid = self.albumMsgModel!.albumId | |
| 114 | + }else{ | |
| 115 | + aid = "" | |
| 116 | + } | |
| 117 | + CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { result, status in | |
| 118 | + hiddenLoading() | |
| 119 | + if status == .success{ | |
| 120 | + let model = result as! CNLiveAlbumMsgModel | |
| 121 | + for listModel in self.albumModelArr! { | |
| 122 | + listModel.albumMsgModel = model | |
| 123 | + } | |
| 124 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(), animated: pushAnimated) | |
| 125 | + | |
| 126 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLivePlayletHomePageController(aid: aid), animated: true) | |
| 127 | + }else{ | |
| 128 | + | |
| 129 | + } | |
| 130 | + } | |
| 131 | + } | |
| 131 | 132 | //获取专辑视频列表详情(播放地址 ,点赞数等信息) |
| 132 | 133 | func getAlbumList(){ |
| 133 | 134 | showLoading(message: "") |
| ... | ... | @@ -140,18 +141,15 @@ class CNLiveAlbumCell:UITableViewCell{ |
| 140 | 141 | aid = "" |
| 141 | 142 | } |
| 142 | 143 | |
| 143 | - navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLivePlayletHomePageController(aid: aid), animated: true) | |
| 144 | - return | |
| 145 | -// | |
| 146 | -// CNLiveHomePageViewModel.getAlbumList(aid: aid){ result, status in | |
| 147 | -// hiddenLoading() | |
| 148 | -// if status == .success{ | |
| 149 | -// let arr = result as! Array<CNLiveAlbumListModel> | |
| 150 | -// self.albumModelArr = Array(arr) | |
| 151 | -// self.getAlbumMsg() | |
| 152 | -// }else{ | |
| 153 | -// | |
| 154 | -// } | |
| 155 | -// } | |
| 144 | + CNLiveHomePageViewModel.getAlbumList(aid: aid){ result, status in | |
| 145 | + hiddenLoading() | |
| 146 | + if status == .success{ | |
| 147 | + let arr = result as! Array<CNLiveAlbumListModel> | |
| 148 | + self.albumModelArr = Array(arr) | |
| 149 | + self.getAlbumMsg() | |
| 150 | + }else{ | |
| 151 | + | |
| 152 | + } | |
| 153 | + } | |
| 156 | 154 | } |
| 157 | 155 | } | ... | ... |
metaCode/Classes/Main/HomePages/View/PlayletHomePage/CNLivePlayletHomePageHeaderCell.swift
| ... | ... | @@ -311,11 +311,13 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ |
| 311 | 311 | button.isSelected = !button.isSelected |
| 312 | 312 | if self.albumListModel?.product?.check == false{ |
| 313 | 313 | //未购买->购买 |
| 314 | - //弹窗购买,再调用接口 | |
| 315 | - | |
| 316 | - | |
| 317 | -// self.postOrderVideoByPoint() | |
| 318 | - | |
| 314 | + CNLiveIntegralAlertTool.shared.showIntegralAlert(title: "\(self.albumListModel?.albumMsgModel?.albumName ?? "")共\(self.albumListModel?.albumMsgModel?.episodeNow ?? "1")集", integralCount: self.albumListModel?.albumMsgModel?.product?.point ?? "0", productId: self.albumListModel?.product?.productId ?? "") | |
| 315 | + CNLiveIntegralAlertTool.shared.homePageNeedReloadActionBlock = { | |
| 316 | + self.homePageNeedReloadActionBlock!() | |
| 317 | + DispatchQueue.main.asyncAfter(deadline: .now()+1.5) { [self] in | |
| 318 | + self.followChangeStatus(isFollowed: true) | |
| 319 | + } | |
| 320 | + } | |
| 319 | 321 | } |
| 320 | 322 | } |
| 321 | 323 | func paymentChangeStatus(isPayed:Bool){ |
| ... | ... | @@ -382,23 +384,6 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ |
| 382 | 384 | } |
| 383 | 385 | } |
| 384 | 386 | |
| 385 | - // MARK: - 积分付费接口 | |
| 386 | - func postOrderVideoByPoint(){ | |
| 387 | - //付费接口 | |
| 388 | - CNLiveHomePageViewModel.orderVideoByPoint(prdId: self.albumListModel?.product?.productId ?? "") { result, status in | |
| 389 | - if status == .success{ | |
| 390 | - //购买成功 | |
| 391 | - | |
| 392 | - //刷新短剧首页数据 | |
| 393 | - self.homePageNeedReloadActionBlock!() | |
| 394 | - }else{ | |
| 395 | - //购买失败 | |
| 396 | - let errMsg = result as! String | |
| 397 | - showMessage(message: errMsg) | |
| 398 | - } | |
| 399 | - } | |
| 400 | - | |
| 401 | - } | |
| 402 | 387 | // MARK: - 网络请求 追剧1/取消追剧2 |
| 403 | 388 | func postAlbumCollect(type:NSInteger){ |
| 404 | 389 | CNLiveHomePageViewModel.postAlbumCollect(aid: self.albumListModel?.albumMsgModel?.albumId ?? "", type: type) { result, status in | ... | ... |
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
| ... | ... | @@ -182,16 +182,18 @@ class CNLiveHomePageViewModel:NSObject{ |
| 182 | 182 | static func orderVideoByPoint(prdId:String,resultBlock: @escaping downSlideResultBlock) { |
| 183 | 183 | let param = NSMutableDictionary() |
| 184 | 184 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") |
| 185 | - param.setValue(APPId, forKey: "sp_id") | |
| 185 | + param.setValue(APPId_wjj, forKey: "sp_id") | |
| 186 | 186 | param.setValue(prdId, forKey: "prdId") |
| 187 | 187 | param.setValue("apple", forKey: "frmId") |
| 188 | 188 | param.setValue(CNLiveHomePageViewModel.getRandomOrderId(), forKey: "srvOrderId") |
| 189 | - | |
| 189 | + let customParam = NSMutableDictionary() | |
| 190 | + customParam.setValue(APPId, forKey: "appId") | |
| 191 | + customParam.setValue(APPKey, forKey: "appKey") | |
| 192 | + | |
| 190 | 193 | CNLiveNetworking.setupShowResult(true) |
| 191 | 194 | CNLiveNetworking.setAllowRequestDefaultArgument(true) |
| 192 | 195 | CNLiveNetworking.setupShowDataResult(false) |
| 193 | - CNLiveNetworking.setupSignRequestKey(APPKey)//APPKey_wjj APPKey | |
| 194 | - | |
| 196 | + CNLiveNetworking.setupCustomParam(customParam as? [String : String]) | |
| 195 | 197 | CNLiveNetworking.requestNetwork(with: .POST, urlString: "\(CNLiveEnvironmentManager.shared.img_token_url)/pom/orderVideoByPoint", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in |
| 196 | 198 | hiddenLoading() |
| 197 | 199 | if (error == nil) { |
| ... | ... | @@ -222,7 +224,7 @@ class CNLiveHomePageViewModel:NSObject{ |
| 222 | 224 | //取毫秒时间戳 |
| 223 | 225 | let timestamp13 = String(format: "%ld",self.getNow13Timestamp())//timeStamp) |
| 224 | 226 | //拼接 |
| 225 | - randomOrderId = String(format: "%@%@%@%d", APPId, currentDateString, timestamp13, Int.random(in: 0..<10)) | |
| 227 | + randomOrderId = String(format: "%@%@%@%d", APPId_wjj, currentDateString, timestamp13, Int.random(in: 0..<10)) | |
| 226 | 228 | |
| 227 | 229 | return randomOrderId |
| 228 | 230 | } | ... | ... |
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paySuccess.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "jifen_paySuccess@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "jifen_paySuccess@3x.png", | |
| 14 | + "idiom" : "universal", | |
| 15 | + "scale" : "3x" | |
| 16 | + } | |
| 17 | + ], | |
| 18 | + "info" : { | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | + } | |
| 22 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paySuccess.imageset/jifen_paySuccess@2x.png
0 → 100644
12.4 KB
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paySuccess.imageset/jifen_paySuccess@3x.png
0 → 100644
27.2 KB
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paying.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "jifen_paying@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "jifen_paying@3x.png", | |
| 14 | + "idiom" : "universal", | |
| 15 | + "scale" : "3x" | |
| 16 | + } | |
| 17 | + ], | |
| 18 | + "info" : { | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | + } | |
| 22 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paying.imageset/jifen_paying@2x.png
0 → 100644
3.01 KB
metaCode/Supporting Files/Assets.xcassets/HomePage/jifen_paying.imageset/jifen_paying@3x.png
0 → 100644
5.57 KB
metaCode/Supporting Files/Assets.xcassets/HomePage/point_alert_close.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "point_alert_close@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "point_alert_close@3x.png", | |
| 14 | + "idiom" : "universal", | |
| 15 | + "scale" : "3x" | |
| 16 | + } | |
| 17 | + ], | |
| 18 | + "info" : { | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | + } | |
| 22 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/HomePage/point_alert_close.imageset/point_alert_close@2x.png
0 → 100644
977 Bytes
metaCode/Supporting Files/Assets.xcassets/HomePage/point_alert_close.imageset/point_alert_close@3x.png
0 → 100644
1.73 KB