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