Commit 2bf60226f82560e48ac5d708726b38a6a818a7a7

Authored by “张旭”
1 parent 9b4258e2

1.1.7.25.04.25.19 ,

元码v1.1.7
新增功能
- 新增新增首页Banner分享电视剧
- 新增首页好看送好礼入口分享电视剧
- 新增我的广告条分享电视剧

优化功能
- 优化市场预览图
- 优化点播页评论显示评论数

修复功能
- 修复非点播页提前录屏或横屏后录屏导致可以录屏的问题
- 修复快速点击视频内容导致白屏或闪退的问题
- 修复专辑上次播放集数不存在导致的无法跳转点播页的问题
- 修复系统深色模式时点播页展开详情变黑的问题
metaCode.xcodeproj/project.pbxproj
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
11 19023DB72D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DB62D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift */; }; 11 19023DB72D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DB62D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift */; };
12 19023DBB2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DBA2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift */; }; 12 19023DBB2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DBA2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift */; };
13 19023DBD2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DBC2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift */; }; 13 19023DBD2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19023DBC2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift */; };
  14 + 19088A182DBBA6D800E53176 /* CNLiveMineGiftCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19088A172DBBA6D700E53176 /* CNLiveMineGiftCell.swift */; };
14 1909DC962C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC952C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift */; }; 15 1909DC962C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC952C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift */; };
15 1909DC982C6342C4001E7986 /* CNLiveDigitalThreeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC972C6342C3001E7986 /* CNLiveDigitalThreeCell.swift */; }; 16 1909DC982C6342C4001E7986 /* CNLiveDigitalThreeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC972C6342C3001E7986 /* CNLiveDigitalThreeCell.swift */; };
16 1909DC9B2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC9A2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift */; }; 17 1909DC9B2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift in Sources */ = {isa = PBXBuildFile; fileRef = 1909DC9A2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift */; };
@@ -418,6 +419,7 @@ @@ -418,6 +419,7 @@
418 19023DB62D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeLanmuThreeImgCell.swift; sourceTree = "<group>"; }; 419 19023DB62D80339800872398 /* CNLiveHomeLanmuThreeImgCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeLanmuThreeImgCell.swift; sourceTree = "<group>"; };
419 19023DBA2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeShopCategoryCell.swift; sourceTree = "<group>"; }; 420 19023DBA2D8270DA00872398 /* CNLiveHomeShopCategoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeShopCategoryCell.swift; sourceTree = "<group>"; };
420 19023DBC2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeShopCategoryModel.swift; sourceTree = "<group>"; }; 421 19023DBC2D8282DE00872398 /* CNLiveHomeShopCategoryModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveHomeShopCategoryModel.swift; sourceTree = "<group>"; };
  422 + 19088A172DBBA6D700E53176 /* CNLiveMineGiftCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineGiftCell.swift; sourceTree = "<group>"; };
421 1909DC952C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumePreViewController.swift; sourceTree = "<group>"; }; 423 1909DC952C6309EC001E7986 /* CNLiveDigitalResumePreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumePreViewController.swift; sourceTree = "<group>"; };
422 1909DC972C6342C3001E7986 /* CNLiveDigitalThreeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalThreeCell.swift; sourceTree = "<group>"; }; 424 1909DC972C6342C3001E7986 /* CNLiveDigitalThreeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalThreeCell.swift; sourceTree = "<group>"; };
423 1909DC9A2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CNLiveDigitalThreeCerCollectCell .swift"; sourceTree = "<group>"; }; 425 1909DC9A2C634D6F001E7986 /* CNLiveDigitalThreeCerCollectCell .swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CNLiveDigitalThreeCerCollectCell .swift"; sourceTree = "<group>"; };
@@ -1966,6 +1968,7 @@ @@ -1966,6 +1968,7 @@
1966 1958B4172D8572A200F37E35 /* CNLiveMinePlayHistoryCell.swift */, 1968 1958B4172D8572A200F37E35 /* CNLiveMinePlayHistoryCell.swift */,
1967 1958B41B2D87BD3E00F37E35 /* CNLiveMinePlayHistoryCollectionCell.swift */, 1969 1958B41B2D87BD3E00F37E35 /* CNLiveMinePlayHistoryCollectionCell.swift */,
1968 1958B4192D8572C100F37E35 /* CNLiveMineMineOrderCell.swift */, 1970 1958B4192D8572C100F37E35 /* CNLiveMineMineOrderCell.swift */,
  1971 + 19088A172DBBA6D700E53176 /* CNLiveMineGiftCell.swift */,
1969 ); 1972 );
1970 path = View; 1973 path = View;
1971 sourceTree = "<group>"; 1974 sourceTree = "<group>";
@@ -2601,6 +2604,7 @@ @@ -2601,6 +2604,7 @@
2601 792E57DB2A3AE9F4005834DB /* CNLiveCommonQiniuTool.swift in Sources */, 2604 792E57DB2A3AE9F4005834DB /* CNLiveCommonQiniuTool.swift in Sources */,
2602 191732F12B084822007BCC04 /* CNLiveShopClassifyInputTableViewCell.swift in Sources */, 2605 191732F12B084822007BCC04 /* CNLiveShopClassifyInputTableViewCell.swift in Sources */,
2603 191733212B143F3A007BCC04 /* CNLiveGradientView.swift in Sources */, 2606 191733212B143F3A007BCC04 /* CNLiveGradientView.swift in Sources */,
  2607 + 19088A182DBBA6D800E53176 /* CNLiveMineGiftCell.swift in Sources */,
