Commit 5ba08f80b3c5cf7abfaf078174a43999eb01549e

Authored by 张旭
1 parent 04514332

短剧主页cell跳转播放器

metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideDetailViewController.swift
... ... @@ -91,34 +91,13 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou
91 91 override func viewDidLoad() {
92 92 super.viewDidLoad()
93 93 setupUI()
94   -// getImageFromCell()
95   -// if self.cellType == .playlet{
96   - self.getBlockContents(page: 1)
97   -// }
  94 + self.getBlockContents(page: 1)
98 95 }
99 96  
100 97 private func setupUI() {
101 98 self.view.layer.masksToBounds = true
102 99 self.view.addSubview(self.tableView)
103 100 self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight)
104   -
105   - if self.cellType == .playlet{//短剧 大图
106   -// self.view.addSubview(self.tableView)
107   -// self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight)
108   - }else if self.cellType == .course{//课程 大图
109   - if self.slideModel!.type == SlideModelTypeAllCourse12{
110   - //全部课程
111   -
112   - }else if self.slideModel!.type == SlideModelTypeOneCourse75{
113   - //大图课程
114   -
115   - }
116   -// view.addSubview(scrollView)
117   -// scrollView.slideModel = _slideModel
118   - }else if self.cellType == .playletToCourse{
119   - //首页->课程
120   -
121   - }
122 101 view.addSubview(closeBtn)
123 102 view.addGestureRecognizer(dismissPanGesture)
124 103 }
... ... @@ -314,8 +293,6 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou
314 293 self!.dataArray.addObjects(from: albumBaseModel.list)
315 294 if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil {
316 295 self!.addRefreshView()
317   -// self!.pageNum = self!.pageNum + 1
318   -// self!.getBlockContents(page: self!.pageNum)
319 296 }
320 297 }
321 298  
... ...
metaCode/Classes/Main/HomePages/Controller/PlayletHomePage/CNLivePlayletHomePageController.swift
... ... @@ -6,16 +6,22 @@
6 6 // 短剧主页
7 7  
8 8 import Foundation
9   -
  9 +import MJRefresh
