123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //
- // OOPersonListViewModel.swift
- // O2Platform
- //
- // Created by 刘振兴 on 2018/4/24.
- // Copyright © 2018年 zoneland. All rights reserved.
- //
- import Foundation
- import Moya
- class OOPersonListViewModel: NSObject {
- //HTTP API
- private let ooContactAPI = OOMoyaProvider<OOContactAPI>()
- //所有人员列表
- private var allPersons:[OOPersonModel] = []
-
- //搜索所有人员列表
- private var filterPersons:[OOPersonModel] = []
-
- //回调块类型定义
- typealias CallbackBlockDefine = (_ parameter:CommonPageModel,_ msg:String?) -> Void
- //回调块定义
- var callbackExecutor:CallbackBlockDefine?
- //搜索回调块定义
- typealias SearchBackBlockDefine = (_ msg:String?) -> Void
-
- var searchBackExecutor:SearchBackBlockDefine?
-
- var isSearchActive = false
-
- override init() {
- super.init()
- }
-
- }
- extension OOPersonListViewModel {
-
- func getAllPerson(_ isNextPage:Bool,_ parameters:CommonPageModel,callbackCompleted:@escaping CallbackBlockDefine){
- var currentParameters = parameters
- if !isNextPage {
- allPersons.removeAll()
- }
- ooContactAPI.request(.personListNext(parameters.nextPageId, parameters.pageSize )) { (result) in
- let myResult = OOResult<BaseModelClass<[OOPersonModel]>>(result)
- if myResult.isResultSuccess() {
- myResult.model?.data?.forEach({ (uModel) in
- self.allPersons.append(uModel)
- })
- currentParameters.setPageTotal((myResult.model?.count)!)
- currentParameters.nextPageId = (self.allPersons.last?.id)!
- }
- if myResult.isResultSuccess() {
- callbackCompleted(currentParameters,nil)
- }else{
- callbackCompleted(currentParameters,myResult.error.debugDescription)
- }
- }
- }
-
- // MARK:- 搜索用户按名字
- func filterPerson(_ filter:String,callbackCompleted:@escaping SearchBackBlockDefine){
- if filter.isEmpty {
- return
- }
- ooContactAPI.request(.personLike(filter)) { (result) in
- self.filterPersons.removeAll()
- let myResult = OOResult<BaseModelClass<[OOPersonModel]>>(result)
- if myResult.isResultSuccess() {
- if let model = myResult.model?.data {
- model.forEach({ (pModel) in
- self.filterPersons.append(pModel)
- })
- }
- }
- if myResult.isResultSuccess() {
- callbackCompleted(nil)
- }else{
- callbackCompleted(myResult.error.debugDescription)
- }
- }
- }
- // MARK: - 获取icon
- func getIconOfPerson(_ person:OOPersonModel,compeletionBlock:@escaping (_ image:UIImage?,_ errMsg:String?) -> Void) {
- ooContactAPI.request(.iconByPerson(person.id!)) { (result) in
- switch result {
- case .success(let res):
- guard let image = UIImage(data: res.data) else {
- compeletionBlock(#imageLiteral(resourceName: "icon_?"),"image transform error")
- return
- }
- compeletionBlock(image,nil)
- break
- case .failure(let err):
- compeletionBlock(#imageLiteral(resourceName: "icon_?"),err.errorDescription)
- break
- }
- }
- }
-
- }
- // MARK:- UITableView DataSource
- extension OOPersonListViewModel{
-
- func numberOfSections() -> Int {
- return 2
- }
-
- func numberOfRowsInSection(_ section: Int) -> Int {
- if section == 0 {
- return 1
- }else if section == 1 {
- if isSearchActive == true {
- return filterPersons.count
- }
- return allPersons.count
- }
- return 0
- }
-
- func nodeForIndexPath(_ indexPath:IndexPath) -> OOPersonModel? {
- if indexPath.section == 1 {
- if isSearchActive == true {
- return filterPersons[indexPath.row]
- }
- return allPersons[indexPath.row]
- }
- return nil
- }
-
-
-
- }
|