KMUserInfoVCModel.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // KMUserInfoVCModel.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by wanjun on 2024/10/31.
  6. //
  7. import Foundation
  8. import Combine
  9. @objc enum KMUserState : Int {
  10. case unPay_UnTrial = 0 // 未付费且未试用
  11. case permanentAccount // 永久账户用户
  12. case unAutomatic_RemainValid// 取消自动续费,但仍在有效期内
  13. case expired // 已到期用户
  14. }
  15. typealias UserInfoComplete = (_ success: Bool,_ msg: String) -> Void
  16. class KMUserInfoVCModel: ObservableObject {
  17. /**
  18. @abstract 刷新个人权益
  19. @param
  20. */
  21. func refreshUserInfo(_ complete: @escaping UserInfoComplete) -> Void {
  22. KMMemberCenterManager.manager.userInfo { success, result in
  23. guard let result = result else { return }
  24. let resultDict = result as KMMemberCenterResult
  25. let msg = resultDict.msg
  26. if success {
  27. let userInfo = resultDict.userInfo
  28. guard let userInfo = resultDict.userInfo else { return }
  29. KMMemberInfo.shared.memberUserInfo(model: userInfo)
  30. complete(true, "")
  31. } else {
  32. complete(false, "")
  33. }
  34. }
  35. }
  36. /**
  37. @abstract 刷新用户状态 0(未付费且未试用)、1(永久账户用户)、2(取消自动续费,但仍在有效期内)、3(已到期用户)
  38. @param
  39. */
  40. func refreshUserState() -> KMUserState {
  41. return .unPay_UnTrial
  42. }
  43. /**
  44. @abstract 根据用户支持的平台返回外部视图需要的平台图片数组
  45. @param
  46. */
  47. func getPlatformsImages() -> [NSImage] {
  48. var images: [NSImage] = []
  49. for platform in userPlatforms() {
  50. if refreshUserState() == .permanentAccount ||
  51. refreshUserState() == .unAutomatic_RemainValid {
  52. if platform == "mac" {
  53. images.append(NSImage(named: "MacOSPlatformImage2")!)
  54. } else if platform == "ios" {
  55. images.append(NSImage(named: "iOSPlatformImage2")!)
  56. } else if platform == "windows" {
  57. images.append(NSImage(named: "WindowsPlatformImage2")!)
  58. } else if platform == "android" {
  59. images.append(NSImage(named: "AndroidPlatformImage2")!)
  60. }
  61. } else {
  62. if platform == "mac" {
  63. images.append(NSImage(named: "MacOSPlatformImage")!)
  64. } else if platform == "ios" {
  65. images.append(NSImage(named: "iOSPlatformImage")!)
  66. } else if platform == "windows" {
  67. images.append(NSImage(named: "WindowsPlatformImage")!)
  68. } else if platform == "android" {
  69. images.append(NSImage(named: "AndroidPlatformImage")!)
  70. }
  71. }
  72. }
  73. return images
  74. }
  75. /**
  76. @abstract 获取用户支持的最大设备数
  77. @param
  78. */
  79. private func maxDeviceNum() -> Int {
  80. return 4
  81. // return 0
  82. }
  83. /**
  84. @abstract 用户支持的平台
  85. @param
  86. */
  87. private func userPlatforms() -> [String] {
  88. let platforms = "android, ios, mac, windows"
  89. let platformsArray = platforms
  90. .components(separatedBy: ",")
  91. .map { $0.trimmingCharacters(in: .whitespaces) }
  92. return platformsArray
  93. }
  94. }