10 10 class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{
11 11  
  12 + var pageNum: NSInteger = 1
12 13 var jianjieLblHeight:CGFloat = 36
13 14  
14 15 let kCNLivePlayletCellIdentifier = "kCNLivePlayletCellIdentifier"
15 16 let kCNLivePlayletHeaderCellIdentifier = "kCNLivePlayletHeaderCellIdentifier"
16 17 ///数据源
17   - var albumModelArr:Array<CNLiveAlbumListModel> = [CNLiveAlbumListModel]()
18   - var albumId = ""
  18 +// var albumModelArr:Array<CNLiveAlbumListModel> = [CNLiveAlbumListModel]()
  19 + lazy var albumModelArr: NSMutableArray = {
  20 + var dataArray = NSMutableArray()
  21 + return dataArray
  22 + }()
  23 + var albumMsgModel:CNLiveAlbumMsgModel?
  24 + var albumId = ""//aid
19 25 // MARK: - 懒加载
20 26  
21 27 lazy var tableView : UITableView = {
... ... @@ -32,13 +38,13 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
32 38 init(aid:String){
33 39 super.init(nibName: nil, bundle: nil)
34 40 self.albumId = aid
35   - self.getAlbumList(aid: aid)// self.albumModel!.contentId 或 self.albumMsgModel!.albumId
36   - }
37   - init(albumModelArr:Array<CNLiveAlbumListModel>) {
38   - self.albumModelArr = Array(albumModelArr)
39   - super.init(nibName: nil, bundle: nil)
40   - self.tableView.reloadData()
  41 + self.getAlbumMsg(aid: aid)// self.albumModel!.contentId 或 self.albumMsgModel!.albumId
41 42 }
  43 +// init(albumModelArr:NSMutableArray) {
  44 +// self.albumModelArr = NSMutableArray(array: albumModelArr)
  45 +// super.init(nibName: nil, bundle: nil)
  46 +// self.tableView.reloadData()
  47 +// }
42 48  
43 49 required init?(coder: NSCoder) {
44 50 fatalError("init(coder:) has not been implemented")
... ... @@ -54,36 +60,67 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
54 60 }
55 61  
56 62 // MARK: - 获取短剧主页数据
57   - //获取专辑视频列表详情(播放地址 ,点赞数等信息)
58   - func getAlbumList(aid:String){
59   - showLoading(message: "")
60   - CNLiveHomePageViewModel.getAlbumList(aid: aid){ result, status in
  63 + //获取专辑详情(简介等)
  64 + func getAlbumMsg(aid:String){
  65 + CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { [weak self] result, status in
61 66 hiddenLoading()
62 67 if status == .success{
63   - let arr = result as! Array<CNLiveAlbumListModel>
64   - self.albumModelArr = Array(arr)
65   - self.getAlbumMsg(aid: aid)
  68 + let model = result as! CNLiveAlbumMsgModel
  69 + self!.albumMsgModel = model
  70 + self!.getAlbumList(aid: aid, page: self!.pageNum)
66 71 }else{
67 72  
68 73 }
69 74 }
70 75 }
71   - //获取专辑详情(简介等)
72   - func getAlbumMsg(aid:String){
73   - CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { result, status in
  76 + //获取专辑视频列表详情(播放地址 ,点赞数等信息)
  77 + func getAlbumList(aid:String, page:NSInteger){
  78 + showLoading(message: "")
  79 + CNLiveHomePageViewModel.getAlbumList(aid: aid, page: page){[weak self] result, status in
74 80 hiddenLoading()
75 81 if status == .success{
76   - let model = result as! CNLiveAlbumMsgModel
77   - for listModel in self.albumModelArr {
78   - listModel.albumMsgModel = model
  82 + let dataMdl = result as! CNLiveAlbumListBaseModel
  83 + let arr = dataMdl.list
  84 + for listModel in arr {
  85 + listModel.albumMsgModel = self?.albumMsgModel
  86 + }
  87 +
  88 + if self!.pageNum > 1 && self!.albumModelArr.count > 0 {
  89 + self!.albumModelArr.addObjects(from: arr)
  90 + }
  91 + if self!.pageNum == 1 {
  92 + self!.albumModelArr.removeAllObjects()
  93 + self!.albumModelArr.addObjects(from: arr)
  94 + if self!.albumModelArr.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil {
  95 + self!.addRefreshView()
  96 + }
  97 + }
  98 +
  99 + self!.tableView.mj_header?.endRefreshing()
  100 +
  101 + self!.tableView.reloadData()
  102 + if dataMdl.hasNextPage{
  103 + self!.tableView.mj_footer?.endRefreshing()
  104 + }else{
  105 + self!.tableView.mj_footer?.endRefreshingWithNoMoreData()
79 106 }
80   - self.tableView.reloadData()
81 107 }else{
82 108  
83 109 }
84 110 }
85 111 }
86 112  
  113 + func addRefreshView() {
  114 + tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: {[weak self] in
  115 + self!.pageNum = 1
  116 + self!.getAlbumList(aid: self!.albumId , page: 1)
  117 + })
  118 +
  119 + tableView.mj_footer = MJRefreshAutoNormalFooter.init(refreshingBlock: {[weak self] in
  120 + self!.pageNum = self!.pageNum + 1
  121 + self!.getAlbumList(aid: self!.albumId, page: self!.pageNum)
  122 + })
  123 + }
87 124  
88 125 func numberOfSections(in tableView: UITableView) -> Int {
89 126 2
... ... @@ -109,11 +146,11 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
109 146 }
110 147 cell.homePageNeedReloadActionBlock = {
111 148 DispatchQueue.main.asyncAfter(deadline: .now()+0.5) { [self] in
112   - self.getAlbumList(aid: self.albumId)
  149 + self.getAlbumMsg(aid: self.albumId)
113 150 }
114 151 }
115 152 if self.albumModelArr.count > 0{
116   - let albumListModel = self.albumModelArr[0]
  153 + let albumListModel = self.albumModelArr[0] as! CNLiveAlbumListModel
117 154 cell.albumListModel = albumListModel
118 155 }
119 156 return cell
... ... @@ -123,7 +160,7 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
123 160 let cell = CNLivePlayletHomePageCell()
124 161 return cell
125 162 }
126   - let albumListModel = self.albumModelArr[indexPath.row]
  163 + let albumListModel = self.albumModelArr[indexPath.row] as! CNLiveAlbumListModel
127 164 cell.albumListModel = albumListModel
128 165 return cell
129 166 }
... ... @@ -138,7 +175,7 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
138 175 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
139 176 if indexPath.section == 0{
140 177 }else{
141   - let albumListModel = self.albumModelArr[indexPath.row]
  178 + let albumListModel = self.albumModelArr[indexPath.row] as! CNLiveAlbumListModel
142 179 let aid = albumListModel.albumMsgModel?.albumId ?? ""
143 180 //发播放器销毁通知
144 181 NotificationCenter.default.post(name: Notification.Name.PlayerManage.kPlayerDestroyNotification, object: nil)
... ... @@ -153,7 +190,8 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS
153 190 })
154 191 self.navigationController?.viewControllers = tempArray as! [CNLiveBaseViewController]
155 192 //跳转播放页
156   - navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid, page: 1, currentIndex: indexPath.row, dataArray: self.albumModelArr), animated: pushAnimated)
  193 + let dataArray = Array(self.albumModelArr) as! [CNLiveAlbumListModel]
  194 + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid, page: self.pageNum, currentIndex: indexPath.row, dataArray: dataArray), animated: pushAnimated)
