SPUtils.kt 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. package com.grkj.iscs.util
  2. import android.content.Context
  3. import com.google.gson.Gson
  4. import com.google.gson.reflect.TypeToken
  5. import com.grkj.iscs.model.UrlConsts
  6. import com.grkj.iscs.model.bo.LoginUserBO
  7. import com.grkj.iscs.model.bo.UpdateKeyReturnBO
  8. import com.grkj.iscs.model.vo.system.SystemAttributePageRespVO
  9. import com.grkj.iscs.model.vo.ticket.LockPointUpdateReqVO
  10. import com.grkj.iscs.model.vo.user.UserInfoRespVO
  11. import com.grkj.iscs.util.log.LogUtil
  12. object SPUtils {
  13. private const val SP_NAME = "iscs"
  14. private const val SP_CONFIG_NAME = "iscs_config"
  15. private const val SP_DATA = "iscs_data"
  16. private const val SP_ATTRIBUTE = "iscs_attribute"
  17. private const val SP_URL = "iscs_url"
  18. private const val KEY_LOGIN_USER_CARD_ID = "card_id"
  19. private const val KEY_LOGIN_USER_CARD_CODE = "card_code"
  20. private const val KEY_LOGIN_USER_HARDWARE_ID = "hardware_id"
  21. private const val KEY_LOGIN_USER_CARD_NFC = "card_nfc"
  22. private const val KEY_LOGIN_USER_CARD_TYPE = "card_type"
  23. private const val KEY_LOGIN_USER_USER_ID = "user_id"
  24. private const val KEY_LOGIN_USER_USER_NAME = "user_name"
  25. private const val KEY_LOGIN_USER_KEY_CODE = "key_code"
  26. private const val KEY_LOGIN_USER_ROLE_KEY = "role_key"
  27. private const val KEY_DOCK_CONFIG = "dock_config"
  28. private const val KEY_PORT_CONFIG = "port_config"
  29. private const val KEY_STEP_MODE = "step_mode"
  30. private const val KEY_DATA_UPDATE_LOCK_POINT = "update_lock_point"
  31. private const val KEY_DATA_UPDATE_KEY_RETURN = "update_key_return"
  32. private const val KEY_SYSTEM_ATTRIBUTE = "system_attribute"
  33. private const val KEY_BASE_URL = "base_url"
  34. fun getLoginUser(context: Context): LoginUserBO? {
  35. val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
  36. if (sp.getLong(KEY_LOGIN_USER_USER_ID, -1) == -1L) {
  37. return null
  38. }
  39. return LoginUserBO(
  40. userId = sp.getLong(KEY_LOGIN_USER_USER_ID, 0),
  41. userName = sp.getString(KEY_LOGIN_USER_USER_NAME, null),
  42. keyCode = sp.getString(KEY_LOGIN_USER_KEY_CODE, null),
  43. roleKeyList = sp.getString(KEY_LOGIN_USER_ROLE_KEY, null)?.split(",")?.toMutableList(),
  44. userCardList = sp.getString(KEY_LOGIN_USER_CARD_NFC, null)?.split(",")?.toMutableList()
  45. )
  46. }
  47. fun setLoginUser(context: Context, userInfoRespVO: UserInfoRespVO) {
  48. val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
  49. val edit = sp.edit()
  50. userInfoRespVO.user?.userId?.let {
  51. edit.putLong(KEY_LOGIN_USER_USER_ID, it)
  52. }
  53. userInfoRespVO.user?.userName?.let {
  54. edit.putString(KEY_LOGIN_USER_USER_NAME, it)
  55. }
  56. userInfoRespVO.user?.keyCode?.let {
  57. edit.putString(KEY_LOGIN_USER_KEY_CODE, it)
  58. }
  59. userInfoRespVO.roles?.let {
  60. edit.putString(KEY_LOGIN_USER_ROLE_KEY, it.toString().replace("[", "").replace("]", ""))
  61. }
  62. userInfoRespVO.userCardList?.let {
  63. edit.putString(KEY_LOGIN_USER_CARD_NFC, it.toString().replace("[", "").replace("]", ""))
  64. }
  65. edit.commit()
  66. }
  67. fun clearLoginUser(context: Context): Boolean {
  68. return try {
  69. val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
  70. val edit = sp.edit()
  71. edit.clear()
  72. edit.apply()
  73. true
  74. } catch (e: Exception) {
  75. false
  76. }
  77. }
  78. fun saveDockConfig(context: Context, config: String) {
  79. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  80. val edit = sp.edit()
  81. edit.putString(KEY_DOCK_CONFIG, config)
  82. edit.commit()
  83. }
  84. fun getDockConfig(context: Context): String? {
  85. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  86. return sp.getString(KEY_DOCK_CONFIG, null)
  87. }
  88. fun savePortConfig(context: Context, config: String) {
  89. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  90. val edit = sp.edit()
  91. edit.putString(KEY_PORT_CONFIG, config)
  92. edit.commit()
  93. }
  94. fun getPortConfig(context: Context): String? {
  95. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  96. return sp.getString(KEY_PORT_CONFIG, null)
  97. }
  98. fun saveStepMode(context: Context, mode: Int) {
  99. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  100. val edit = sp.edit()
  101. edit.putInt(KEY_STEP_MODE, mode)
  102. edit.commit()
  103. }
  104. fun getStepMode(context: Context): Int {
  105. val sp = context.getSharedPreferences(SP_CONFIG_NAME, Context.MODE_PRIVATE)
  106. return sp.getInt(KEY_STEP_MODE, 0)
  107. }
  108. fun saveUpdateLockPoint(context: Context, list: MutableList<LockPointUpdateReqVO>) {
  109. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  110. val edit = sp.edit()
  111. val tempList = getUpdateLockPoint(context)
  112. tempList.addAll(list)
  113. edit.putString(KEY_DATA_UPDATE_LOCK_POINT, Gson().toJson(tempList))
  114. edit.apply()
  115. }
  116. fun getUpdateLockPoint(context: Context): MutableList<LockPointUpdateReqVO> {
  117. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  118. val listJson = sp.getString(KEY_DATA_UPDATE_LOCK_POINT, null)
  119. if (listJson.isNullOrEmpty()) {
  120. return mutableListOf()
  121. }
  122. try {
  123. val tempList: MutableList<LockPointUpdateReqVO> = Gson().fromJson(
  124. listJson,
  125. object : TypeToken<MutableList<LockPointUpdateReqVO>>() {}.type
  126. )
  127. return tempList
  128. } catch (e: Exception) {
  129. LogUtil.e("${e.message}")
  130. return mutableListOf()
  131. }
  132. }
  133. fun clearUpdateLockPoint(context: Context) {
  134. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  135. val edit = sp.edit()
  136. edit.putString(KEY_DATA_UPDATE_LOCK_POINT, null)
  137. edit.apply()
  138. }
  139. fun saveUpdateKeyReturn(context: Context, returnBO: UpdateKeyReturnBO) {
  140. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  141. val edit = sp.edit()
  142. val tempList = getUpdateKeyReturn(context)
  143. tempList.add(returnBO)
  144. edit.putString(KEY_DATA_UPDATE_KEY_RETURN, Gson().toJson(tempList))
  145. edit.apply()
  146. }
  147. fun getUpdateKeyReturn(context: Context): MutableList<UpdateKeyReturnBO> {
  148. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  149. val listJson = sp.getString(KEY_DATA_UPDATE_KEY_RETURN, null)
  150. if (listJson.isNullOrEmpty()) {
  151. return mutableListOf()
  152. }
  153. try {
  154. val tempList: MutableList<UpdateKeyReturnBO> =
  155. Gson().fromJson(
  156. listJson,
  157. object : TypeToken<MutableList<UpdateKeyReturnBO>>() {}.type
  158. )
  159. return tempList
  160. } catch (e: Exception) {
  161. LogUtil.e("${e.message}")
  162. return mutableListOf()
  163. }
  164. }
  165. fun clearUpdateKeyReturn(context: Context) {
  166. val sp = context.getSharedPreferences(SP_DATA, Context.MODE_PRIVATE)
  167. val edit = sp.edit()
  168. edit.putString(KEY_DATA_UPDATE_KEY_RETURN, null)
  169. edit.apply()
  170. }
  171. fun saveSystemAttribute(
  172. context: Context,
  173. recordList: MutableList<SystemAttributePageRespVO.Record>
  174. ) {
  175. val sp = context.getSharedPreferences(SP_ATTRIBUTE, Context.MODE_PRIVATE)
  176. val edit = sp.edit()
  177. edit.putString(KEY_SYSTEM_ATTRIBUTE, Gson().toJson(recordList))
  178. edit.commit()
  179. }
  180. fun getSystemAttribute(context: Context): MutableList<SystemAttributePageRespVO.Record> {
  181. val sp = context.getSharedPreferences(SP_ATTRIBUTE, Context.MODE_PRIVATE)
  182. val listJson = sp.getString(KEY_SYSTEM_ATTRIBUTE, null)
  183. if (listJson.isNullOrEmpty()) {
  184. return mutableListOf()
  185. }
  186. try {
  187. val tempList: MutableList<SystemAttributePageRespVO.Record> = Gson().fromJson(
  188. listJson,
  189. object : TypeToken<MutableList<SystemAttributePageRespVO.Record>>() {}.type
  190. )
  191. return tempList
  192. } catch (e: Exception) {
  193. LogUtil.e("${e.message}")
  194. return mutableListOf()
  195. }
  196. }
  197. fun getAttributeValue(context: Context, key: String?): String? {
  198. val list = getSystemAttribute(context)
  199. if (list.isEmpty()) {
  200. return null
  201. }
  202. return list.find { it.sysAttrKey == key }?.sysAttrValue
  203. }
  204. fun saveBaseUrl(context: Context, url: String) {
  205. val sp = context.getSharedPreferences(SP_URL, Context.MODE_PRIVATE)
  206. val edit = sp.edit()
  207. edit.putString(KEY_BASE_URL, url)
  208. edit.commit()
  209. }
  210. fun getBaseUrl(context: Context): String {
  211. val sp = context.getSharedPreferences(SP_URL, Context.MODE_PRIVATE)
  212. val spUrl = sp.getString(KEY_BASE_URL, null)
  213. if (spUrl.isNullOrEmpty()) {
  214. return UrlConsts.BASE_URL
  215. }
  216. return spUrl
  217. }
  218. }