JCIdentityVerificationViewController.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. //
  2. // JCIdentityVerificationViewController.swift
  3. // JChat
  4. //
  5. // Created by deng on 2017/4/5.
  6. // Copyright © 2017年 HXHG. All rights reserved.
  7. //
  8. import UIKit
  9. class JCIdentityVerificationViewController: UITableViewController {
  10. override func viewDidLoad() {
  11. super.viewDidLoad()
  12. _init()
  13. }
  14. override func viewDidAppear(_ animated: Bool) {
  15. super.viewDidAppear(animated)
  16. UserDefaults.standard.set(0, forKey: kUnreadInvitationCount)
  17. }
  18. deinit {
  19. NotificationCenter.default.removeObserver(self)
  20. }
  21. private var infos: [JCVerificationInfo] = []
  22. // MARK: - private func
  23. private func _init() {
  24. self.title = "验证信息"
  25. view.backgroundColor = .white
  26. tableView.separatorStyle = .none
  27. tableView.register(JCVerificationCell.self, forCellReuseIdentifier: "JCVerificationCell")
  28. _getData()
  29. NotificationCenter.default.addObserver(self, selector: #selector(_getData), name: NSNotification.Name(rawValue: kUpdateVerification), object: nil)
  30. }
  31. func _getData() {
  32. infos.removeAll()
  33. infos = JCVerificationInfoDB.shareInstance.quaryData()
  34. tableView.reloadData()
  35. }
  36. // MARK: - Table view data source
  37. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  38. return infos.count
  39. }
  40. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  41. return tableView.dequeueReusableCell(withIdentifier: "JCVerificationCell", for: indexPath)
  42. }
  43. override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
  44. guard let cell = cell as? JCVerificationCell else {
  45. return
  46. }
  47. cell.bindData(infos[indexPath.row])
  48. }
  49. override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  50. return 65
  51. }
  52. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  53. tableView.deselectRow(at: indexPath, animated: true)
  54. let info = infos[indexPath.row]
  55. switch info.state {
  56. case JCVerificationType.accept.rawValue,
  57. JCVerificationType.reject.rawValue,
  58. JCVerificationType.wait.rawValue:
  59. JMSGUser.userInfoArray(withUsernameArray: [info.username], completionHandler: { (result, error) in
  60. if error == nil {
  61. let users = result as! [JMSGUser]
  62. let user = users.first
  63. let vc = JCUserInfoViewController()
  64. vc.user = user
  65. self.navigationController?.pushViewController(vc, animated: true)
  66. }
  67. })
  68. case JCVerificationType.receive.rawValue:
  69. let vc = JCVerificationDetailViewController()
  70. vc.verificationInfo = info
  71. navigationController?.pushViewController(vc, animated: true)
  72. default:
  73. break
  74. }
  75. }
  76. override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
  77. return true
  78. }
  79. override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
  80. return .delete
  81. }
  82. override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
  83. if editingStyle == .delete {
  84. let info = infos[indexPath.row]
  85. JCVerificationInfoDB.shareInstance.delete(info)
  86. infos.remove(at: indexPath.row)
  87. tableView.reloadData()
  88. }
  89. }
  90. }