From ac84f81ca2311300b431c1bfb9f71253b59073f2 Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期三, 04 六月 2025 00:16:22 +0800 Subject: [PATCH] 修改部分 --- DolphinEnglishLearnStudent/Models/CommonModel.swift | 663 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 342 insertions(+), 321 deletions(-) diff --git a/DolphinEnglishLearnStudent/Models/CommonModel.swift b/DolphinEnglishLearnStudent/Models/CommonModel.swift index 63bb66b..d2d2a0c 100644 --- a/DolphinEnglishLearnStudent/Models/CommonModel.swift +++ b/DolphinEnglishLearnStudent/Models/CommonModel.swift @@ -10,443 +10,464 @@ import UserDefaultsStore struct LoginModel:HandyJSON{ - var token:LoginTokenModel? + var token:LoginTokenModel? } struct LoginTokenModel:HandyJSON,Identifiable,Codable{ - static let idKey = \LoginTokenModel.id - var id: Int = 0 + static let idKey = \LoginTokenModel.id + var id: Int = 0 - var access_token = "" - var expires_in = 0 - var request_time = 0 //请求时间 + var access_token = "" + var expires_in = 0 + var request_time = 0 //请求时间 - private static let userInfo = UserDefaultsStore<LoginTokenModel>(uniqueIdentifier: "LoginTokenModel")! + private static let userInfo = UserDefaultsStore<LoginTokenModel>(uniqueIdentifier: "LoginTokenModel")! - static func saveToken(_ model:LoginTokenModel){ - do{ - try LoginTokenModel.userInfo.save(model) - }catch{ + 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 isOverdue()->Bool{ + if let token = LoginTokenModel.getToken(){ + //过期时间(秒) + let overdueTimeval = token.expires_in * 60 + token.request_time - static func getToken()->LoginTokenModel?{ - return LoginTokenModel.userInfo.allObjects().first - } + if overdueTimeval < Int(Date().timeIntervalSince1970){ + return true + } + return false + } + return true + } - static func clearToken(){ - LoginTokenModel.userInfo.deleteAll() - } + 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 + 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: Double = 0 - var surplus: Int? - var total: Int = 0 - var type: Int = 0 - var typeIds: String = "" - var updateBy: String = "" - var updateTime: String = "" - var userCount: Int? + 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: Double = 0 + var surplus: Int? + var total: Int = 0 + var type: Int = 0 + var typeIds: String = "" + var updateBy: String = "" + var updateTime: String = "" + var userCount: Int? } struct MarketTypeModel:HandyJSON,Hashable{ - var id = 0 - var name = "" + var id = 0 + var name = "" } struct MarketDetailModel:HandyJSON{ - var exchangeNumber: Int = 0 - var good: MarketModel? - var goodTypes = [MarketTypeModel]() - var orderNumber: String = "" - var residueNumber:Int? - var recipient: MarketRecipientModel? + var exchangeNumber: Int = 0 + var good: MarketModel? + var goodTypes = [MarketTypeModel]() + var orderNumber: String = "" + var residueNumber:Int? + var recipient: MarketRecipientModel? } struct MarketRecipientModel:HandyJSON,Hashable{ - var id = 0 - var name = "" + 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 - var orderId:Int = 0 + 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 + var orderId:Int = 0 } struct AddressTreeModel:HandyJSON{ - var id = 0 - var name = "" - var code = "" - var parentId = 0 - var children:[AddressTreeModel]? + 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 + 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 goodsName: String = "" - var id: Int = 0 - var insertTime: String = "" - var integral: Int = 0 - var orderNumber: String = "" - var orderId:Int = 0 - var state: Int = 0 //订单状态1待发货2已发货3已完成 - var updateBy: String = "" - var updateTime: String = "" - var userId: Int = 0 - var goodsType = [String]() - var coverImg:String = "" + 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 goodsName: String = "" + var id: Int = 0 + var insertTime: String = "" + var integral: Int = 0 + var orderNumber: String = "" + var orderId:Int = 0 + var state: Int = 0 //订单状态1待发货2已发货3已完成 + var updateBy: String = "" + var updateTime: String = "" + var userId: Int = 0 + var goodsType = [String]() + var coverImg:String = "" } struct StudyGamesModel:HandyJSON{ - var gameRecordList = [StudyGamesRecordModel]() - var record:StudyDataRecordModel? + var gameRecordList = [StudyGamesRecordModel]() + var record:StudyDataRecordModel? } struct StudyGamesRecordModel:HandyJSON{ - var accuracy: Int = 0 - var createBy: String = "" - var time = "" -// 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 + var accuracy: Int = 0 + var createBy: String = "" + var time = "" + // 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 + 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 - var canStudy = 0 + var id = 0 + var day = 0 + var quarter = 0 + var title = "" + var totalIntegral = 0 + var type = 0 + var week = 0 + var canStudy = 0 } class ListenNewModel:HandyJSON{ - var data:ListenNewDataModel? - var subjectList = [[Listen1SubModel]]() + var data:ListenNewDataModel? + var list = [ListenSubCardModel]() + var subjectList = [[Listen1SubModel]]() + var accuracy:Double = 0 - required init(){} + required init(){} } class ListenNewDataModel:HandyJSON{ - var id:String = "" - var integral = 0 + var id:String = "" + var integral = 0 - required init(){} + required init(){} } class Listen1Model:HandyJSON{ - var data:Listen1DataModel? - var subjectList = [Listen1SubModel]() - var storyList = [Listen1SubModel]() + var data:Listen1DataModel? + var subjectList = [Listen1SubModel]() + var storyList = [Listen1SubModel]() - //超级记忆专用 - var photoList = [SimpleListenDataModel]() - var voiceList = [SimpleListenDataModel]() + //超级记忆专用 + var photoList = [SimpleListenDataModel]() + var voiceList = [SimpleListenDataModel]() - required init(){} + required init(){} } struct TeamScheduleModel:HandyJSON{ - var answerNumber = 0 - var correctNumber = 0 - var teamIds = [Int]() //题组ids - var topicIds = [Int]() //已回答正确的题目Id - var schedule = 0 + var answerNumber = 0 + var correctNumber = 0 + var teamIds = [Int]() //题组ids + var topicIds = [Int]() //已回答正确的题目Id + var schedule = 0 } struct Listen1DataModel:HandyJSON{ - var createBy: String = "" - var createTime: String = "" - var day: Int = 0 - var disabled: Bool = false - var id: Int = 0 - var integral: Int = 0 - var isVip: Int = 0 - var studyId: Int = 0 - var subject: String = "" - var updateBy: String = "" - var updateTime: String = "" - var week: Int = 0 - var answerCount = 0 - var answerIntegral = 0 - var answerTime = 0 - var time = 0 - var count = 0 - var lookIntegral = 0 + var createBy: String = "" + var createTime: String = "" + var day: Int = 0 + var disabled: Bool = false + var id: Int = 0 + var integral: Int = 0 + var isVip: Int = 0 + var studyId: Int = 0 + var subject: String = "" + var updateBy: String = "" + var updateTime: String = "" + var week: Int = 0 + var answerCount = 0 + var answerIntegral = 0 + var answerTime = 0 + var time = 0 + var count = 0 + var lookIntegral = 0 - //custom - var playNow:Bool = false //立刻播放 + //custom + var playNow:Bool = false //立刻播放 } +class ListenSubCardModel:HandyJSON{ + var createBy: String = "" + var createTime: String = "" + var day: Int = 0 + var disabled: Bool = false + var id: Int = 0 + var objectId: Int = 0 + var one: Int = 0 + var status: Int = 0 + var two: Int = 0 + var type: Int = 0 + var updateBy: String = "" + var updateTime: String = "" + var userId: Int = 0 + var week: Int = 0 + + required init(){} +} + class Listen1SubModel:HandyJSON,Hashable{ - - static func == (lhs: Listen1SubModel, rhs: Listen1SubModel) -> Bool { - return lhs.id == rhs.id - } -// var hashValue: Int{ -// return id -// } + static func == (lhs: Listen1SubModel, rhs: Listen1SubModel) -> Bool { + return lhs.id == rhs.id + } - func hash(into hasher: inout Hasher) { + // var hashValue: Int{ + // return id + // } - } + func hash(into hasher: inout Hasher) { + + } - required init() {} + required init() {} - var correct: String = "" - var createBy: String = "" - var createTime: String = "" - var disabled: Bool = false - var english: String = "" - var error: String = "" - var id: Int = 0 - var img: String = "" - var name: String = "" - var state: Int = 0 - var type: String = "" - var updateBy: String = "" - var updateTime: String = "" + var correct: String = "" + var createBy: String = "" + var createTime: String = "" + var disabled: Bool = false + var english: String = "" + var error: String = "" + var id: Int = 0 + var img: String = "" + var name: String = "" + var state: Int = 0 + var type: String = "" + var updateBy: String = "" + var updateTime: String = "" - //学习类型四专用 - var isQuestion:Int = 0 + //学习类型四专用 + var isQuestion:Int = 0 - //游戏类型2专用 - var isOpen:Bool = false + //游戏类型2专用 + var isOpen:Bool = false - // 自主学习1,3专用 (是否已回答) - var isAnster:Bool = false + // 自主学习1,3专用 (是否已回答) + var isAnster:Bool = false } @available(*,deprecated,message: "废弃") struct Listen4Model:HandyJSON{ - var data = [Listen4DataModel]() + var data = [Listen4DataModel]() } struct Listen4DataModel:HandyJSON{ - var answerSubject: Int = 0 - var createBy: String = "" - var createTime: String = "" - var day: Int = 0 - var disabled: Bool = false - var id: Int = 0 - var integral: Int = 0 - var isAnswer: Int = 0 - var isVip: Int = 0 - var studyId: Int = 0 - var subject: Int = 0 - var subjectList = [Listen1SubModel]() - var updateBy: String = "" - var updateTime: String = "" - var week: Int = 0 + var answerSubject: Int = 0 + var createBy: String = "" + var createTime: String = "" + var day: Int = 0 + var disabled: Bool = false + var id: Int = 0 + var integral: Int = 0 + var isAnswer: Int = 0 + var isVip: Int = 0 + var studyId: Int = 0 + var subject: Int = 0 + var subjectList = [Listen1SubModel]() + var updateBy: String = "" + var updateTime: String = "" + var week: Int = 0 } struct StudyScheduleModel:HandyJSON,Hashable{ - init() {} - - var answer: Int = 0 - var day: Int = 0 - var computeSchedule:Int = 0 - 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: String = "" - var todayStudy: Int = 0 - var totalStudy: Int = 0 - var userId: Int = 0 - var week: Int = 0 - var weekStudy: Int = 0 - var gameDifficulty:Int = 0 + init() {} - var hashValue: Int{ - return answer+day+computeSchedule+induction+listen+look+monthStudy+pair+todayStudy+totalStudy+week+weekStudy+gameDifficulty - } + var answer: Int = 0 + var day: Int = 0 + var computeSchedule:Int = 0 + 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: String = "" + var todayStudy: Int = 0 + var totalStudy: Int = 0 + var userId: Int = 0 + var week: Int = 0 + var weekStudy: Int = 0 + var gameDifficulty:Int = 0 + + var hashValue: Int{ + return answer+day+computeSchedule+induction+listen+look+monthStudy+pair+todayStudy+totalStudy+week+weekStudy+gameDifficulty + } } class SimpleListenDataModel:HandyJSON,Hashable{ - required init() {} + required init() {} - static func == (lhs: SimpleListenDataModel, rhs: SimpleListenDataModel) -> Bool { - return lhs.id == rhs.id - } + static func == (lhs: SimpleListenDataModel, rhs: SimpleListenDataModel) -> Bool { + return lhs.id == rhs.id + } - func hash(into hasher: inout Hasher) { + func hash(into hasher: inout Hasher) { - } + } - var id = 0 - var photo = "" - var voice = "" + var id = 0 + var photo = "" + var voice = "" - //游戏类型2专用 - var isOpen:Bool = false - var type = 0 // 1:图片 2:音频 + //游戏类型2专用 + var isOpen:Bool = false + var type = 0 // 1:图片 2:音频 } struct PromptVoiceModel:HandyJSON{ - var correct: String = "" - var createBy: String = "" - var createTime: String = "" - var disabled: Bool = false - var error: String = "" - var id: Int = 0 - var img: String = "" - var integral: String = "" - var integralShare: String = "" - var phone: String = "" - var time: String = "" - var title: String = "" - var updateBy: String = "" - var updateTime: String = "" + var correct: String = "" + var createBy: String = "" + var createTime: String = "" + var disabled: Bool = false + var error: String = "" + var id: Int = 0 + var img: String = "" + var integral: String = "" + var integralShare: String = "" + var phone: String = "" + var time: String = "" + var title: String = "" + var updateBy: String = "" + var updateTime: String = "" } struct ShareInfoModel:HandyJSON{ - var title = "" - var phone = "" - var img = "" + var title = "" + var phone = "" + var img = "" } struct VIPInfoModel:HandyJSON{ - var id = 0 - var info = "" - var isVip = 0 - var time = 0 - var amount = 0 + var id = 0 + var info = "" + var isVip = 0 + var time = 0 + var amount = 0 } struct PaymentInfoModel:HandyJSON{ - var id = 0 - var orderId = 0 + var id = 0 + var orderId = 0 } -- Gitblit v1.7.1