杨锴
2025-04-16 09a372bc45fde16fd42257ab6f78b8deeecf720b
XQMuse/Root/Network/ViewModels/UserViewModel.swift
@@ -8,8 +8,61 @@
import Foundation
import UserDefaultsStore
class UserDefaultSettingViewModel{
            private static let settingInfo = UserDefaultsStore<UserDefaultSettingModel>(uniqueIdentifier: "settingModel")!
            static func saveSetting(_ model:UserDefaultSettingModel){
                        do{
                                    try settingInfo.save(model)
                        }catch{
                        }
            }
            static func getSetting()->UserDefaultSettingModel?{
                        var model:UserDefaultSettingModel?
                        if settingInfo.allObjects().first == nil{
                                    model = UserDefaultSettingModel()
                                    saveSetting(model!)
                        }else{
                                    model = settingInfo.allObjects().first
                        }
                        return model
            }
            static func clearSetting(){
                        settingInfo.deleteAll()
            }
}
class UserViewModel{
            private static let userInfo = UserDefaultsStore<LoginUserInfoModel>(uniqueIdentifier: "UserInfoModel")!
    private static let userLoginInfo = UserDefaultsStore<LoginUserInfoModel>(uniqueIdentifier: "userLoginInfo")!
    private static let userAvatarInfo = UserDefaultsStore<UserInfoModel>(uniqueIdentifier: "userAvatarInfo")!
    //用户UUID
    static var DeviceUUID:String{
        if let uuid = UserDefaults.standard.value(forKey: "device_UUID") as? String{
            return uuid
        }else{
            let uuid = UUID().uuidString
            UserDefaults.standard.set(uuid, forKey: "device_UUID")
            UserDefaults.standard.synchronize()
            return uuid
        }
    }
    static func getSceneSwitch()->Bool{
        if let scenestate = UserDefaults.standard.value(forKey: "sceneSwitch") as? Bool{
            return scenestate
        }else{
            return true
        }
    }
    static func setSceneSwitch(state:Bool){
        UserDefaults.standard.set(state, forKey: "sceneSwitch")
        UserDefaults.standard.synchronize()
    }
            static func getToken()->String?{
                        return UserDefaults.standard.object(forKey: "_userToken") as? String
@@ -24,19 +77,37 @@
                        UserDefaults.standard.synchronize()
            }
            static func saveUserInfo(_ model:LoginUserInfoModel){
            static func saveLoginInfo(_ model:LoginUserInfoModel){
                        do{
                                    try UserViewModel.userInfo.save(model)
                                    try UserViewModel.userLoginInfo.save(model)
                        }catch{
                        }
            }
            static func getUserInfo()->LoginUserInfoModel?{
                        return UserViewModel.userInfo.allObjects().first
            static func getLoginInfo()->LoginUserInfoModel?{
                        return UserViewModel.userLoginInfo.allObjects().first
            }
            static func clearUserInfo(){
                        UserViewModel.userInfo.deleteAll()
            static func clearLoginInfo(){
                        UserViewModel.userLoginInfo.deleteAll()
            }
            static func saveAvatarInfo(_ model:UserInfoModel){
                        do{
                                    try UserViewModel.userAvatarInfo.save(model)
                        }catch{
                        }
            }
            static func getAvatarInfo()->UserInfoModel{
                        let userModel = UserViewModel.userAvatarInfo.allObjects().first
                        return userModel == nil ? UserInfoModel():userModel!
            }
            static func clearAvatarInfo(){
                        UserViewModel.userAvatarInfo.deleteAll()
            }
}