CNLiveMineBaseModel.swift 16.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
//
//  CNLiveMineBaseModel.swift
//  metaCode
//
//  Created by open on 2023/6/20.
//

import Foundation
import HandyJSON

class UpdateInfoModel: BaseModel {
    
    required init() {}
    
    var id:String = ""
    var appId:String = ""
    var appType:String = ""
    var version:String = ""
    var versionCode:String = ""
    var isForce:Bool = false//是不是强制更新
    var apkUrl:String = ""
    var upgradePoint:String = ""
    var status:String = ""
    var createTime:String = ""
    
    /**
     /api/identityApi/list
     接口的数据 id createTime为公共参数
     */
    var name:String = ""
    var icon:String = ""
    var enable:String = ""
}

class NewsModel: BaseModel {
    required init() {}
    
    var prePage: Int = 0
    var pageSize: Int = 0
    var startRow: Int = 0
    var navigateLastPage: Int = 0
    var firstPage: Int = 0
    var nextPage: Int = 0
    var size: Int = 0
    var endRow: Int = 0
    var isLastPage: Bool = false
    var hasNextPage: Bool = false
    var navigateFirstPage: Int = 0
    var lastPage: Int = 0
    var total: Int = 0
    var list = [NewsListModel]()
    var navigatepageNums = [Int]()
    var isFirstPage: Bool = false
    var hasPreviousPage: Bool = false
    var navigatePages: Int = 0
    var pageNum: Int = 0
    var pages: Int = 0
}


class NewsListModel: BaseModel {
    var content: String = ""
    var status: Int = 0
    var id: Int = 0
    var poster: String = ""
    var title: String = ""
    var sid: String = ""
    var createTime: Int = 0
    var createTimeString: String = ""
    var timeString: String = ""
    var subTitle: String = ""
    var read: Bool = false
    
    var textHeight: CGFloat {
        get {
            let paraph = NSMutableParagraphStyle()
            paraph.lineSpacing = 10
            let attributes = [NSAttributedString.Key.font:Font_16_Fit,
                              NSAttributedString.Key.paragraphStyle: paraph]
            let h = content.boundingRect(with: CGSize(width: KSreenWidth - 110, height: CGFloat(MAXFLOAT)), options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size.height
            return h
        }
    }
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.createTime <-- TransformOf(fromJSON: { [weak self] (raw) -> Int in
                if (raw ?? 0)! > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval((raw!)/1000))
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "MM-dd"
                    self?.createTimeString = dateFormatter.string(from: date as Date)
                    let dateFormatter_time = DateFormatter()
                    dateFormatter_time.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter_time.dateFormat = "yyyy年MM月dd日 HH:mm"
                    self?.timeString = dateFormatter_time.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> Int? in
                return tuple
            })
//        mapper <<<
//            self.content <-- TransformOf(fromJSON: { result -> String in
//                return result! + "金正恩和老兵有说有笑,欣赏着精彩绝伦的烟花表演,一起憧憬朝鲜走向繁荣富强。金正恩最后面向全体朝鲜老兵进行90度的鞠躬,再次对他们表达深深的尊重和感激。他没有忘记为国家立下汗马功劳的朝鲜老兵,更没有忘记老一辈。"
//            }, toJSON: { result -> String? in
//                return result
//            })
    }
}

// !!!: /api/identityApi/allList 接口数据
class StandListBaseModel: BaseModel {
    var prePage: Int = 0
    var pageSize: Int = 0
    var startRow: Int = 0
    var navigateLastPage: Int = 0
    var firstPage: Int = 0
    var nextPage: Int = 0
    var size: Int = 0
    var endRow: Int = 0
    var isLastPage: Bool = false
    var hasNextPage: Bool = false
    var navigateFirstPage: Int = 0
    var lastPage: Int = 0
    var total: Int = 0
    var list = [StandListModel]()
    var navigatepageNums = [Int]()
    var isFirstPage: Bool = false
    var hasPreviousPage: Bool = false
    var navigatePages: Int = 0
    var pageNum: Int = 0
    var pages: Int = 0
    
}