2604 19AD65AE2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift in Sources */, 2608 19AD65AE2BA177C20045A444 /* CNLiveShopGoodsDetailsTableHeaderView.swift in Sources */,
2605 192ED46B2C4F77450057244C /* CNLiveHangYeSecCell.swift in Sources */, 2609 192ED46B2C4F77450057244C /* CNLiveHangYeSecCell.swift in Sources */,
2606 1958B41C2D87BD3E00F37E35 /* CNLiveMinePlayHistoryCollectionCell.swift in Sources */, 2610 1958B41C2D87BD3E00F37E35 /* CNLiveMinePlayHistoryCollectionCell.swift in Sources */,
@@ -2956,7 +2960,7 @@ @@ -2956,7 +2960,7 @@
2956 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; 2960 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements;
2957 CODE_SIGN_IDENTITY = "Apple Development"; 2961 CODE_SIGN_IDENTITY = "Apple Development";
2958 CODE_SIGN_STYLE = Automatic; 2962 CODE_SIGN_STYLE = Automatic;
2959 - CURRENT_PROJECT_VERSION = 1.1.7.25.04.25.16; 2963 + CURRENT_PROJECT_VERSION = 1.1.7.25.04.25.19;
2960 DEBUG_INFORMATION_FORMAT = dwarf; 2964 DEBUG_INFORMATION_FORMAT = dwarf;
2961 DEVELOPMENT_TEAM = 94X49GG3ZW; 2965 DEVELOPMENT_TEAM = 94X49GG3ZW;
2962 ENABLE_BITCODE = NO; 2966 ENABLE_BITCODE = NO;
@@ -3212,7 +3216,7 @@ @@ -3212,7 +3216,7 @@
3212 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; 3216 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements;
3213 CODE_SIGN_IDENTITY = "Apple Development"; 3217 CODE_SIGN_IDENTITY = "Apple Development";
3214 CODE_SIGN_STYLE = Automatic; 3218 CODE_SIGN_STYLE = Automatic;
3215 - CURRENT_PROJECT_VERSION = 1.1.7.25.04.25.16; 3219 + CURRENT_PROJECT_VERSION = 1.1.7.25.04.25.19;
3216 DEVELOPMENT_TEAM = 94X49GG3ZW; 3220 DEVELOPMENT_TEAM = 94X49GG3ZW;
3217 ENABLE_BITCODE = NO; 3221 ENABLE_BITCODE = NO;
3218 ENABLE_MODULE_VERIFIER = NO; 3222 ENABLE_MODULE_VERIFIER = NO;
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideViewController.swift
@@ -32,6 +32,8 @@ let SlideModelTypeShop29: String = &quot;29&quot;//29 官方周边 @@ -32,6 +32,8 @@ let SlideModelTypeShop29: String = &quot;29&quot;//29 官方周边
32 let SlideModelTypeShopCategory78: String = "78"//78电商分类 32 let SlideModelTypeShopCategory78: String = "78"//78电商分类
33 33
34 //let SlideModelTypeThreeDuanJu5: String = "5"//忽必烈版5一排三个 旧版5竖版短剧 一排两个 34 //let SlideModelTypeThreeDuanJu5: String = "5"//忽必烈版5一排三个 旧版5竖版短剧 一排两个
  35 +let SlideModelTypeApp_ext_info: String = "app_ext_info"//gift
  36 +
35 37
36 38
37 39
metaCode/Classes/Main/HomePages/Model/CNLiveHomePageModel.swift
@@ -42,6 +42,21 @@ class CNLiveHomePageHuBiLieModel:BaseModel{ @@ -42,6 +42,21 @@ class CNLiveHomePageHuBiLieModel:BaseModel{
42 42
43 } 43 }
44 44
  45 +////// 忽必烈首页频道Giftmodel
  46 +class CNLiveHomePageHuBiLieGiftModel:BaseModel{
  47 + var type = ""
  48 + var data :CNLiveHomePageHuBiLieGiftBannerDataModel?
  49 +}
  50 +class CNLiveHomePageHuBiLieGiftBannerDataModel:BaseModel{
  51 + var share_app_banner :CNLiveHomePageHuBiLieGiftDataModel?
  52 +}
  53 +class CNLiveHomePageHuBiLieGiftDataModel:BaseModel{
  54 + var home_image = ""
  55 + var jumpUrl = ""
  56 + var mine_image = ""
  57 +}
  58 +
  59 +
45 //播放记录 60 //播放记录
46 class CNLiveHomeFollowListBaseModel:BaseModel{ 61 class CNLiveHomeFollowListBaseModel:BaseModel{
47 var endRow = 0 62 var endRow = 0
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
@@ -265,6 +265,35 @@ class CNLiveHomePageViewModel:NSObject,URLSessionTaskDelegate{ @@ -265,6 +265,35 @@ class CNLiveHomePageViewModel:NSObject,URLSessionTaskDelegate{
265 } 265 }
266 } 266 }
267 } 267 }
  268 + ///写死送礼banner
  269 + static func requestGetHomePageTopBannerGift( resultBlock: @escaping downSlideResultBlock) {
  270 + let param = NSMutableDictionary()
  271 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  272 + CNLiveNetworking.setupShowDataResult(false)
  273 + let custom_param = NSMutableDictionary()
  274 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId")
  275 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey")
  276 + CNLiveNetworking.setupCustomParam(custom_param as? [String : String])
  277 +// https://wjj.ys1.cnliveimg.com/download/mc/extInfoData/extInfo.json
  278 + CNLiveNetworking.requestNetwork(with: .GET, urlString: "https://wjj.ys1.cnliveimg.com/download/mc/extInfoData/extInfo.json", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in
  279 + hiddenLoading()
  280 + if (error == nil) {
  281 + let resp = result as! NSDictionary
  282 + let type = resp["type"] as! String
  283 + let data = resp["data"] as! NSDictionary
  284 + let share_app_banner = data["share_app_banner"] as! NSDictionary
  285 + let home_image = share_app_banner["home_image"] as! String
  286 + let jumpUrl = share_app_banner["jumpUrl"] as! String
  287 + let mine_image = share_app_banner["mine_image"] as! String
  288 + let dataMdl = newDictionaryToModel(resp as! [String : Any], CNLiveHomePageHuBiLieGiftModel.self)
  289 + resultBlock(dataMdl,.success)
  290 +
  291 + }else{
  292 + resultBlock(NSNull(),.failed)
  293 + }
  294 + }
  295 + }
  296 +
