|
//
// PhotoItem.swift
// PaiaiDataKit
//
// Created by FFIB on 2017/10/9.
// Copyright © 2017年 FFIB. All rights reserved.
//
import Foundation
import ObjectMapper
import RxDataSources
extension DateTransform {
open func transformFromJSON(_ value: Any?) -> Date? {
if let timeInt = value as? Double {
return Date(timeIntervalSince1970: TimeInterval(timeInt) / 1000)
}
if let timeStr = value as? String {
return Date(timeIntervalSince1970: TimeInterval(atof(timeStr)) / 1000)
}
return nil
}
}
public struct PhotoItem: JSONCode {
public var avatar = ""
public var nickname = ""
public var comment_num = 0
public var thumbup_num = 0
public var group_avatar = ""
public var group_default_avatar = 0
public var group_name = ""
public var photo_thumbnail_url = ""
public var photo_thumbnail2_url = ""
public var photo_url = ""
public var photo_share_url = ""
public var thumbup = false
public var murl = ""
public var rurl = ""
public var nomark = 0
public var create_at = ""
public var create_at_time_interval = ""
public var user_id = ""
public var porder: [String: String] = [:]
public var origin_expired_stamps: Double = 0
public var time_stamps: Date?
public var isExpire = true
public var sizeCache = CGSize(width: 0, height: 0)
public var display_payment_btn = 0
var created_at: Date?
var photo_thumbnail2_w = 0
var photo_thumbnail2_h = 0
var photo_thumbnail_w = 0
var photo_thumbnail_h = 0
var photo_h = 0
var photo_w = 0
var photoFrom = 0
var photo_id = ""
var group_from = 0
var group_id = ""
init() {}
public init(json: [String: AnyObject]) {
self.init(map: Map(mappingType: .fromJSON, JSON: json))
}
public static func empty() -> PhotoItem {
return PhotoItem()
}
}
extension PhotoItem: Mappable {
public init(map: Map) {
mapping(map: map)
}
mutating public func mapping(map: Map) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
created_at <- (map["created_at"], DateFormatterTransform(dateFormatter: dateFormatter))
avatar <- map["avatar"]
comment_num <- map["comment_num"]
group_avatar <- map["group_avatar"]
group_default_avatar <- map["group_default_avatar"]
group_from <- map["group_from"]
group_id <- map["group_id"]
group_name <- map["group_name"]
nickname <- map["nickname"]
photoFrom <- map["photoFrom"]
photo_h <- map["photo_h"]
photo_w <- map["photo_w"]
photo_id <- map["photo_id"]
photo_thumbnail2_h <- map["photo_thumbnail2_h"]
photo_thumbnail2_url <- map["photo_thumbnail2_url"]
photo_thumbnail2_w <- map["photo_thumbnail2_w"]
photo_thumbnail_h <- map["photo_thumbnail_h"]
photo_thumbnail_url <- map["photo_thumbnail_url"]
photo_thumbnail_w <- map["photo_thumbnail_w"]
photo_url <- map["photo_url"]
photo_share_url <- map["photo_share_url"]
thumbup <- map["thumbup"]
thumbup_num <- map["thumbup_num"]
user_id <- map["user_id"]
porder <- map["porder"]
display_payment_btn <- map["display_payment_btn"]
nomark <- map["nomark"]
rurl = porder["r_photo_url"] ?? ""
murl = porder["m_photo_url"] ?? ""
guard let date = created_at else { return }
let createDateFormatter = DateFormatter()
createDateFormatter.dateFormat = "yyyy年MM月dd日"
create_at = createDateFormatter.string(from: date)
create_at_time_interval = date.getTimeInfoFromDate()
}
}
extension PhotoItem: IdentifiableType, Equatable {
public typealias Identity = String
public var identity: String { return photo_id }
public static func == (lhs: PhotoItem, rhs: PhotoItem) -> Bool {
return lhs.photo_id == rhs.photo_id
}
}
|