final class StandListModel: BaseModel {//, TableCodable {
    
    var id: Int = 0//ID号- 9:电商,其他非电商
    var name: String?//名称-
    var icon: String?//小圆图标-
    var createTime: Int = 0//注册时间-
    var enable: Bool = false//没用-
    var backgroundImg: String = ""//首页背景图-
    var upGuideImg: String = ""//顶部引导图GiF url-
    var downGuideImg: String = ""//底部引导图GiF url-
    var backgroundColor: String = kCNDownSlideBackgroundColorHex//企业认证按钮背景色&&认证背景颜色
    var atPersonageColour: String = kCNDownSlideBackgroundColorHex//个人认证按钮背景色-
    var backgroundColour: String = ""//-
    var tipsColour: String = ""//-企业,机构 提醒文本颜色
    var description: String = ""//首页身份说明描述-
    var descBackgroundImg: String = ""//首页文字背景图
    var cardImg: String = ""//卡片背景图-
    var cardBackgroundImg: String = ""//首页卡片背景图
    var upPath: String = ""//顶部h5 或原生页面pageId
    var upType: Int = 0//下滑类型1:h5 2:原生页面 3店铺详情 4 店铺控制台
    var downType: Int = 0//上滑类型1:h5 2:原生页面 3店铺详情 4 店铺控制台
    var downPath: String = ""//底部h5url 或原生页面pageId-
    var userAuth: Bool = true//是否显示个人认证
    var enterpriseAuth: Bool = false//是否显示企业认证
    var agencyAuth: Bool = false//是否显示机构认证
    var auth: Bool = false//身份是否验证
    
    var createTimeString: String = ""//-
    var timeString: String = ""
    
    ////自定义属性
    //电商身份专用
    var shopInfoModel: MineApplyShopInfoModel?
    
    //身份详情model
    var standInfoBaseModel:MineStandInfoBaseModel?
    
    // 重载 == 运算符
    static func == (lhs: StandListModel, rhs: StandListModel) -> Bool {
        
        if lhs.id == rhs.id &&
            lhs.name == rhs.name &&
            lhs.icon == rhs.icon &&
            lhs.createTime == rhs.createTime &&
            lhs.enable == rhs.enable &&
            lhs.backgroundImg == rhs.backgroundImg &&
            lhs.upGuideImg == rhs.upGuideImg &&
            lhs.downGuideImg == rhs.downGuideImg &&
            lhs.backgroundColor == rhs.backgroundColor
        {//剩下不写了 ,只判断id都可以
            return true
        }
        else
        {
            return false
            
        }
    }
    // 重载 != 运算符
    static func != (lhs: StandListModel, rhs: StandListModel) -> Bool {
        return !(lhs == rhs)
    }
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.createTime <-- TransformOf(fromJSON: { [weak self] (raw) -> Int in
                if (raw ?? 0)! > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval((raw!)/1000))
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "MM-dd"
                    self?.createTimeString = dateFormatter.string(from: date as Date)
                    let dateFormatter_time = DateFormatter()
                    dateFormatter_time.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter_time.dateFormat = "yyyy年MM月dd日 HH:mm"
                    self?.timeString = dateFormatter_time.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> Int? in
                return tuple
            })
        mapper <<<
            self.backgroundColour <-- TransformOf(fromJSON: { [weak self] (raw) -> String in
                self?.backgroundColor = raw!
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            })
    }
    
//    enum CodingKeys: String, CodingTableKey {
//        typealias Root = StandListModel
//        static let objectRelationalMapping = TableBinding(CodingKeys.self)
//        {
//            //设置表的主键key为id,用来区分数据唯一性, 如果id为int类型,可以按实现按顺序递增
//            BindColumnConstraint(id, isPrimary: true, isAutoIncrement: true)
//        }
//        case id
//        case name
//        case icon
//        case enable
//        case createTime
//        case createTimeString
//        case timeString
//        case auth
//        case backgroundImg
//        case backgroundColor
//        case backgroundColour
//        case description
//        case cardImg
//        case downPath
//        case descBackgroundImg
//        case upPath
//        case downType
//    }
}

