private void buyQidouToTicketVote(String monthTicketCount) {
showLoading();
HashMap<String, String> map = ComicUtil.getCommonRequestParam();
map.put("monthTicketCount", monthTicketCount);
mServerApi.rechargeUserMonthTicket(map)
.flatMap(new Function<ComicServerBean<RechargeMonthTicketInfo>, ObservableSource<ComicServerBean<Object>>>() {
@Override
public ObservableSource<ComicServerBean<Object>> apply(ComicServerBean<RechargeMonthTicketInfo> bean) throws Exception {
map.put("monthTicketOrderId", mCurrentOrderId + "");
map.put("testMode", "0");
return mServerApi.confirmRechargeUserMonthTicket(map);
}
})
.delay(1000, TimeUnit.MILLISECONDS) //延迟1秒,后执行后面代码
.flatMap(new Function<Object, ObservableSource<ComicServerBean<MonthTicketOrderVOInfo>>>() {
@Override
public ObservableSource<ComicServerBean<MonthTicketOrderVOInfo>> apply(Object o) throws Exception {
map.put("monthTicketOrderId", mCurrentOrderId + "");
return mServerApi.getMonthTicketOrderVO(map);
}
})
.delay(1000, TimeUnit.MILLISECONDS) //延迟1秒,后执行后面代码
.flatMap(new Function<ComicServerBean<MonthTicketOrderVOInfo>, ObservableSource<ComicServerBean<UserTicketFindInfo>>>() {
@Override
public ObservableSource<ComicServerBean<UserTicketFindInfo>> apply(ComicServerBean<MonthTicketOrderVOInfo> result) throws Exception {
MonthTicketOrderVOInfo data = result.data;
if (data == null) {
Log.e("MALEI", "购买异常");
}
if (data.getStatus() != 3) {
//购买处理中
return null;
} else {
Log.e("MALEI", "成功了");
return mServerApi.getUserMonthTicketCount(map);
}
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ComicServerBean<UserTicketFindInfo>>() {
@Override
public void onSubscribe(Disposable d) {
mVoteDisposable = d;
}
@Override
public void onNext(ComicServerBean<UserTicketFindInfo> result) {
mTotalTicketCount = result.data.getMonthTicketCount() + result.data.getMonthTicketCardCount();
Log.e("MALEI", "mTotalTicketCount = " + mTotalTicketCount);
dismissLoading();
if (mTotalTicketCount >= mVoteTicketCount) {
mListener.onVoteTicketClick(mVoteTicketCount);
}
}
@Override
public void onError(Throwable e) {
dismissLoading();
RxBiz.dispose(mVoteDisposable);
}
@Override
public void onComplete() {
dismissLoading();
RxBiz.dispose(mVoteDisposable);
}
});
}