268 //电商分类 297 //电商分类
269 static func requestGetHomePageShopCategoryApi(shop_id:String,resultBlock: @escaping downSlideResultBlock) { 298 static func requestGetHomePageShopCategoryApi(shop_id:String,resultBlock: @escaping downSlideResultBlock) {
270 let param = NSMutableDictionary() 299 let param = NSMutableDictionary()
metaCode/Classes/Main/HuBiLieHomePage/Controller/CNLiveTVHomeViewController.swift
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 import Foundation 8 import Foundation
9 import QMUIKit 9 import QMUIKit
10 import MJRefresh 10 import MJRefresh
  11 +import CNLiveShareToolKit
11 12
12 class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{ 13 class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{
13 14
@@ -117,6 +118,24 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -117,6 +118,24 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
117 playBtn.isHidden = true 118 playBtn.isHidden = true
118 return playBtn 119 return playBtn
119 }() 120 }()
  121 + //share gift
  122 + lazy var shareGiftBtn: UIButton = {
  123 + let expandBtn = UIButton.init(type: .custom)
  124 + expandBtn.backgroundColor = .clear
  125 + expandBtn.frame = CGRect(x: 0, y: 0, width: 90, height: 20)
  126 + expandBtn.setTitle("好看送好礼", for: .normal)
  127 + expandBtn.setTitle("好看送好礼", for: .selected)
  128 + expandBtn.setTitleColor(HexColor("#333333"), for: .normal)
  129 + expandBtn.setImage(UIImage(named: "home_shareGift"), for: .normal)
  130 + expandBtn.setImage(UIImage(named: "home_shareGift"), for: .selected)
  131 + expandBtn.titleLabel?.font = Font_11
  132 + expandBtn.setupButtonImageAndTitlePossitionWith(padding: 4, style: .left)
  133 + expandBtn.addTarget(self, action: #selector(shareGiftBtnAction), for: .touchUpInside)
  134 + expandBtn.backgroundColor = HexColor("#FFEFE9")
  135 + expandBtn.clipsToBounds = true
  136 + expandBtn.layer.cornerRadius = 10
  137 + return expandBtn
  138 + }()
120 139
121 ///数据源 140 ///数据源
122 lazy var dataArray: NSMutableArray = { 141 lazy var dataArray: NSMutableArray = {
@@ -124,6 +143,7 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -124,6 +143,7 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
124 return dataArray 143 return dataArray
125 }() 144 }()
126 var currStyleIndex = 0 145 var currStyleIndex = 0
  146 + var giftModel:CNLiveHomePageHuBiLieGiftModel?//送礼分享model
127 147
128 override func viewDidLoad() { 148 override func viewDidLoad() {
129 super.viewDidLoad() 149 super.viewDidLoad()
@@ -154,6 +174,14 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -154,6 +174,14 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
154 view.addSubview(pageStyleBtn3) 174 view.addSubview(pageStyleBtn3)
155 view.addSubview(pageStyleBtn4) 175 view.addSubview(pageStyleBtn4)
156 176
  177 + view.addSubview(shareGiftBtn)
  178 + shareGiftBtn.snp.makeConstraints { make in
  179 + make.right.equalToSuperview().offset(-15)
  180 + make.width.equalTo(90)
  181 + make.height.equalTo(20)
  182 + make.centerY.equalTo(self.pageStyleBtn1.snp.centerY)
  183 + }
  184 +
157 view.addSubview(tableView) 185 view.addSubview(tableView)
158 tableView.frame = CGRect(x: 0, y: self.pageStyleBtn1.bottom+10, width: KSreenWidth, height: KSreenHeight-KTabBarHeight-self.pageStyleBtn1.bottom-10) 186 tableView.frame = CGRect(x: 0, y: self.pageStyleBtn1.bottom+10, width: KSreenWidth, height: KSreenHeight-KTabBarHeight-self.pageStyleBtn1.bottom-10)
159 self.getHomePageTopConfigListApi() 187 self.getHomePageTopConfigListApi()
@@ -243,6 +271,17 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -243,6 +271,17 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
243 271
244 } 272 }
245 273
  274 + @objc func shareGiftBtnAction(){
  275 + CNLiveShareManager.showShareViewWithParam(forShareTitle: "忽必烈电视剧", shareUrl: "http://wjjh5.cnlive.com/cnYmHbl.html?channelName=ymhbl", shareDesc: "邀你共赴大元史诗!点击加入追剧联盟", shareImage: UIImage(named: "shareAppIcon"), screenFull: false, hiddenWjj: true, hiddenQQ: true, hiddenWB: true, hiddenLifeCircle: true, hiddenWechatCircle: false, hiddenWechat: false, hiddenSafari: true, formVC: currentViewController(), topImage: [], topTitles: [], platformType: .all) { title in
  276 +
  277 + } completerBlock: { resultType, platformType, typeString in
  278 + if resultType == .succ{
  279 + print("succ")
  280 + }
  281 + }
  282 +
  283 + }
  284 +
246 // MARK: - UITableViewDelegate 285 // MARK: - UITableViewDelegate
247 func numberOfSections(in tableView: UITableView) -> Int { 286 func numberOfSections(in tableView: UITableView) -> Int {
248 return 1 287 return 1
@@ -401,143 +440,163 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -401,143 +440,163 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
401 }) 440 })
402 } 441 }
403 442
  443 + func getHomePageTopBannerGift(){
  444 + CNLiveHomePageViewModel.requestGetHomePageTopBannerGift{[weak self] result, status in
  445 + guard let self = self else { return }
  446 + if status == .success{
  447 + let giftModel = result as! CNLiveHomePageHuBiLieGiftModel
  448 + self.giftModel = giftModel
  449 + }
  450 + }
  451 + }
  452 +