// !!!: /api/identityApi/getIdentity 接口标记
class MineStandInfoBaseModel: BaseModel {
    var authInfos = [MineStandInfoModel]()//个人认证
    var enterpriseAuthInfos = [MineStandInfoModel]()//企业认证
    var agencyAuthInfos = [MineStandInfoModel]()//机构认证
    var icon: String = ""
    var name: String = ""
    var identityId: Int = 0
    var code: String = ""
    var cardImg: String = ""
    var authTime: Int = 0
    var userStatus: Int = 0
    var upPath: String = ""
    var downPath: String = ""
}

class MineStandInfoModel: BaseModel {
    var authInfoId: Int = 0
    var sort: Int = 0
    var name: String?//卡片标签
    var sub_title: String?//报名项说明
    var inputType: Int = 0//1 文本输入 2数字输入 3下拉选择 4认证时间 5认证编码 6正图 7小竖图 8大横图 9单选 10多选 11选项 12时间选择器 13主标题 16大文本框 17弹窗
    var subTitle: String?//17时弹窗 inputType =17  弹窗;  subTitle 返回json   image、jumpType 、jumpPath ;jumpType 沿用身份里的类型 ‘1 外链 2原生页面 3店铺详情 4 店铺控制台’ 并新增 ‘5上滑地址 6下滑地址’ 
    var nonEmpty: Bool = false
    var length: Int = 10
    var children = [MineStandInfoModel]()
    var userInfo: String? = ""//卡片标签的对应值
    var input: Bool = false
    var show: Bool = false
    var value: String? = ""//自己定义的值
    
}
class MineStandInfoSubTitleModel: BaseModel {
    var image: String? = ""//弹窗图片
    var jumpType: Int = 0//弹窗点击跳转类型
    var jumpPath: String? = ""//弹窗点击跳转地址
}

// !!!: api/identityApi/myList  数据返回
class MineAuthListBaseModel: BaseModel {
    required init() {}
    
    var prePage: Int = 0
    var pageSize: Int = 0
    var startRow: Int = 0
    var navigateLastPage: Int = 0
    var firstPage: Int = 0
    var nextPage: Int = 0
    var size: Int = 0
    var endRow: Int = 0
    var isLastPage: Bool = false
    var hasNextPage: Bool = false
    var navigateFirstPage: Int = 0
    var lastPage: Int = 0
    var total: Int = 0
    var list = [MineAuthListModel]()
    var navigatepageNums = [Int]()
    var isFirstPage: Bool = false
    var hasPreviousPage: Bool = false
    var navigatePages: Int = 0
    var pageNum: Int = 0
    var pages: Int = 0
}

final class MineAuthListModel: BaseModel {//,TableCodable {
    
    required init() {}
    
    var cardImg: String? = ""
    var name: String? = ""
    var icon: String? = ""
    var authTime: Int = 0
    var code: String? = ""
    var identityId: Int = 0
    var userStatus: Int = 0
    
//    enum CodingKeys: String, CodingTableKey {
//
//        typealias Root = MineAuthListModel
//        static let objectRelationalMapping = TableBinding(CodingKeys.self)
//        {
//            //设置表的主键key为id,用来区分数据唯一性, 如果id为int类型,可以按实现按顺序递增
//            BindColumnConstraint(identityId, isPrimary: true, isAutoIncrement: true)
//        }
//        case identityId         //不修改数据库字段名,和属性名保持一直
//        case name       //不修改数据库字段名,和属性名保持一直
//        case icon
//        case cardImg
//        case authTime
//        case code
//        case userStatus
//    }
}

// !!!: /Api/Index3/myOrderCount 数据返回
class MinePointCheckInModel: BaseModel {
    
