//
|
// CommonModel.swift
|
// DolphinEnglishLearnStudent
|
//
|
// Created by 无故事王国 on 2024/5/30.
|
//
|
|
import Foundation
|
import HandyJSON
|
import UserDefaultsStore
|
|
struct LoginModel:HandyJSON{
|
var token:LoginTokenModel?
|
}
|
|
struct LoginTokenModel:HandyJSON,Identifiable,Codable{
|
static let idKey = \LoginTokenModel.id
|
var id: Int = 0
|
|
var access_token = ""
|
var expires_in = 0
|
var request_time = 0 //请求时间
|
|
private static let userInfo = UserDefaultsStore<LoginTokenModel>(uniqueIdentifier: "LoginTokenModel")!
|
|
static func saveToken(_ model:LoginTokenModel){
|
do{
|
try LoginTokenModel.userInfo.save(model)
|
}catch{
|
|
}
|
}
|
|
static func isOverdue()->Bool{
|
if let token = LoginTokenModel.getToken(){
|
//过期时间(秒)
|
let overdueTimeval = token.expires_in * 60 + token.request_time
|
|
if overdueTimeval < Int(Date().timeIntervalSince1970){
|
return true
|
}
|
return false
|
}
|
return true
|
}
|
|
static func getToken()->LoginTokenModel?{
|
return LoginTokenModel.userInfo.allObjects().first
|
}
|
|
static func clearToken(){
|
LoginTokenModel.userInfo.deleteAll()
|
}
|
}
|
|
|
struct RecommendModel:HandyJSON{
|
var basicCount: Int = 0
|
var coverImg: String = ""
|
var createBy: String = ""
|
var createTime: String = ""
|
var detail: String = ""
|
var detailImg: String = ""
|
var disabled: Bool = false
|
var id: Int = 0
|
var insertTime: String = ""
|
var integral: Int = 0
|
var inventory: Int = 0
|
var isDelete: Int = 0
|
var name: String = ""
|
var price: Int = 0
|
var surplus: Int = 0
|
var total: Int = 0
|
var type: Int = 0
|
var typeIds: String = ""
|
var updateBy: String = ""
|
var updateTime: String = ""
|
var userCount: Int = 0
|
}
|
|
struct MarketModel:HandyJSON{
|
var basicCount: Int = 0
|
var coverImg: String = ""
|
var createBy: String = ""
|
var createTime: String = ""
|
var detail: String = ""
|
var detailImg: String = ""
|
var disabled: Bool = false
|
var id: Int = 0
|
var integral: Int = 0
|
var inventory: Int = 0
|
var isDelete: Int = 0
|
var name: String = ""
|
var price: Int = 0
|
var surplus: Int = 0
|
var total: Int = 0
|
var type: Int = 0
|
var typeIds: String = ""
|
var updateBy: String = ""
|
var updateTime: String = ""
|
var userCount: Int = 0
|
}
|
|
struct MarketTypeModel:HandyJSON,Hashable{
|
var id = 0
|
var name = ""
|
}
|
|
struct MarketDetailModel:HandyJSON{
|
var exchangeNumber: Int = 0
|
var good: MarketModel?
|
var goodTypes = [MarketTypeModel]()
|
var orderNumber: String = ""
|
var recipient: MarketRecipientModel?
|
}
|
|
struct MarketRecipientModel:HandyJSON,Hashable{
|
var id = 0
|
var name = ""
|
}
|
|
struct AddressModel:HandyJSON{
|
var address: String = ""
|
var city: String = ""
|
var cityCode: String = ""
|
var createBy: String = ""
|
var createTime: String = ""
|
var disabled: Bool = false
|
var id: Int = 0
|
var isDefault: Int = 0
|
var province: String = ""
|
var provinceCode: String = ""
|
var recipient: String = ""
|
var recipientPhone: String = ""
|
var updateBy: String = ""
|
var updateTime: String = ""
|
var userId: Int = 0
|
}
|
|
struct AddressTreeModel:HandyJSON{
|
var id = 0
|
var name = ""
|
var code = ""
|
var parentId = 0
|
var children:[AddressTreeModel]?
|
}
|
|
struct IntegralModel:HandyJSON{
|
var createBy: String = ""
|
var createTime: String = ""
|
var disabled: Bool = false
|
var gameId: Int = 0
|
var id: Int = 0
|
var integral: String = ""
|
var method: String = ""
|
var storyId: Int = 0
|
var type: String = ""
|
var updateBy: String = ""
|
var updateTime: String = ""
|
var userId: Int = 0
|
}
|
|
struct ExchangeRecordModel:HandyJSON{
|
var completeTime: String = ""
|
var consigneeAddress: String = ""
|
var consigneeName: String = ""
|
var consigneePhone: String = ""
|
var count: Int = 0
|
var createBy: String = ""
|
var createTime: String = ""
|
var disabled: Bool = false
|
var express: String = ""
|
var expressNumber: String = ""
|
var expressTime: String = ""
|
var goodsId: Int = 0
|
var id: Int = 0
|
var insertTime: String = ""
|
var integral: Int = 0
|
var orderNumber: String = ""
|
var state: Int = 0
|
var updateBy: String = ""
|
var updateTime: String = ""
|
var userId: Int = 0
|
}
|
|
struct StudyGamesModel:HandyJSON{
|
var gameRecordList = [StudyGamesRecordModel]()
|
var record:StudyDataRecordModel?
|
}
|
|
|
struct StudyGamesRecordModel:HandyJSON{
|
var accuracy: Int = 0
|
var createBy: String?
|
var createTime: String?
|
var disabled: Bool = false
|
var gameDifficulty: Int = 0
|
var gameId: Int = 0
|
var gameName: String?
|
var id: Int = 0
|
var updateBy: String?
|
var updateTime: String?
|
var userId: Int = 0
|
var useTime: Int = 0
|
}
|
|
struct StudyDataRecordModel:HandyJSON{
|
var answer: Int = 0
|
var createBy: String?
|
var createTime: String?
|
var day: Int = 0
|
var disabled: Bool = false
|
var id: Int = 0
|
var induction: Int = 0
|
var listen: Int = 0
|
var look: Int = 0
|
var monthStudy: Int = 0
|
var pair: Int = 0
|
var surplus: Int = 0
|
var todayStudy: Int = 0
|
var totalStudy: Int = 0
|
var updateBy: String?
|
var updateTime: String?
|
var userId: Int = 0
|
var week: Int = 0
|
var weekStudy: Int = 0
|
}
|
|
struct ListenWeekModel:HandyJSON{
|
var id = 0
|
var day = 0
|
var quarter = 0
|
var title = ""
|
var totalIntegral = 0
|
var type = 0
|
var week = 0
|
}
|