MVHomeViewModel.swift 2.6 KB

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