404 //MARK: - 获取首页配置 453 //MARK: - 获取首页配置
405 func getHomePageTopConfigListApi(){ 454 func getHomePageTopConfigListApi(){
406 - CNLiveHomePageViewModel.requestGetHomePageTopConfigList{[weak self] result, status in 455 +// self.getHomePageTopBannerGift()
  456 + CNLiveHomePageViewModel.requestGetHomePageTopBannerGift{[weak self] result, status in
407 guard let self = self else { return } 457 guard let self = self else { return }
408 if status == .success{ 458 if status == .success{
409 -  
410 - let dataModelArr = result as! [CNLiveHomePageHuBiLieModel]  
411 - let dataModel = dataModelArr.first! 459 + let giftModel = result as! CNLiveHomePageHuBiLieGiftModel
  460 + self.giftModel = giftModel
412 461
413 - let img = dataModel.img  
414 - if img.count > 0{  
415 - self.iconImgView.kf.setImage(with: URL(string: img))  
416 - self.iconImgView.isHidden = false  
417 -  
418 - self.iconImgView.snp.remakeConstraints { make in  
419 - make.left.equalTo(15)  
420 - make.top.equalTo(KStatusBarHeight+10)  
421 - make.width.equalTo(74)  
422 - make.height.equalTo(32)  
423 - }  
424 - self.searBarView.snp.remakeConstraints { make in  
425 - make.left.equalTo(self.iconImgView.snp.right).offset(10)  
426 - make.top.equalTo(self.iconImgView.snp.top)  
427 - make.right.equalToSuperview().offset(-15)  
428 - make.height.equalTo(32)  
429 - }  
430 - }else{  
431 - self.iconImgView.isHidden = true  
432 - self.iconImgView.image = nil  
433 - self.iconImgView.snp.remakeConstraints { make in  
434 - make.left.equalTo(15)  
435 - make.top.equalTo(KStatusBarHeight+10)  
436 - make.width.equalTo(0)  
437 - make.height.equalTo(32)  
438 - }  
439 - self.searBarView.snp.remakeConstraints { make in  
440 - make.left.equalTo(self.iconImgView.snp.right)  
441 - make.top.equalTo(self.iconImgView.snp.top)  
442 - make.right.equalToSuperview().offset(-15)  
443 - make.height.equalTo(32)  
444 - }  
445 -  
446 - }  
447 -  
448 - let homePageListMdls = dataModel.pageStyleList  
449 - self.homePageStyleListMdls = homePageListMdls  
450 - for (idx,mdl) in homePageListMdls.enumerated() {  
451 - if idx == 0{  
452 - self.pageStyleBtn1.setTitle(mdl.showName, for: .normal)  
453 - var width = 60  
454 - if mdl.showName.count <= 2{  
455 - width = 60  
456 - }else if mdl.showName.count == 3{  
457 - width = 80 462 + CNLiveHomePageViewModel.requestGetHomePageTopConfigList{[weak self] result, status in
  463 + guard let self = self else { return }
  464 + if status == .success{
  465 +
  466 + let dataModelArr = result as! [CNLiveHomePageHuBiLieModel]
  467 + let dataModel = dataModelArr.first!
  468 +
  469 + let img = dataModel.img
  470 + if img.count > 0{
  471 + self.iconImgView.kf.setImage(with: URL(string: img))
  472 + self.iconImgView.isHidden = false
  473 +
  474 + self.iconImgView.snp.remakeConstraints { make in
  475 + make.left.equalTo(15)
  476 + make.top.equalTo(KStatusBarHeight+10)
  477 + make.width.equalTo(74)
  478 + make.height.equalTo(32)
  479 + }
  480 + self.searBarView.snp.remakeConstraints { make in
  481 + make.left.equalTo(self.iconImgView.snp.right).offset(10)
  482 + make.top.equalTo(self.iconImgView.snp.top)
  483 + make.right.equalToSuperview().offset(-15)
  484 + make.height.equalTo(32)
  485 + }
458 }else{ 486 }else{
459 - width = 100  
460 - }  
461 - //x10 3字80 2字60 高25 y:self.searBarView.bottom+20  
462 - self.pageStyleBtn1.snp.makeConstraints { make in  
463 - make.left.equalTo(10)  
464 - make.width.equalTo(width)  
465 - make.height.equalTo(25)  
466 - make.top.equalTo(self.searBarView.snp.bottom).offset(20)  
467 - }  
468 - self.changeBtn(btn: self.pageStyleBtn1, isHighLight: true)  
469 - self.pageStyleBtn1.isHidden = false  
470 -// self.group.enter()  
471 - self.getPageApi(pageID: mdl.pageId) 487 + self.iconImgView.isHidden = true
  488 + self.iconImgView.image = nil
  489 + self.iconImgView.snp.remakeConstraints { make in
  490 + make.left.equalTo(15)
  491 + make.top.equalTo(KStatusBarHeight+10)
  492 + make.width.equalTo(0)
  493 + make.height.equalTo(32)
  494 + }
  495 + self.searBarView.snp.remakeConstraints { make in
  496 + make.left.equalTo(self.iconImgView.snp.right)
  497 + make.top.equalTo(self.iconImgView.snp.top)
  498 + make.right.equalToSuperview().offset(-15)
  499 + make.height.equalTo(32)
  500 + }
472 501
473 - }else if idx == 1{  
474 - self.pageStyleBtn2.setTitle(mdl.showName, for: .normal)  
475 - var width = 60  
476 - if mdl.showName.count <= 2{  
477 - width = 60  
478 - }else if mdl.showName.count == 3{  
479 - width = 80  
480 - }else{  
481 - width = 100  
482 - }  
483 - self.pageStyleBtn2.snp.makeConstraints { make in  
484 - make.left.equalTo(self.pageStyleBtn1.snp.right)  
485 - make.width.equalTo(width)  
486 - make.height.equalTo(self.pageStyleBtn1.snp.height)  
487 - make.top.equalTo(self.pageStyleBtn1.snp.top)  
488 } 502 }
489 - self.changeBtn(btn: self.pageStyleBtn2, isHighLight: false)  
490 - self.pageStyleBtn2.isHidden = false  
491 - }else if idx == 2{  
492 - self.pageStyleBtn3.setTitle(mdl.showName, for: .normal)  
493 - var width = 60  
494 - if mdl.showName.count <= 2{  
495 - width = 60  
496 - }else if mdl.showName.count == 3{  
497 - width = 80  
498 - }else{  
499 - width = 100  
500 - }  
501 - self.pageStyleBtn3.snp.makeConstraints { make in  
502 - make.left.equalTo(self.pageStyleBtn2.snp.right)  
503 - make.width.equalTo(width)  
504 - make.height.equalTo(self.pageStyleBtn1.snp.height)  
505 - make.top.equalTo(self.pageStyleBtn1.snp.top)  
506 - }  
507 - self.changeBtn(btn: self.pageStyleBtn3, isHighLight: false)  
508 - self.pageStyleBtn3.isHidden = false  
509 - }else if idx == 3{  
510 - self.pageStyleBtn4.setTitle(mdl.showName, for: .normal)  
511 - var width = 60  
512 - if mdl.showName.count <= 2{  
513 - width = 60  
514 - }else if mdl.showName.count == 3{  
515 - width = 80  
516 - }else{  
517 - width = 100  
518 - }  
519 - self.pageStyleBtn4.snp.makeConstraints { make in  
520 - make.left.equalTo(self.pageStyleBtn3.snp.right)  
521 - make.width.equalTo(width)  
522 - make.height.equalTo(self.pageStyleBtn1.snp.height)  
523 - make.top.equalTo(self.pageStyleBtn1.snp.top) 503 +
  504 + let homePageListMdls = dataModel.pageStyleList
  505 + self.homePageStyleListMdls = homePageListMdls
  506 + for (idx,mdl) in homePageListMdls.enumerated() {
  507 + if idx == 0{
  508 + self.pageStyleBtn1.setTitle(mdl.showName, for: .normal)
  509 + var width = 60
  510 + if mdl.showName.count <= 2{
  511 + width = 60
  512 + }else if mdl.showName.count == 3{
  513 + width = 80
  514 + }else{
  515 + width = 100
  516 + }
  517 + //x10 3字80 2字60 高25 y:self.searBarView.bottom+20
  518 + self.pageStyleBtn1.snp.makeConstraints { make in
  519 + make.left.equalTo(10)
  520 + make.width.equalTo(width)
  521 + make.height.equalTo(25)
  522 + make.top.equalTo(self.searBarView.snp.bottom).offset(20)
  523 + }
  524 + self.changeBtn(btn: self.pageStyleBtn1, isHighLight: true)
  525 + self.pageStyleBtn1.isHidden = false
  526 + // self.group.enter()
  527 + self.getPageApi(pageID: mdl.pageId)
  528 +
  529 + }else if idx == 1{
  530 + self.pageStyleBtn2.setTitle(mdl.showName, for: .normal)
  531 + var width = 60
  532 + if mdl.showName.count <= 2{
  533 + width = 60
  534 + }else if mdl.showName.count == 3{
  535 + width = 80
  536 + }else{
  537 + width = 100
  538 + }
  539 + self.pageStyleBtn2.snp.makeConstraints { make in
  540 + make.left.equalTo(self.pageStyleBtn1.snp.right)
  541 + make.width.equalTo(width)
  542 + make.height.equalTo(self.pageStyleBtn1.snp.height)
  543 + make.top.equalTo(self.pageStyleBtn1.snp.top)
  544 + }
  545 + self.changeBtn(btn: self.pageStyleBtn2, isHighLight: false)
  546 + self.pageStyleBtn2.isHidden = false
  547 + }else if idx == 2{
  548 + self.pageStyleBtn3.setTitle(mdl.showName, for: .normal)
  549 + var width = 60
  550 + if mdl.showName.count <= 2{
  551 + width = 60
  552 + }else if mdl.showName.count == 3{
  553 + width = 80
  554 + }else{
  555 + width = 100
  556 + }
  557 + self.pageStyleBtn3.snp.makeConstraints { make in
  558 + make.left.equalTo(self.pageStyleBtn2.snp.right)
  559 + make.width.equalTo(width)
  560 + make.height.equalTo(self.pageStyleBtn1.snp.height)
  561 + make.top.equalTo(self.pageStyleBtn1.snp.top)
  562 + }
  563 + self.changeBtn(btn: self.pageStyleBtn3, isHighLight: false)
  564 + self.pageStyleBtn3.isHidden = false
  565 + }else if idx == 3{
  566 + self.pageStyleBtn4.setTitle(mdl.showName, for: .normal)
  567 + var width = 60
  568 + if mdl.showName.count <= 2{
  569 + width = 60
  570 + }else if mdl.showName.count == 3{
  571 + width = 80
  572 + }else{
  573 + width = 100
  574 + }
  575 + self.pageStyleBtn4.snp.makeConstraints { make in
  576 + make.left.equalTo(self.pageStyleBtn3.snp.right)
  577 + make.width.equalTo(width)
  578 + make.height.equalTo(self.pageStyleBtn1.snp.height)
  579 + make.top.equalTo(self.pageStyleBtn1.snp.top)
  580 + }
  581 + self.changeBtn(btn: self.pageStyleBtn4, isHighLight: false)
  582 + self.pageStyleBtn4.isHidden = false
  583 + }else{
  584 +
  585 + }
524 } 586 }
525 - self.changeBtn(btn: self.pageStyleBtn4, isHighLight: false)  
526 - self.pageStyleBtn4.isHidden = false 587 + // self.group.notify(queue: .main) {
  588 + // // 所有网络请求都已完成,在这里执行你的任务
  589 + // self.tableView.mj_header?.endRefreshing()
  590 + // self.tableView.reloadData()
  591 + // }
  592 +
527 }else{ 593 }else{
528 - 594 + self.getHomePageTopConfigListApi()
529 } 595 }
530 } 596 }
531 -// self.group.notify(queue: .main) {  
532 -// // 所有网络请求都已完成,在这里执行你的任务  
533 -// self.tableView.mj_header?.endRefreshing()  
534 -// self.tableView.reloadData()  
535 -// }  
536 -  
537 - }else{  
538 - self.getHomePageTopConfigListApi()  
539 } 597 }
540 } 598 }
  599 +
541 } 600 }
542 601
543 func getHomePageShopCategoryApi(shop_id:String){ 602 func getHomePageShopCategoryApi(shop_id:String){
@@ -622,6 +681,20 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource @@ -622,6 +681,20 @@ class CNLiveTVHomeViewController:CNLiveBaseViewController, UITableViewDataSource
622 681
623 let layout = CNLiveDownSlideModelLayout.init(model: model) 682 let layout = CNLiveDownSlideModelLayout.init(model: model)
624 let cellModel = layout.getCellHModel() 683 let cellModel = layout.getCellHModel()
  684 + if cellModel.type == SlideModelTypeBanner1{
  685 + //banner 写死第一个gift
  686 + let giftType = self.giftModel?.type
  687 + let giftMineImageUrl = self.giftModel?.data?.share_app_banner?.mine_image
  688 + let giftBannerImageUrl = self.giftModel?.data?.share_app_banner?.home_image
  689 + let giftJumpUrl = self.giftModel?.data?.share_app_banner?.jumpUrl
  690 +
  691 + let giftContentMdl = CNLiveDownSlideContentsModel()
  692 + giftContentMdl.poster = giftBannerImageUrl ?? ""
  693 + giftContentMdl.model = giftType ?? SlideModelTypeApp_ext_info
  694 + giftContentMdl.title = "忽必烈电视剧"
  695 + giftContentMdl.shareUrl = giftJumpUrl ?? "http://wjjh5.cnlive.com/cnYmHbl.html?channelName=ymhbl"
  696 + cellModel.contents.insert(giftContentMdl, at: 0)
  697 + }
625 newDataArray.addObjects(from: [cellModel]) 698 newDataArray.addObjects(from: [cellModel])
626 if model.type == SlideModelTypeFollow77{ 699 if model.type == SlideModelTypeFollow77{
627 // self.group.enter() 700 // self.group.enter()
metaCode/Classes/Main/HuBiLieHomePage/Util/CNLiveDownSlideTool.swift
@@ -258,10 +258,10 @@ class CNLiveDownSlideTool:NSObject{ @@ -258,10 +258,10 @@ class CNLiveDownSlideTool:NSObject{
258 print("无法将字符串转换为数据") 258 print("无法将字符串转换为数据")
259 } 259 }
260 }else{ 260 }else{
  261 + hiddenLoading()
261 return 262 return
262 } 263 }
263 } 264 }
264 -  
265 // MARK: - 跳转电商订单页 type1 state:0全部 1待付款 2待发货 3代收货 ,购物车type2,地址管理type3 ,我的售后type4 265 // MARK: - 跳转电商订单页 type1 state:0全部 1待付款 2待发货 3代收货 ,购物车type2,地址管理type3 ,我的售后type4
266 // 266 //
267 class func pushShopH5WithType(type:String,state:String){ 267 class func pushShopH5WithType(type:String,state:String){
metaCode/Classes/Main/HuBiLieHomePage/View/Home/Home/CNLiveHomeYingshiBannerCell.swift
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 7
8 import Foundation 8 import Foundation
9 import FSPagerView 9 import FSPagerView
  10 +import CNLiveShareToolKit
10 11
11 class CNLiveHomeYingshiBannerCell: UITableViewCell ,FSPagerViewDataSource,FSPagerViewDelegate{ 12 class CNLiveHomeYingshiBannerCell: UITableViewCell ,FSPagerViewDataSource,FSPagerViewDelegate{
12 13
@@ -108,8 +109,17 @@ class CNLiveHomeYingshiBannerCell: UITableViewCell ,FSPagerViewDataSource,FSPage @@ -108,8 +109,17 @@ class CNLiveHomeYingshiBannerCell: UITableViewCell ,FSPagerViewDataSource,FSPage
108 return 109 return
109 } 110 }
110 if let bannerMdl = self.slideModel?.contents[index]{ 111 if let bannerMdl = self.slideModel?.contents[index]{
111 -  
112 - CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: bannerMdl.model, contentId: bannerMdl.contentId, pid: bannerMdl.pid, shareUrl: bannerMdl.shareUrl, thirdUrl: bannerMdl.thirdUrl, title: bannerMdl.title, s_to: bannerMdl.s_to, trailerId: bannerMdl.trailerId, controller: navigationViewController().visibleViewController, slideModel: nil) 112 + if bannerMdl.model == SlideModelTypeApp_ext_info{
  113 + CNLiveShareManager.showShareViewWithParam(forShareTitle: "忽必烈电视剧", shareUrl: bannerMdl.shareUrl.count > 0 ? bannerMdl.shareUrl : "http://wjjh5.cnlive.com/cnYmHbl.html?channelName=ymhbl", shareDesc: "邀你共赴大元史诗!点击加入追剧联盟", shareImage: UIImage(named: "shareAppIcon"), screenFull: false, hiddenWjj: true, hiddenQQ: true, hiddenWB: true, hiddenLifeCircle: true, hiddenWechatCircle: false, hiddenWechat: false, hiddenSafari: true, formVC: currentViewController(), topImage: [], topTitles: [], platformType: .all) { title in
  114 +
  115 + } completerBlock: { resultType, platformType, typeString in
  116 + if resultType == .succ{
  117 + print("succ")
  118 + }
  119 + }
  120 + }else{
  121 + CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: bannerMdl.model, contentId: bannerMdl.contentId, pid: bannerMdl.pid, shareUrl: bannerMdl.shareUrl, thirdUrl: bannerMdl.thirdUrl, title: bannerMdl.title, s_to: bannerMdl.s_to, trailerId: bannerMdl.trailerId, controller: navigationViewController().visibleViewController, slideModel: nil)
  122 + }
113 } 123 }
114 // if bannerMdl?.model == "1" || bannerMdl?.model == "album_video"{ 124 // if bannerMdl?.model == "1" || bannerMdl?.model == "album_video"{
115 // //点播页面 125 // //点播页面
metaCode/Classes/Main/MinePage/Controller/CNLiveMineViewController.swift
@@ -12,7 +12,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -12,7 +12,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
12 12
13 let kCNLiveMinePlayHistoryCellIdentifier = "kCNLiveMinePlayHistoryCellIdentifier" 13 let kCNLiveMinePlayHistoryCellIdentifier = "kCNLiveMinePlayHistoryCellIdentifier"
14 let kCNLiveMineMineOrderCellIdentifier = "kCNLiveMineMineOrderCellIdentifier" 14 let kCNLiveMineMineOrderCellIdentifier = "kCNLiveMineMineOrderCellIdentifier"
15 - 15 + let kCNLiveMineGiftCellIdentifier = "kCNLiveMineGiftCellIdentifier"
16 let kCNLiveMineOneViewCellIdentifier = "kCNLiveMineOneViewCellIdentifier" 16 let kCNLiveMineOneViewCellIdentifier = "kCNLiveMineOneViewCellIdentifier"
17 let kCNLiveMineTwoViewCellIdentifier = "kCNLiveMineTwoViewCellIdentifier" 17 let kCNLiveMineTwoViewCellIdentifier = "kCNLiveMineTwoViewCellIdentifier"
18 let kMineBodyThreeViewCellIdentifier = "kMineBodyThreeViewCellIdentifier" 18 let kMineBodyThreeViewCellIdentifier = "kMineBodyThreeViewCellIdentifier"
@@ -28,8 +28,9 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -28,8 +28,9 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
28 tableView.register(MineBodyThreeViewCell.self, forCellReuseIdentifier: kMineBodyThreeViewCellIdentifier) 28 tableView.register(MineBodyThreeViewCell.self, forCellReuseIdentifier: kMineBodyThreeViewCellIdentifier)
29 tableView.register(CNLiveMinePlayHistoryCell.self, forCellReuseIdentifier: kCNLiveMinePlayHistoryCellIdentifier) 29 tableView.register(CNLiveMinePlayHistoryCell.self, forCellReuseIdentifier: kCNLiveMinePlayHistoryCellIdentifier)
30 tableView.register(CNLiveMineMineOrderCell.self, forCellReuseIdentifier: kCNLiveMineMineOrderCellIdentifier) 30 tableView.register(CNLiveMineMineOrderCell.self, forCellReuseIdentifier: kCNLiveMineMineOrderCellIdentifier)
31 -  
32 31
  32 + tableView.register(CNLiveMineGiftCell.self, forCellReuseIdentifier: kCNLiveMineGiftCellIdentifier)
  33 +
