//
|
// HomeViewModel.swift
|
// OKProject
|
//
|
// Created by alvin_y on 2020/5/29.
|
// Copyright © 2020 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxSwift
|
import RxCocoa
|
import HandyJSON
|
class HomeViewModel: YYViewModel {
|
|
/// 业务类型Id
|
let id = BehaviorRelay<Int>(value: 1)
|
|
/// 数据类型(1:弹窗广告,2:底部广告,3=订单结束弹窗)
|
let advertType = BehaviorRelay<Int>(value: 1)
|
|
/// 弹窗广告
|
let popUpAdvert = BehaviorRelay<[AdvertisingModel]>(value: [])
|
|
/// 菜单
|
let menu = BehaviorRelay<[BusinessTypeModel]>(value: [])
|
|
/// 底部广告
|
let bottomAdvert = BehaviorRelay<[AdvertisingModel]>(value: [])
|
|
/// 查询开通城市
|
lazy var queryBusinessTypeSubject = PublishSubject<RequestStatus>()
|
|
lazy var queryShowModularSubject = PublishSubject<RequestStatus>()
|
|
/// 获取用户详情
|
func queryUserInfo(_ clouse:(()->Void)? = nil) {
|
APIManager.shared.provider.rx
|
.request(.queryUserInfo)
|
.map(YYModel<UserInfoModel>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
guard let data = model.data else{return}
|
app.userInfo.save(model: data)
|
clouse?()
|
}) { (error) in
|
}
|
.disposed(by: disposeBag)
|
}
|
|
/// 获取广告
|
func getAdvertising() {
|
requestSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.queryByType(type: advertType.value, code: YYLocationManager.shared.currentCityCode))
|
.map(YYModel<[AdvertisingModel]>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
guard let data = model.data else {return}
|
if self.advertType.value == 1{
|
self.popUpAdvert.accept(data)
|
}else{
|
let data = data.prefix(3).map{$0 as AdvertisingModel}
|
self.bottomAdvert.accept(data)
|
}
|
self.requestSubject.onNext(.success(model.data))
|
}) { (error) in
|
self.requestSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
|
/// 查询业务类型
|
func queryBusinessType() {
|
queryBusinessTypeSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.queryBusinessType(province: YYLocationManager.shared.province, city: YYLocationManager.shared.currentCity, district: YYLocationManager.shared.district))
|
.map(YYModel<[BusinessTypeModel]>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
guard var data = model.data else {return}
|
for (value,item) in data.enumerated(){
|
if value == 0{
|
item.select = true
|
}
|
}
|
|
let m = BusinessTypeModel()
|
m.name = " "
|
data.append(m)
|
|
|
self.menu.accept(data)
|
self.queryBusinessTypeSubject.onNext(.success(data))
|
}) { (error) in
|
self.queryBusinessTypeSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
|
/// 通过Id查询业务类型
|
func queryBusinessTypeById() {
|
queryBusinessTypeSubject.onNext(.loading)
|
APIManager.shared.provider.rx
|
.request(.queryBusinessTypeById(id: id.value))
|
.map(YYModel<[BusinessTypeModel]>.self)
|
.validate()
|
.subscribe(onSuccess: { [unowned self] (model) in
|
guard let data = model.data else {return}
|
for (value,item) in data.enumerated(){
|
if value == 0{
|
item.select = true
|
}
|
}
|
self.menu.accept(data)
|
self.queryBusinessTypeSubject.onNext(.success(model.data))
|
}) { (error) in
|
self.queryBusinessTypeSubject.onNext(.error(error))
|
}
|
.disposed(by: disposeBag)
|
}
|
|
func queryShowModular(){
|
APIManager.shared.provider.rx.request(.getShowModular).map(YYModel<[ShowModularModel]>.self)
|
.validate().subscribe(onSuccess: {model in
|
self.queryShowModularSubject.onNext(.success(model.data ?? []))
|
}) { error in
|
self.queryShowModularSubject.onNext(.error(error))
|
}.disposed(by: disposeBag)
|
}
|
}
|