    var pay_order_count: String? = ""//待支付 数量
    var send_order_count: String? = ""//待发货 数量
    var confirm_order_count: Int = 0 //待收货 数量
    var cart_count: String? = "" //购物车数量 数量
    var money: String? = ""//补贴余额
    var coupon_count: String? = ""//优惠券数量
    var integral: String? = ""//积分数量
}
// !!!: /Daren/integral/getTasks.action任务列表界面数据
class MineTaskCheckListModel: BaseModel {
    var icon: String? = ""
    var score: String? = ""
    /**1 为第一次签到显示签到弹框,其他不显示*/
    var status: String? = ""
    var taskId: String? = ""
    var taskType: String? = ""
    var times: Int = 0
    var title: String? = ""
    var totalCount: String? = ""
    var url: String? = ""
    
    /**最外面的参数  表示是不是进行过签到**/
    var checkInStatus: Bool? = false
}
// !!!: /Daren/transaction/getTransactionRecord.action 余额交易记录

class MineTradingRecordBaseModel: BaseModel {
    var defray: String? = ""
    var lasePage: Bool = false
    var income: String? = ""
    var list = [MineTradingRecordModel]()
}

class MineTradingRecordModel: BaseModel {
    
    var disburseRecord: String? = ""//支出
    var incomeRecord: String? = ""  //收入
    var fromId: String? = ""
    var payType: String? = ""
    var recordId: String? = ""
    var sourceId: String? = ""
    var sourceType: String? = ""
    var sum: String? = ""
    var time: String? = ""
    
    /// wjj_balance_transfer  转账标识
    /// wjj_balance_transfer_refund 退款标识
    /// wjj_balance_transfer_collection 确认收款标识
    /// wjj_balance_transfer_overdue_refund 转账过期
    var finalType: String? = ""
    
    var iconBean = MineTradingRecordUserModel()
    
    var fromType: String? = "" //1:收入 2:支出 0:全部
    var toType: String? = "" // 0全部(默认) 1收入 2支出
    var defray: String? = "" //总支出
    var income: String? = "" //总收入
}

class MineTradingRecordUserModel: BaseModel {
    var image: String? = ""
    var nickName: String? = ""
    var userId: String? = ""
}

// !!!: /Daren/integral/myIntegralRecord.action 积分明细列表
class MineIntegralRecordModel: BaseModel {
    var obtainIntegral: Int = 0
    var hasNext: Bool = false
    var payIntegral: Int = 0
    var integralList = [MineIntegralRecordDescModel]()
}

class MineIntegralRecordDescModel: BaseModel {
    var exchangeTime: String? = ""
    var state: String? = ""
    var integral: String? = ""
    var integralDesc: String? = ""
}

// !!!: /api/v1/applyShopInfo 积分明细列表
class MineApplyShopInfoModel: BaseModel {
    var state: String = "0"//状态 0 未申请 1 开店 2 申请中 3 已拒绝 4 闭店 0没有下列参数 1如果没有下列参数则为店员身份
    var identity_stop_time: String? = ""//结束时间
    var registered_address: String? = "" //注册地址
    var commercial_name: String? = ""//统一社会信用代码
    var certificates_name: String? = "" //持证人姓名
    var management_stop_time: String? = ""//营业执照 结束时间戳
    var category: String? = ""//经营类目id
    var addtime: String? = ""//申请时间
    var service_phone: String? = "" //服务电话
    var store_logo: String? = ""//申请时的店铺logo地址
    var identity_start_time: String? = ""//开始时间
    var certificates_code: String? = ""//法人身份证号
    var id: String? = ""
    var desc: String? = ""//拒绝理由  state 等于 3 时显示
    var identification_card1_img: String? = ""//身份证正面图片地址
    var aptitude_images: String? = ""//特殊资质图片地址
    var business_licence_img: String? = "" //营业执照照片地址
    var management_start_time: String? = ""//营业执照 开始时间戳
    var credit_code: String? = ""//统一社会信用代码
    var store_name: String? = ""//申请时的店铺名称
    var identification_card2_img: String? = ""//身份证反面图片地址
}