33 return tableView 34 return tableView
34 }() 35 }()
35 36
@@ -48,6 +49,9 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -48,6 +49,9 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
48 let array1 : [Dictionary] = [["name":"播放记录","icon":"mine_list_icon_help_feedback"]] 49 let array1 : [Dictionary] = [["name":"播放记录","icon":"mine_list_icon_help_feedback"]]
49 dataArray.add(array1) 50 dataArray.add(array1)
50 51
  52 + let array0 : [Dictionary] = [["name":"送礼","icon":""]]
  53 + dataArray.add(array0)
  54 +
51 let array01 : [Dictionary] = [["name":"已购内容","icon":"mine_list_icon_help_feedback"]] 55 let array01 : [Dictionary] = [["name":"已购内容","icon":"mine_list_icon_help_feedback"]]
52 dataArray.add(array01) 56 dataArray.add(array01)
53 57
@@ -81,6 +85,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -81,6 +85,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
81 85
82 var checkModel: MinePointCheckInModel! 86 var checkModel: MinePointCheckInModel!
83 var followModels:[CNLiveHomeFollowModel]?//播放记录 87 var followModels:[CNLiveHomeFollowModel]?//播放记录
  88 + var giftModel:CNLiveHomePageHuBiLieGiftModel?//送礼分享model
