LoginViewController.swift 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. //
  2. // LoginViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 16/6/28.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import AlamofireObjectMapper
  10. import Alamofire
  11. import SwiftyTimer
  12. import SwiftyJSON
  13. import ObjectMapper
  14. import CocoaLumberjack
  15. import Promises
  16. import O2OA_Auth_SDK
  17. class LoginViewController: UIViewController {
  18. @IBOutlet weak var iconImageView: UIImageView!
  19. @IBOutlet weak var startImage: UIImageView!
  20. var viewModel:OOLoginViewModel = {
  21. return OOLoginViewModel()
  22. }()
  23. override var preferredStatusBarStyle: UIStatusBarStyle {
  24. return UIStatusBarStyle.default
  25. }
  26. override func viewDidLoad() {
  27. super.viewDidLoad()
  28. //load image
  29. let launchImage = OOCustomImageManager.default.loadImage(.launch_logo)
  30. iconImageView.image = launchImage
  31. iconImageView.isHidden = false
  32. switch PROJECTMODE {
  33. case 1:
  34. self.startImage.image = UIImage(named: "startImage_szslb")
  35. case 2:
  36. self.startImage.image = UIImage(named: "startImage_hzcgw")
  37. case 3:
  38. self.startImage.image = UIImage(named: "startImage_hljdx")
  39. default:
  40. self.startImage.image = UIImage(named: "startImage")
  41. }
  42. }
  43. override func viewWillAppear(_ animated: Bool) {
  44. super.viewWillAppear(animated)
  45. NotificationCenter.default.addObserver(self, selector: #selector(receiveBindCompleted(customNotification:)), name: OONotification.bindCompleted.notificationName, object: nil)
  46. }
  47. override func viewDidAppear(_ animated: Bool) {
  48. super.viewDidAppear(animated)
  49. if AppConfigSettings.shared.isFirstTime == true {
  50. O2Logger.info("启动开始 isFirstTime is true")
  51. AppConfigSettings.shared.isFirstTime = false
  52. let pVC = OOGuidePageController(nibName: "OOGuidePageController", bundle: nil)
  53. //let navVC = ZLNavigationController(rootViewController: pVC)
  54. self.presentVC(pVC)
  55. }else{
  56. O2Logger.info("启动开始 isFirstTime is false")
  57. self.startFlowForPromise()
  58. }
  59. }
  60. func startFlowForPromise() {
  61. if !O2IsConnect2Collect {
  62. let unit = O2BindUnitModel()
  63. if let infoPath = Bundle.main.path(forResource: "Info", ofType: "plist"), let dic = NSDictionary(contentsOfFile: infoPath) {
  64. let o2Server = dic["o2 server"] as? NSDictionary
  65. let id = o2Server?["id"] as? String
  66. let name = o2Server?["name"] as? String
  67. let centerHost = o2Server?["centerHost"] as? String
  68. let centerContext = o2Server?["centerContext"] as? String
  69. let centerPort = o2Server?["centerPort"] as? Int
  70. let httpProtocol = o2Server?["httpProtocol"] as? String
  71. O2Logger.debug("连接服务器:\(String(describing: name)) , host:\(String(describing: centerHost)) , context:\(String(describing: centerContext)), port:\(centerPort ?? 0), portocal:\(String(describing: httpProtocol)) ")
  72. if name == nil || centerHost == nil || centerContext == nil {
  73. self.showError(title: "服务器配置信息异常!")
  74. return
  75. }
  76. unit.id = id
  77. unit.centerContext = centerContext
  78. unit.centerHost = centerHost
  79. unit.centerPort = centerPort
  80. unit.httpProtocol = httpProtocol
  81. unit.name = name
  82. }else {
  83. self.showError(title: "没有配置服务器信息!")
  84. return
  85. }
  86. O2AuthSDK.shared.launchInner(unit: unit) { (state, msg) in
  87. switch state {
  88. case .bindError:
  89. //校验绑定结点信息错误
  90. self.showError(title: "未知错误!")
  91. break
  92. case .loginError:
  93. self.forwardToSegue("loginSystemSegue")
  94. //自动登录出错
  95. break
  96. case .unknownError:
  97. self.showError(title: msg ?? "未知错误!")
  98. break
  99. case .success:
  100. //处理移动端应用
  101. self.viewModel._saveAppConfigToDb()
  102. //跳转到主页
  103. let destVC = OOTabBarController.genernateVC()
  104. destVC.selectedIndex = 2 // 首页选中 TODO 图标不亮。。。。。
  105. UIApplication.shared.keyWindow?.rootViewController = destVC
  106. UIApplication.shared.keyWindow?.makeKeyAndVisible()
  107. }
  108. }
  109. }else {
  110. //本地 -> 校验 -> 下载NodeAPI -> 下载configInfo -> 自动登录
  111. O2AuthSDK.shared.launch { (state, msg) in
  112. switch state {
  113. case .bindError:
  114. //校验绑定结点信息错误
  115. self.forwardToSegue("bindPhoneSegue")
  116. break
  117. case .loginError:
  118. self.forwardToSegue("loginSystemSegue")
  119. //自动登录出错
  120. break
  121. case .unknownError:
  122. self.showError(title: msg ?? "未知错误!")
  123. break
  124. case .success:
  125. //处理移动端应用
  126. self.viewModel._saveAppConfigToDb()
  127. //跳转到主页
  128. let destVC = OOTabBarController.genernateVC()
  129. destVC.selectedIndex = 2 // 首页选中 TODO 图标不亮。。。。。
  130. UIApplication.shared.keyWindow?.rootViewController = destVC
  131. UIApplication.shared.keyWindow?.makeKeyAndVisible()
  132. }
  133. }
  134. }
  135. }
  136. // MARK:- 到不同的segue
  137. func forwardToSegue(_ segueIdentitifer:String){
  138. DispatchQueue.main.async {
  139. self.performSegue(withIdentifier: segueIdentitifer, sender: nil)
  140. }
  141. }
  142. @objc func receiveBindCompleted(customNotification:Notification){
  143. self.startFlowForPromise()
  144. }
  145. @IBAction func unBindComplete(_ sender: UIStoryboardSegue){
  146. //绑定完成,执行
  147. self.startFlowForPromise()
  148. }
  149. @IBAction func show(_ sender: UITapGestureRecognizer) {
  150. //ProgressHUD.show("系统加截中,请稍候...", interaction: true)
  151. }
  152. //登录后返回执行此方法
  153. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  154. }
  155. deinit {
  156. NotificationCenter.default.removeObserver(self)
  157. }
  158. }