//
|
// SystemMessageViewModel.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/6/17.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxCocoa
|
import RxSwift
|
|
class SystemMessageViewModel: YYRefreshViewModel<SystemMessageModel> {
|
|
/// 下标
|
let row = BehaviorRelay<Int>(value: 0)
|
|
/// 消息Id
|
let id = BehaviorRelay<Int>(value: 0)
|
|
/// 消息类型
|
let type = BehaviorRelay<Int>(value: 0)
|
|
lazy var clearSystemNoticeSubject = PublishSubject<RequestStatus>()
|
|
lazy var delSystemNoticeSubject = PublishSubject<RequestStatus>()
|
|
lazy var queryNoReadNoticeNumSubject = PublishSubject<RequestStatus>()
|
|
override func api() -> API! {
|
return .systemNotice(type: type.value, pageNum: currentPage, size: totalPages)
|
}
|
|
/// 清除消息
|
func clearSystemNotice() {
|
clearSystemNoticeSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.clearSystemNotice)
|
.map(YYModel<Nothing>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
self.clearSystemNoticeSubject.onNext(.success(nil))
|
}) {[unowned self] (error) in
|
self.clearSystemNoticeSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
|
/// 清除消息
|
func delSystemNotice() {
|
delSystemNoticeSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.delSystemNotice(id: id.value))
|
.map(YYModel<Nothing>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
self.delSystemNoticeSubject.onNext(.success(nil))
|
}) {[unowned self] (error) in
|
self.delSystemNoticeSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
|
/// 查询未读消息
|
func queryNoReadNoticeNum() {
|
queryNoReadNoticeNumSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.queryNoReadNoticeNum)
|
.map(YYModel<NoticeNumModel>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
guard let data = model.data else {return}
|
self.queryNoReadNoticeNumSubject.onNext(.success(data))
|
}) {[unowned self] (error) in
|
self.queryNoReadNoticeNumSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
}
|