UserHelper.kt 3.98 KB
Newer Older
1
package com.yidianling.user
konghaorui committed
2 3 4

import android.text.TextUtils
import com.google.gson.Gson
5 6 7
import com.ydl.ydlcommon.utils.SharedPreferencesEditor
import com.ydl.ydlcommon.utils.UserInfoCache
import com.ydl.ydlcommon.utils.YdlBuryPointUtil
8 9
import com.yidianling.user.api.bean.UserResponseBean
import com.yidianling.user.api.bean.UserSettingBean
konghaorui committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

/**
 * 用户信息辅助类
 */
object UserHelper {

    val gson: Gson = Gson()

    //用户信息存储
    private val user_info_name_sp = "ydl_user_info"
    private val user_info_key_sp = "ydl_user_info_key"

    //用户设置存储
    private val user_setting_name_sp = "ydl_user_setting"
    private val user_setting_key_sp = "ydl_user_setting_key"

    //用户信息//缓存
27
    private var userTemp: UserResponseBean? = null
konghaorui committed
28 29

    //用户设置信息缓存
30
    private var userSetting: UserSettingBean? = null
konghaorui committed
31 32

    //存储用户信息
33
    fun setUserinfo(userInfo: UserResponseBean?) {
konghaorui committed
34 35 36 37 38 39 40
        try {
            userTemp = userInfo
            var str = gson.toJson(userTemp)
            SharedPreferencesEditor.putFileString(user_info_name_sp, user_info_key_sp, str)

            UserInfoCache.getInstance().saveYDLUser("\"" + userInfo?.uid + "\"",
                    userInfo?.userInfo?.nick_name, userInfo?.userInfo?.head)
41 42

            YdlBuryPointUtil.reLogin()
konghaorui committed
43 44 45 46 47 48
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    //获取用户设置信息
49
    fun getUserInfo(): UserResponseBean? {
konghaorui committed
50 51 52
        if (userTemp != null) return userTemp!!
        try {
            var obj = SharedPreferencesEditor.getFileString(user_info_name_sp, user_info_key_sp)
53
            var app: UserResponseBean = gson.fromJson(obj, UserResponseBean::class.java)
konghaorui committed
54 55 56
            userTemp = app
            return userTemp!!
        } catch (e: Exception) {
57
            userTemp = UserResponseBean()
konghaorui committed
58 59 60 61
        }
        return userTemp
    }

62 63
    fun getUserInfoStr(): String? {
        if (userTemp != null) return gson.toJson(userTemp)
64
        return SharedPreferencesEditor.getFileString(user_info_name_sp, user_info_key_sp)
65 66 67
    }

    fun updateUserinfo(userInfo: UserResponseBean.UserInfo?) {
konghaorui committed
68 69 70
        getUserInfo()?.userInfo = userInfo
    }

71
    fun updateUserSetting(userseting: UserSettingBean?) {
konghaorui committed
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
        setUserSetting(userseting)
    }

    /**
     * 是否登录
     */
    fun isLogin(): Boolean {
        try {
            var user = getUserInfo()?.userInfo
            if (TextUtils.isEmpty(user?.uid)) {
                return false
            }
            var uid: Int = user?.uid?.toInt() ?: 0
            if (uid > 0) {
                return true
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return false
    }

    /**
     * 是否绑定手机
     */
    fun isBindPhone(): Boolean {
        return !TextUtils.isEmpty(getUserInfo()?.userInfo?.phone)
    }

    /**
     * 存储用户设置信息
     */
104
    fun setUserSetting(userseting: UserSettingBean?) {
konghaorui committed
105 106 107 108 109 110 111 112 113 114 115 116
        try {
            userSetting = userseting
            var str = gson.toJson(userSetting)
            SharedPreferencesEditor.putFileString(user_setting_name_sp, user_setting_key_sp, str)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    /**
     * 获取用户设置信息
     */
117
    fun getUsetSetting(): UserSettingBean? {
konghaorui committed
118 119 120 121
        if (userSetting != null) return userSetting!!
        try {
            var obj = SharedPreferencesEditor.getFileString(user_setting_name_sp, user_setting_key_sp)
            if (TextUtils.isEmpty(obj)) {
122
                setUserSetting(UserSettingBean())
konghaorui committed
123
            }
124
            var app: UserSettingBean = gson.fromJson(obj, UserSettingBean::class.java)
konghaorui committed
125 126 127 128 129 130
            userSetting = app
            return userSetting
        } catch (e: Exception) {
        }
        return userSetting
    }
131 132 133

    fun getUserSettingStr(): String? {
        if (userSetting != null) return gson.toJson(userSetting)
134
        return SharedPreferencesEditor.getFileString(user_setting_name_sp, user_setting_key_sp)
135
    }
konghaorui committed
136
}