KMMemberInfo.swift 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. //
  2. // KMMemberInfo.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by wanjun on 2024/10/22.
  6. //
  7. import Cocoa
  8. @objcMembers class KMMemberInfo: NSObject {
  9. static let shared = KMMemberInfo()
  10. var isLogin: Bool = false
  11. /**
  12. 登录
  13. */
  14. private var _refresh_token: String = "" // 刷新Token
  15. private var _access_token: String = "" // 访问Token
  16. private var _token_type: String = "" // Token 类型
  17. private var _expires_in: String = ""
  18. private var _scope: String = ""
  19. /**
  20. 登录
  21. */
  22. var userID: String = "" // 用户ID
  23. var userEmail: String = "" // 用户邮箱
  24. var fullName: String = "" // 用户名称
  25. var _activeVips: [KMMemberUserInfoActiveVIP] = [] // 活跃的会员
  26. var _activeAis: [KMMemberUserInfoActiveVIP] = [] // 活跃的AI
  27. var vip_id: String = "" // id
  28. var vip_userId: String = "" // 用户id
  29. var vip_status: Int = 0 // 状态 0注册1订阅中2订阅过期3试用中4试用过期
  30. var vip_endDate: String = "" // 到期时间
  31. var vip_payType: Int = 0 // 0未开启自动续订 1自动续订
  32. var vip_productName: String = "" // 产品名字
  33. var vip_levels: String = "" // 会员等级 1是免费 2是标准 3是高级
  34. var vip_platforms: String = "" // 支持的平台
  35. var vip_point: Int = 0 // 剩余ai点数(svip才有)
  36. var vip_maxDeviceNum: Int = 0 // 最大登录设备限制数
  37. var vip_paymentModel: String = "" // 支付方式 付费模式(1自动续订(vip svip) 2单次付费(永久会员))
  38. var vip_isAi: String = "" // 是否是ai产品(0否1是)
  39. var vip_cycle: Int = 0 // 订阅周期:1、月(30天);2、季(90天);3、半年(183天);4、年(365天)
  40. var ai_id: String = "" // id
  41. var ai_userId: String = "" // 用户id
  42. var ai_status: Int = 0 // 状态 0注册1订阅中2订阅过期3试用中4试用过期
  43. var ai_endDate: String = "" // 到期时间
  44. var ai_payType: Int = 0 // 0未开启自动续订 1自动续订
  45. var ai_productName: String = "" // 产品名字
  46. var ai_levels: String = "" // 会员等级 1是免费 2是标准 3是高级
  47. var ai_platforms: String = "" // 支持的平台
  48. var ai_point: Int = 0 // 剩余ai点数(svip才有)
  49. var ai_maxDeviceNum: Int = 0 // 最大登录设备限制数
  50. var ai_paymentModel: String = "" // 支付方式 付费模式(1自动续订(vip svip) 2单次付费(永久会员))
  51. var ai_isAi: String = "" // 是否是ai产品(0否1是)
  52. var ai_cycle: Int = 0 // 订阅周期:1、月(30天);2、季(90天);3、半年(183天);4、年(365天)
  53. var aiPoint: Int = 0 // AI 点数
  54. var validFlag: String = "" // 注销(0), * 正常(1), * 停用(2), * 注销中(5);
  55. var isHaveAIDiscount: String = "" // 是否有ai折扣
  56. var canTrail: Bool = false // 是否能试用
  57. // var currentTime: String = "" // 当前注销时间
  58. // var logOffTime: String = "" // 注销时间
  59. // MARK: Get & Set
  60. var refresh_token: String {
  61. get {
  62. let token = UserDefaults.standard.value(forKey: "MemberRefreshToken")
  63. if token is String {
  64. return token as! String
  65. }
  66. return _refresh_token
  67. }
  68. set {
  69. _refresh_token = newValue
  70. UserDefaults.standard.setValue(newValue, forKey: "MemberRefreshToken")
  71. UserDefaults.standard.synchronize()
  72. }
  73. }
  74. var access_token: String {
  75. get {
  76. let token = UserDefaults.standard.value(forKey: "MemberAccessToken")
  77. if token is String {
  78. return token as! String
  79. }
  80. return _access_token
  81. }
  82. set {
  83. _access_token = newValue
  84. UserDefaults.standard.setValue(newValue, forKey: "MemberAccessToken")
  85. UserDefaults.standard.synchronize()
  86. }
  87. }
  88. var token_type: String {
  89. get {
  90. return _token_type
  91. }
  92. set {
  93. _token_type = newValue
  94. }
  95. }
  96. var activeVips: [KMMemberUserInfoActiveVIP] {
  97. get {
  98. return _activeVips
  99. }
  100. set {
  101. _activeVips = newValue
  102. for vip in _activeVips {
  103. if vip_levels == "" {
  104. vip_id = vip.id
  105. vip_userId = vip.userId
  106. vip_status = vip.status
  107. vip_endDate = vip.endDate
  108. vip_payType = vip.payType
  109. vip_productName = vip.productName
  110. vip_levels = vip.levels
  111. vip_platforms = vip.platforms
  112. vip_point = vip.point
  113. vip_maxDeviceNum = vip.maxDeviceNum
  114. vip_paymentModel = vip.paymentModel
  115. vip_isAi = vip.isAi
  116. vip_cycle = vip.cycle
  117. } else {
  118. if let vipLevelsInt = Int(vip_levels), let vipOtherLevelsInt = Int(vip.levels), vipLevelsInt < vipOtherLevelsInt {
  119. vip_id = vip.id
  120. vip_userId = vip.userId
  121. vip_status = vip.status
  122. vip_endDate = vip.endDate
  123. vip_payType = vip.payType
  124. vip_productName = vip.productName
  125. vip_levels = vip.levels
  126. vip_platforms = vip.platforms
  127. vip_point = vip.point
  128. vip_maxDeviceNum = vip.maxDeviceNum
  129. vip_paymentModel = vip.paymentModel
  130. vip_isAi = vip.isAi
  131. vip_cycle = vip.cycle
  132. }
  133. }
  134. }
  135. }
  136. }
  137. var activeAis: [KMMemberUserInfoActiveVIP] {
  138. get {
  139. return _activeAis
  140. }
  141. set {
  142. _activeAis = newValue
  143. for vip in _activeAis {
  144. if ai_levels == "" {
  145. ai_id = vip.id
  146. ai_userId = vip.userId
  147. ai_status = vip.status
  148. ai_endDate = vip.endDate
  149. ai_payType = vip.payType
  150. ai_productName = vip.productName
  151. ai_levels = vip.levels
  152. ai_platforms = vip.platforms
  153. ai_point = vip.point
  154. ai_maxDeviceNum = vip.maxDeviceNum
  155. ai_paymentModel = vip.paymentModel
  156. ai_isAi = vip.isAi
  157. ai_cycle = vip.cycle
  158. } else {
  159. if let vipLevelsInt = Int(ai_levels), let vipOtherLevelsInt = Int(vip.levels), vipLevelsInt < vipOtherLevelsInt {
  160. ai_id = vip.id
  161. ai_userId = vip.userId
  162. ai_status = vip.status
  163. ai_endDate = vip.endDate
  164. ai_payType = vip.payType
  165. ai_productName = vip.productName
  166. ai_levels = vip.levels
  167. ai_platforms = vip.platforms
  168. ai_point = vip.point
  169. ai_maxDeviceNum = vip.maxDeviceNum
  170. ai_paymentModel = vip.paymentModel
  171. ai_isAi = vip.isAi
  172. ai_cycle = vip.cycle
  173. }
  174. }
  175. }
  176. }
  177. }
  178. // MARK: Public Method
  179. func memberUserInfo(model: KMMemberUserInfo) -> Void {
  180. userID = model.id
  181. userEmail = model.email
  182. fullName = model.fullName
  183. aiPoint = model.aiPoint
  184. validFlag = model.validFlag
  185. isHaveAIDiscount = model.isHaveAIDiscount
  186. if model.canTrail == "1" {
  187. canTrail = true
  188. } else {
  189. canTrail = false
  190. }
  191. activeVips = model.activeVIP
  192. activeAis = model.activeAI
  193. }
  194. }