Няма описание

PhotoModel.swift 3.9KB

    // // PhotoModel.swift // PaiAi // // Created by FFIB on 2017/10/9. // Copyright © 2017年 yb. All rights reserved. // import Foundation import ObjectMapper struct PhotoModel { typealias modelType = PhotoModel var avatar = "" var comment_num = 0 var created_at = "" var create_at: Date? var group_avatar = "" var group_default_avatar = 0 var group_from = 0 var group_id = "" var group_name = "" var nickname = "" var photo_from = 0 var photo_h = 0 var photo_w = 0 var photo_id = "" var photo_thumbnail2_h = 0 var photo_thumbnail2_url = "" var photo_thumbnail2_w = 0 var photo_thumbnail_h = 0 var photo_thumbnail_url = "" var photo_thumbnail_w = 0 var photo_url = "" var photo_share_url = "" var thumbup = false var thumbup_num = 0 var user_id = "" var murl = "" var rurl = "" var porder = [String: String]() var origin_expired_stamps: Double = 0 var time_stamps: Date? var isExpire = true var sizeCache = CGSize(width: 0, height: 0) var display_payment_btn = 0 init(data: [String: AnyObject]) { self.init(map: Map(mappingType: .fromJSON, JSON: data)) } init() { } } extension PhotoModel: Mappable { init(map: Map) { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" created_at <- map["created_at"] create_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"] photo_from <- map["photo_from"] 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"] rurl = porder["r_photo_url"] ?? "" murl = porder["m_photo_url"] ?? "" let width = (kScreenWidth - 6 * 2 - 5) / 2 let imageTop: CGFloat = 51 let imageBottom: CGFloat = 32 let height = CGFloat(photo_thumbnail_h) / CGFloat(photo_thumbnail_w) * width + imageTop + imageBottom sizeCache = CGSize(width: round(width), height: ceil(height)) } func toJSON() -> [String : Any] { let mirror = Mirror(reflecting: self) var dict = [String: Any]() for child in mirror.children { dict[child.label ?? ""] = child.value } return dict } } extension PhotoModel: GroupParsable { static func parse(datas: [String : AnyObject]) -> [PhotoModel] { guard let data = datas["data"] as? [String : AnyObject], let photos = data["photos"] as? [[String : AnyObject]] else { return [PhotoModel]() } return photos.flatMap { return PhotoModel.init(map: Map(mappingType: .fromJSON, JSON: $0)) } } }