No Description

OrderItem.swift 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // OrderItem.swift
  3. // PaiaiDataKit
  4. //
  5. // Created by FFIB on 2018/12/19.
  6. // Copyright © 2018 FFIB. All rights reserved.
  7. //
  8. import Foundation
  9. import ObjectMapper
  10. import RxDataSources
  11. public struct OrderItem: JSONCode {
  12. //model display layer
  13. public var order_id: String = ""
  14. public var displayPrice: String = ""
  15. public var displayPhoto: String = ""
  16. public var displayCreated: String = ""
  17. var created_at: Date?
  18. var body: String = ""
  19. var to_uid: String = ""
  20. var to_lid: String = ""
  21. var pay_status: Int = 0
  22. var paid_at: String = ""
  23. var from_uid: String = ""
  24. var total_fee: CGFloat = 0
  25. var group_photo_info: PhotoItem?
  26. init(json: [String: AnyObject]) {
  27. self.init(map: Map(mappingType: .fromJSON, JSON: json))
  28. }
  29. }
  30. extension OrderItem: Mappable {
  31. public init(map: Map) {
  32. mapping(map: map)
  33. }
  34. mutating public func mapping(map: Map) {
  35. let dateFormatter = DateFormatter()
  36. dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
  37. body <- map["body"]
  38. to_lid <- map["to_lid"]
  39. to_uid <- map["to_uid"]
  40. paid_at <- map["paid_at"]
  41. from_uid <- map["from_uid"]
  42. total_fee <- map["total_fee"]
  43. pay_status <- map["pay_status"]
  44. group_photo_info <- map["group_photo_info"]
  45. created_at <- (map["created_at"], DateFormatterTransform(dateFormatter: dateFormatter))
  46. //model display layer
  47. order_id <- map["order_id"]
  48. displayPrice = "+\(total_fee / 100)"
  49. guard let created_at = created_at, let photoInfo = group_photo_info else { return }
  50. displayCreated = created_at.getTimeString(format: "YYYY-MM-dd HH:MM")
  51. displayPhoto = photoInfo.photo_thumbnail_url
  52. }
  53. }
  54. extension OrderItem: IdentifiableType, Equatable {
  55. public typealias Identity = String
  56. public var identity: String { return order_id }
  57. public static func == (lhs: OrderItem, rhs: OrderItem) -> Bool {
  58. return lhs.order_id == rhs.order_id
  59. }
  60. }