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? = ""//身份证反面图片地址
}