NewScanViewController.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. //
  2. // NewScanViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2016/12/22.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Alamofire
  10. import AlamofireImage
  11. import AlamofireObjectMapper
  12. import ObjectMapper
  13. import CocoaLumberjack
  14. import O2OA_Auth_SDK
  15. class NewScanViewController: LBXScanViewController {
  16. var callbackResult: ((String)->Void)? = nil
  17. override func viewDidLoad() {
  18. super.viewDidLoad()
  19. DDLogDebug("viewdid load................................")
  20. self.title = "扫一扫"
  21. }
  22. override func didReceiveMemoryWarning() {
  23. super.didReceiveMemoryWarning()
  24. // Dispose of any resources that can be recreated.
  25. }
  26. //扫码结果
  27. override func handleCodeResult(arrayResult: [LBXScanResult]) {
  28. for result:LBXScanResult in arrayResult
  29. {
  30. print(result.strScanned ?? "")
  31. }
  32. let result:LBXScanResult = arrayResult[0]
  33. if callbackResult != nil {
  34. callbackResult?(result.strScanned ?? "")
  35. self.popVC()
  36. }else {
  37. let url = NSURL(string: result.strScanned!)
  38. //会议签到功能
  39. var isMeetingCheck = false
  40. let allU = url?.absoluteString
  41. if allU != nil && allU!.contains("/checkin") && allU!.contains("x_meeting_assemble_control") {
  42. isMeetingCheck = true
  43. }
  44. if(isMeetingCheck) {//会议签到
  45. self.meetingCheck(url: allU!)
  46. }else {
  47. let query = url?.query
  48. let querys = query?.split("&")
  49. var meta = ""
  50. querys?.forEach { (e) in
  51. let name = e.split("=")[0]
  52. if name == "meta" {
  53. meta = e.split("=")[1]
  54. }
  55. }
  56. if meta != "" {//登录O2OA
  57. let account = O2AuthSDK.shared.myInfo()
  58. let loginURL = AppDelegate.o2Collect.generateURLWithAppContextKey(LoginContext.loginContextKey, query: LoginContext.scanCodeAuthActionQuery, parameter: ["##meta##":meta as AnyObject])
  59. Alamofire.request(loginURL!, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: ["x-token":(account?.token)!]).responseJSON(completionHandler: { (response) in
  60. switch response.result {
  61. case .success(let val):
  62. DispatchQueue.main.async {
  63. DDLogDebug(String(describing:val))
  64. let alertController = UIAlertController(title: "扫描结果", message: "PC端登录成功", preferredStyle: .alert)
  65. let okAction = UIAlertAction(title: "确定", style: .default) {
  66. action in
  67. self.popVC()
  68. }
  69. alertController.addAction(okAction)
  70. self.presentVC(alertController)
  71. }
  72. case .failure(let err):
  73. DispatchQueue.main.async {
  74. DDLogError(err.localizedDescription)
  75. let alertController = UIAlertController(title: "扫描结果", message: "PC端登录失败", preferredStyle: .alert)
  76. let okAction = UIAlertAction(title: "确定", style: .destructive) {
  77. action in
  78. self.popVC()
  79. }
  80. alertController.addAction(okAction)
  81. self.presentVC(alertController)
  82. }
  83. }
  84. })
  85. }else {//其他扫描结果
  86. let alertController = UIAlertController(title: "扫描结果", message: result.strScanned!, preferredStyle: .alert)
  87. let okAction = UIAlertAction(title: "确定", style: .default) {
  88. action in
  89. self.popVC()
  90. }
  91. alertController.addAction(okAction)
  92. self.presentVC(alertController)
  93. }
  94. }
  95. }
  96. }
  97. //会议签到
  98. func meetingCheck(url: String) {
  99. let account = O2AuthSDK.shared.myInfo()
  100. Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: ["x-token":(account?.token)!]).responseJSON(completionHandler: {(response) in
  101. switch response.result {
  102. case .success(let val):
  103. DispatchQueue.main.async {
  104. DDLogDebug(String(describing:val))
  105. let alertController = UIAlertController(title: "提示", message: "签到成功", preferredStyle: .alert)
  106. let okAction = UIAlertAction(title: "确定", style: .default) {
  107. action in
  108. self.popVC()
  109. }
  110. alertController.addAction(okAction)
  111. self.presentVC(alertController)
  112. }
  113. case .failure(let err):
  114. DispatchQueue.main.async {
  115. DDLogError(err.localizedDescription)
  116. let alertController = UIAlertController(title: "提示", message: "签到失败", preferredStyle: .alert)
  117. let okAction = UIAlertAction(title: "确定", style: .destructive) {
  118. action in
  119. self.popVC()
  120. }
  121. alertController.addAction(okAction)
  122. self.presentVC(alertController)
  123. }
  124. }
  125. })
  126. }
  127. }