157 195 }
158 196 }
159 197 }
... ...
metaCode/Classes/Main/HomePages/Model/CNLiveAlbumListModel.swift
... ... @@ -7,6 +7,28 @@
7 7  
8 8 import Foundation
9 9  
  10 +class CNLiveAlbumListBaseModel:BaseModel{
  11 + var endRow = 0
  12 + var firstPage = 0
  13 + var hasNextPage = false
  14 + var nextPage = 0
  15 + var hasPreviousPage = false
  16 + var isFirstPage = true
  17 + var isLastPage = true
  18 + var lastPage = 0
  19 + var list = [CNLiveAlbumListModel]()
  20 + var navigateFirstPage = 0
  21 + var navigateLastPage = 0
  22 + var navigatePages = 0
  23 + var navigatepageNums:Array<Any> = []
  24 + var pageNum = 0
  25 + var pageSize = 0
  26 + var pages = 0
  27 + var prePage = 0
  28 + var size = 0
  29 + var startRow = 0
  30 + var total = 0
  31 +}
10 32 class CNLiveAlbumListModel:BaseModel{
11 33 var title = ""
12 34 var shortTitle = ""
... ...
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
... ... @@ -141,10 +141,12 @@ class CNLiveHomePageViewModel:NSObject{
141 141 }
142 142  
143 143 /// 获取首页-专辑视频列表详情
144   - static func getAlbumList(aid:String,resultBlock: @escaping downSlideResultBlock) {
  144 + static func getAlbumList(aid:String, page:NSInteger,resultBlock: @escaping downSlideResultBlock) {
145 145 let param = NSMutableDictionary()
146 146 param.setValue(aid, forKey: "aid")
147 147 param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid")
  148 + param.setValue("\(page)", forKey: "page")
  149 +
148 150 CNLiveNetworking.setAllowRequestDefaultArgument(true)
149 151 CNLiveNetworking.setupShowDataResult(false)
150 152 CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseCMSUrl+"/ugcApi/albumList", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in
... ... @@ -154,14 +156,18 @@ class CNLiveHomePageViewModel:NSObject{
154 156 let errorCode = "\(resp["errorCode"] ?? "0")"
155 157 if (errorCode == "0") {
156 158 let dataDic = resp["data"] as! Dictionary<String, Any>
157   - let dataList = dataDic["list"] as! Array<Any>
158   - var listArr = Array<Any>()
159   - for listDic in dataList{
160   - let dataMdl = newDictionaryToModel(listDic as! [String : Any], CNLiveAlbumListModel.self)
161   - listArr.append(dataMdl)
162   - }
  159 + let dataMdl = newDictionaryToModel(dataDic , CNLiveAlbumListBaseModel.self)
  160 + resultBlock(dataMdl,.success)
163 161  
164   - resultBlock(listArr,.success)
  162 +// let dataDic = resp["data"] as! Dictionary<String, Any>
  163 +// let dataList = dataDic["list"] as! Array<Any>
  164 +// var listArr = Array<Any>()
  165 +// for listDic in dataList{
  166 +// let dataMdl = newDictionaryToModel(listDic as! [String : Any], CNLiveAlbumListModel.self)
  167 +// listArr.append(dataMdl)
  168 +// }
  169 +//
  170 +// resultBlock(listArr,.success)
165 171 }else{
166 172 resultBlock(NSNull(),.failed)
167 173 }
... ...