No Description

PhotoItem.swift 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //
  2. // PhotoItem.swift
  3. // PaiaiDataKit
  4. //
  5. // Created by FFIB on 2017/10/9.
  6. // Copyright © 2017年 FFIB. All rights reserved.
  7. //
  8. import Foundation
  9. import ObjectMapper
  10. import RxDataSources
  11. extension DateTransform {
  12. open func transformFromJSON(_ value: Any?) -> Date? {
  13. if let timeInt = value as? Double {
  14. return Date(timeIntervalSince1970: TimeInterval(timeInt) / 1000)
  15. }
  16. if let timeStr = value as? String {
  17. return Date(timeIntervalSince1970: TimeInterval(atof(timeStr)) / 1000)
  18. }
  19. return nil
  20. }
  21. }
  22. public struct PhotoItem: JSONCode {
  23. public var avatar = ""
  24. public var nickname = ""
  25. public var comment_num = 0
  26. public var thumbup_num = 0
  27. public var group_avatar = ""
  28. public var group_default_avatar = 0
  29. public var group_name = ""
  30. public var photo_thumbnail_url = ""
  31. public var photo_thumbnail2_url = ""
  32. public var photo_url = ""
  33. public var photo_share_url = ""
  34. public var thumbup = false
  35. public var murl = ""
  36. public var rurl = ""
  37. public var nomark = 0
  38. public var create_at = ""
  39. public var create_at_time_interval = ""
  40. public var user_id = ""
  41. public var porder: [String: String] = [:]
  42. public var origin_expired_stamps: Double = 0
  43. public var time_stamps: Date?
  44. public var isExpire = true
  45. public var sizeCache = CGSize(width: 0, height: 0)
  46. public var display_payment_btn = 0
  47. var created_at: Date?
  48. var photo_thumbnail2_w = 0
  49. var photo_thumbnail2_h = 0
  50. var photo_thumbnail_w = 0
  51. var photo_thumbnail_h = 0
  52. var photo_h = 0
  53. var photo_w = 0
  54. var photoFrom = 0
  55. var photo_id = ""
  56. var group_from = 0
  57. var group_id = ""
  58. init() {}
  59. public init(json: [String: AnyObject]) {
  60. self.init(map: Map(mappingType: .fromJSON, JSON: json))
  61. }
  62. public static func empty() -> PhotoItem {
  63. return PhotoItem()
  64. }
  65. }
  66. extension PhotoItem: Mappable {
  67. public init(map: Map) {
  68. mapping(map: map)
  69. }
  70. mutating public func mapping(map: Map) {
  71. let dateFormatter = DateFormatter()
  72. dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
  73. created_at <- (map["created_at"], DateFormatterTransform(dateFormatter: dateFormatter))
  74. avatar <- map["avatar"]
  75. comment_num <- map["comment_num"]
  76. group_avatar <- map["group_avatar"]
  77. group_default_avatar <- map["group_default_avatar"]
  78. group_from <- map["group_from"]
  79. group_id <- map["group_id"]
  80. group_name <- map["group_name"]
  81. nickname <- map["nickname"]
  82. photoFrom <- map["photoFrom"]
  83. photo_h <- map["photo_h"]
  84. photo_w <- map["photo_w"]
  85. photo_id <- map["photo_id"]
  86. photo_thumbnail2_h <- map["photo_thumbnail2_h"]
  87. photo_thumbnail2_url <- map["photo_thumbnail2_url"]
  88. photo_thumbnail2_w <- map["photo_thumbnail2_w"]
  89. photo_thumbnail_h <- map["photo_thumbnail_h"]
  90. photo_thumbnail_url <- map["photo_thumbnail_url"]
  91. photo_thumbnail_w <- map["photo_thumbnail_w"]
  92. photo_url <- map["photo_url"]
  93. photo_share_url <- map["photo_share_url"]
  94. thumbup <- map["thumbup"]
  95. thumbup_num <- map["thumbup_num"]
  96. user_id <- map["user_id"]
  97. porder <- map["porder"]
  98. display_payment_btn <- map["display_payment_btn"]
  99. nomark <- map["nomark"]
  100. rurl = porder["r_photo_url"] ?? ""
  101. murl = porder["m_photo_url"] ?? ""
  102. guard let date = created_at else { return }
  103. let createDateFormatter = DateFormatter()
  104. createDateFormatter.dateFormat = "yyyy年MM月dd日"
  105. create_at = createDateFormatter.string(from: date)
  106. create_at_time_interval = date.getTimeInfoFromDate()
  107. }
  108. }
  109. extension PhotoItem: IdentifiableType, Equatable {
  110. public typealias Identity = String
  111. public var identity: String { return photo_id }
  112. public static func == (lhs: PhotoItem, rhs: PhotoItem) -> Bool {
  113. return lhs.photo_id == rhs.photo_id
  114. }
  115. }