CNLivePlayletHomePageController.swift 5.2 KB
//
//  CNLivePlayletHomePageController.swift
//  metaCode
//
//  Created by zx on 2024/1/4.
//  短剧主页

import Foundation

class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{
    
    var jianjieLblHeight:CGFloat = 36
    
    let kCNLivePlayletCellIdentifier = "kCNLivePlayletCellIdentifier"
    let kCNLivePlayletHeaderCellIdentifier = "kCNLivePlayletHeaderCellIdentifier"
    ///数据源
    var albumModelArr:Array<CNLiveAlbumListModel> = [CNLiveAlbumListModel]()
    var albumId = ""
    // MARK: - 懒加载
    
    lazy var tableView : UITableView = {
        let tableView = UITableView(frame: .zero, style: .plain)
        tableView.dataSource = self
        tableView.delegate = self
        tableView.separatorStyle = .none
        tableView.tableFooterView = UIView.init()
        tableView.register(CNLivePlayletHomePageCell.self, forCellReuseIdentifier: kCNLivePlayletCellIdentifier)
        tableView.register(CNLivePlayletHomePageHeaderCell.self, forCellReuseIdentifier: kCNLivePlayletHeaderCellIdentifier)
        return tableView
    }()
    
    init(aid:String){
        super.init(nibName: nil, bundle: nil)
        self.albumId = aid
        self.getAlbumList(aid: aid)// self.albumModel!.contentId 或 self.albumMsgModel!.albumId
    }
    init(albumModelArr:Array<CNLiveAlbumListModel>) {
        self.albumModelArr = Array(albumModelArr)
        super.init(nibName: nil, bundle: nil)
        self.tableView.reloadData()
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        self.setUI()
    }
    func setUI(){
        navigationBarHidden = false
        self.view.addSubview(self.tableView)
        self.tableView.frame = CGRect(x: 0, y: KNavigationHeight, width: KSreenWidth, height: KSreenHeight-KNavigationHeight)
    }
    
    // MARK: - 获取短剧主页数据
    //获取专辑视频列表详情(播放地址 ,点赞数等信息)
    func getAlbumList(aid:String){
        showLoading(message: "")
        CNLiveHomePageViewModel.getAlbumList(aid: aid){ result, status in
            hiddenLoading()
            if status == .success{
                let arr = result as! Array<CNLiveAlbumListModel>
                self.albumModelArr = Array(arr)
                self.getAlbumMsg(aid: aid)
            }else{
                
            }
        }
    }
    //获取专辑详情(简介等)
    func getAlbumMsg(aid:String){
        CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { result, status in
            hiddenLoading()
            if status == .success{
                let model = result as! CNLiveAlbumMsgModel
                for listModel in self.albumModelArr {
                    listModel.albumMsgModel = model
                }
                self.tableView.reloadData()
            }else{
                
            }
        }
    }
    
    
    func numberOfSections(in tableView: UITableView) -> Int {
        2
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if section == 0{
            return 1
        }
        return self.albumModelArr.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        if indexPath.section == 0{
            guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLivePlayletHeaderCellIdentifier) as? CNLivePlayletHomePageHeaderCell
            else {
                let cell = CNLivePlayletHomePageHeaderCell()
                return cell
            }
            cell.homePageHeaderCellChangedBlock = { headerCell,jianjieHeight in
                self.jianjieLblHeight = jianjieHeight
                self.tableView.reloadData()
            }
            cell.homePageNeedReloadActionBlock = {
                self.getAlbumList(aid: self.albumId)
            }
            if self.albumModelArr.count > 0{
                let albumListModel = self.albumModelArr[0]
                cell.albumListModel = albumListModel
            }
            return cell
        }else{
            guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLivePlayletCellIdentifier) as? CNLivePlayletHomePageCell
            else {
                let cell = CNLivePlayletHomePageCell()
                return cell
            }
            let albumListModel = self.albumModelArr[indexPath.row] 
            cell.albumListModel = albumListModel
            return cell
        }
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.section == 0{
            return 15+147+20+self.jianjieLblHeight+25+39+23.5+15.5
        }else{
            return 75+12*2
        }
    }
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if indexPath.section == 0{
        }else{
            let albumListModel = self.albumModelArr[indexPath.row]
            let aid = albumListModel.albumMsgModel?.albumId ?? ""
            navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid), animated: pushAnimated)
        }
    }
}