MVHomeViewModel.swift 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // MVHomeViewModel.swift
  3. // MusicVideoPlus
  4. //
  5. // Created by ak on 2021/6/4.
  6. //
  7. import Foundation
  8. import ObjectMapper
  9. import RealmSwift
  10. import BFFramework
  11. class MVHomeViewModel: NSObject {
  12. /// 获取首界面
  13. /// - Parameters:
  14. /// - type: 1-最新列表 2-最热列表
  15. /// - targetUid: 目标用户
  16. /// - pageSize: 页面大小
  17. /// - pageNo: 当前页
  18. /// - currentVideoId: 当前视频ID
  19. /// - sortField: 排序方式 1:时间,2:热度
  20. /// - layoutType: 页面排版方式 1:单列,2:双列
  21. /// - lastTimestamp: 最后一条记录的时间戳
  22. /// - Returns: <#description#>
  23. class func getHomeHotVideos(completeHander: @escaping (_ hotVideos: Array<MVHotVideoModel>, _ msg: String?) -> Void) {
  24. let start: TimeInterval = Date().timeIntervalSince1970
  25. var url: String = PQENVUtil.shared.longvideoapi
  26. url = url + "rhythmapp/homepage/getAllVideos"
  27. BFNetRequestAdaptor.postRequestData(url: url, parames: nil, commonParams: commonParams()) { response, _, error, _ in
  28. DispatchQueue.global().async {
  29. let end: TimeInterval = Date().timeIntervalSince1970
  30. BFLog(message: "getAllVideos tiimes is \(end - start)")
  31. var hotVideos:Array = Array<MVHotVideoModel>.init()
  32. if !(response is NSNull), response != nil {
  33. let tempArr = response as! [[String: Any]]
  34. MVHotVideoModel.saveCacheData(data: tempArr)
  35. for item in tempArr {
  36. let hotVideoModel:MVHotVideoModel = MVHotVideoModel.init()
  37. hotVideoModel.categoryId = item["categoryId"] as? Int ?? 0
  38. hotVideoModel.categoryName = item["categoryName"] as? String ?? ""
  39. hotVideoModel.categoryEmoji = item["categoryEmoji"] as? String ?? ""
  40. let videos = item["videos"] as! [[String: Any]]
  41. for video in videos {
  42. let tempModel = PQVideoListModel(jsonDict: video)
  43. tempModel.categoryName = hotVideoModel.categoryName
  44. tempModel.categoryImage = hotVideoModel.categoryEmoji
  45. hotVideoModel.videos.append(tempModel)
  46. }
  47. hotVideos.append(hotVideoModel)
  48. }
  49. DispatchQueue.main.async {
  50. completeHander(hotVideos, nil)
  51. }
  52. } else {
  53. DispatchQueue.main.async {
  54. completeHander(hotVideos, error?.msg)
  55. }
  56. }
  57. }
  58. }
  59. }
  60. }