84 override func viewDidLoad() { 89 override func viewDidLoad() {
85 super.viewDidLoad() 90 super.viewDidLoad()
86 view.backgroundColor = HexColor("#f9f9f9") 91 view.backgroundColor = HexColor("#f9f9f9")
@@ -105,6 +110,19 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -105,6 +110,19 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
105 // StandAuthNotificationSuccessAction() 110 // StandAuthNotificationSuccessAction()
106 } 111 }
107 112
  113 + func loadGift(){
  114 + showLoading(message: "")
  115 + CNLiveHomePageViewModel.requestGetHomePageTopBannerGift{[weak self] result, status in
  116 + guard let self = self else { return }
  117 + hiddenLoading()
  118 + if status == .success{
  119 + let giftModel = result as! CNLiveHomePageHuBiLieGiftModel
  120 + self.giftModel = giftModel
  121 + self.tableView.reloadData()
  122 + }
  123 + }
  124 + }
  125 +
108 func getHomePageFollowApi(sid:String){ 126 func getHomePageFollowApi(sid:String){
109 CNLiveHomePageViewModel.requestGetMinePlayHistory(sid: sid, page: 1){[weak self] result, status in 127 CNLiveHomePageViewModel.requestGetMinePlayHistory(sid: sid, page: 1){[weak self] result, status in
110 guard let self = self else { return } 128 guard let self = self else { return }
@@ -112,7 +130,8 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, @@ -112,7 +130,8 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate,
112 if status == .success{ 130 if status == .success{
113 let followBaseMdl = result as! CNLiveHomeFollowListBaseModel 131 let followBaseMdl = result as! CNLiveHomeFollowListBaseModel
114 self.followModels = followBaseMdl.list 132 self.followModels = followBaseMdl.list
115 - self.tableView.reloadData() 133 + self.loadGift()
  134 +
116 }else{ 135 }else{
117 //没有 136 //没有
118 } 137 }
@@ -292,6 +311,10 @@ extension CNLiveMineViewController { @@ -292,6 +311,10 @@ extension CNLiveMineViewController {
292 } 311 }
293 return cell 312 return cell
294 313
  314 + }else if name == "送礼"{
  315 + let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineGiftCellIdentifier) as! CNLiveMineGiftCell
  316 + cell.giftModel = self.giftModel
  317 + return cell
295 }else if name == "已购内容"{ 318 }else if name == "已购内容"{
296 let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineTwoViewCellIdentifier) as! MineBodyTwoListViewCell 319 let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineTwoViewCellIdentifier) as! MineBodyTwoListViewCell
297 let array = dataArray[indexPath.section] 320 let array = dataArray[indexPath.section]
@@ -334,6 +357,8 @@ extension CNLiveMineViewController { @@ -334,6 +357,8 @@ extension CNLiveMineViewController {
334 return 100 357 return 100
335 } 358 }
336 } 359 }
  360 + }else if name == "送礼"{
  361 + return CGFloat(Float(CNLiveHomeADH))
337 }else if name == "已购内容"{ 362 }else if name == "已购内容"{
338 return 60 363 return 60
339 }else if name == "我的订单"{ 364 }else if name == "我的订单"{
@@ -361,6 +386,8 @@ extension CNLiveMineViewController { @@ -361,6 +386,8 @@ extension CNLiveMineViewController {
361 let name = sub_dict["name"] as! String 386 let name = sub_dict["name"] as! String
362 if name == "播放记录"{ 387 if name == "播放记录"{
363 388
  389 + }else if name == "送礼"{
  390 +
364 }else if name == "已购内容"{ 391 }else if name == "已购内容"{
365 //已购内容 392 //已购内容
366 let webVC = CNWebViewController() 393 let webVC = CNWebViewController()
metaCode/Classes/Main/MinePage/View/CNLiveMineGiftCell.swift 0 → 100644
  1 +//
  2 +// CNLiveMineGiftCell.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2025/4/25.
  6 +//
  7 +
  8 +import Foundation
  9 +import CNLiveShareToolKit
  10 +class CNLiveMineGiftCell:UITableViewCell{
  11 +
  12 + //giftModel
  13 + var _giftModel : CNLiveHomePageHuBiLieGiftModel?
  14 + var giftModel : CNLiveHomePageHuBiLieGiftModel? {
  15 + get{
  16 + _giftModel
  17 + }
  18 + set{
  19 + _giftModel = newValue
  20 + let mine_image = _giftModel?.data?.share_app_banner?.mine_image
  21 + self.iconImgView.kf.setImage(with: URL(string: mine_image ?? ""))
  22 +
  23 + }
  24 + }
  25 +
  26 + lazy var mainView: UIView = {
  27 + let mainView = UIView.init()
  28 + mainView.backgroundColor = .white
  29 + mainView.layer.cornerRadius = 15
  30 + mainView.layer.masksToBounds = true
  31 + return mainView
  32 + }()
  33 + lazy var iconImgView :UIImageView = {
  34 + let imageView = UIImageView()
  35 + imageView.layer.cornerRadius = 9
  36 + imageView.clipsToBounds = true
  37 + imageView.contentMode = .scaleAspectFill
  38 + imageView.isUserInteractionEnabled = true
  39 + imageView.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(imgTapAction)))
  40 + return imageView
  41 + }()
  42 +
  43 + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  44 + super.init(style: style, reuseIdentifier: reuseIdentifier)
  45 + self.selectionStyle = .none
  46 + self.backgroundColor = .clear
  47 + contentView.backgroundColor = .clear
  48 + self.contentView.clipsToBounds = true
  49 +
  50 + self.initUI()
  51 + }
  52 +
  53 + required init?(coder: NSCoder) {
  54 + fatalError("init(coder:) has not been implemented")
  55 + }
  56 +
  57 + func initUI(){
  58 + addSubview(mainView)
  59 + mainView.addSubview(iconImgView)
  60 +
  61 + mainView.snp.makeConstraints { make in
  62 + make.centerX.equalToSuperview()
  63 + make.left.equalToSuperview().offset(15)
  64 + make.right.equalToSuperview().offset(-15)
  65 + make.top.bottom.equalToSuperview()
  66 + }
  67 +
  68 + iconImgView.snp.makeConstraints { make in
  69 + make.left.equalTo(0)
  70 + make.top.equalTo(0)
  71 + make.height.equalTo(Float(CNLiveHomeADH))
  72 + make.width.equalTo(CNLiveHomeADW)
  73 + }
  74 +
  75 + }
  76 +
  77 + @objc func imgTapAction(ges: UITapGestureRecognizer){
  78 + let jumpUrl = self.giftModel?.data?.share_app_banner?.jumpUrl
  79 +
  80 + CNLiveShareManager.showShareViewWithParam(forShareTitle: "忽必烈电视剧", shareUrl: jumpUrl?.count ?? 0 > 0 ? jumpUrl : "http://wjjh5.cnlive.com/cnYmHbl.html?channelName=ymhbl", shareDesc: "邀你共赴大元史诗!点击加入追剧联盟", shareImage: UIImage(named: "shareAppIcon"), screenFull: false, hiddenWjj: true, hiddenQQ: true, hiddenWB: true, hiddenLifeCircle: true, hiddenWechatCircle: false, hiddenWechat: false, hiddenSafari: true, formVC: currentViewController(), topImage: [], topTitles: [], platformType: .all) { title in
  81 +
  82 + } completerBlock: { resultType, platformType, typeString in
  83 + if resultType == .succ{
  84 + print("succ")
  85 + }
  86 + }
  87 + }
  88 +}
metaCode/Classes/Main/Model/CNLiveDownSlideModel.swift
@@ -56,6 +56,8 @@ let kCNDownSlideContentsModelModelAlbum_video: String = &quot;album_video&quot;//点播-ä¸ @@ -56,6 +56,8 @@ let kCNDownSlideContentsModelModelAlbum_video: String = &quot;album_video&quot;//点播-ä¸
56 let kCNDownSlideContentsModelModelAlbum_ugc: String = "album_ugc"//短剧 56 let kCNDownSlideContentsModelModelAlbum_ugc: String = "album_ugc"//短剧
57 let kCNDownSlideContentsModelModelServing: String = "serving"//微信å°ç¨‹åº 57 let kCNDownSlideContentsModelModelServing: String = "serving"//微信å°ç¨‹åº
58 let kCNDownSlideContentsModelModelProduct: String = "product"//电商h5 58 let kCNDownSlideContentsModelModelProduct: String = "product"//电商h5
  59 +let kCNDownSlideContentsModelModelApp_ext_info: String = "app_ext_info"//gift
  60 +
59 61
60 class CNLiveDownSlideContentsModel: BaseModel { 62 class CNLiveDownSlideContentsModel: BaseModel {
61 ///内容id 63 ///内容id
metaCode/Classes/Main/Model/CNLiveDownSlideModelLayout.swift
@@ -51,7 +51,7 @@ class CNLiveDownSlideModelLayout:NSObject{ @@ -51,7 +51,7 @@ class CNLiveDownSlideModelLayout:NSObject{
51 totalNum = contentsNum 51 totalNum = contentsNum
52 } 52 }
53 _slideModel?.cellH = Float(CGFloat(totalNum)*(DownSlideTodayRecommendH + DownSlideRecommendLeftGap)) 53 _slideModel?.cellH = Float(CGFloat(totalNum)*(DownSlideTodayRecommendH + DownSlideRecommendLeftGap))
54 - }else if(_slideModel?.type == SlideModelTypeBanner1){//Banner大图 54 + }else if(_slideModel?.type == SlideModelTypeBanner1){//Banner大图
55 _slideModel?.cellH = Float(DownSlideBannerH)+Float(DownSlideRecommendLeftGap) 55 _slideModel?.cellH = Float(DownSlideBannerH)+Float(DownSlideRecommendLeftGap)
56 }else if(_slideModel?.type == SlideModelTypeAllCourse12){//全部课程 56 }else if(_slideModel?.type == SlideModelTypeAllCourse12){//全部课程
57 //总显示块数/循环数 57 //总显示块数/循环数
metaCode/Supporting Files/Assets.xcassets/HomePage/home_shareGift.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "home_shareGift@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "home_shareGift@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/home_shareGift.imageset/home_shareGift@2x.png 0 → 100644

799 Bytes

metaCode/Supporting Files/Assets.xcassets/HomePage/home_shareGift.imageset/home_shareGift@3x.png 0 → 100644

1.41 KB

metaCode/Supporting Files/Assets.xcassets/ShareGift/Contents.json 0 → 100644
  1 +{
  2 + "info" : {
  3 + "author" : "xcode",
  4 + "version" : 1
  5 + }
  6 +}
metaCode/Supporting Files/Assets.xcassets/ShareGift/shareAppIcon.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "shareAppIcon@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "shareAppIcon@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/ShareGift/shareAppIcon.imageset/shareAppIcon@2x.png 0 → 100644

7.1 KB

metaCode/Supporting Files/Assets.xcassets/ShareGift/shareAppIcon.imageset/shareAppIcon@3x.png 0 → 100644

10.2 KB