package com.yeshi.ec.rebate.myapplication.presenter;
|
|
import android.content.Context;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.yeshi.ec.rebate.myapplication.R;
|
import com.yeshi.ec.rebate.myapplication.contract.TimeLimitedSpikeContract;
|
import com.yeshi.ec.rebate.myapplication.entity.SpikTime;
|
import com.yeshi.ec.rebate.myapplication.entity.TaoBaoGoodsBrief;
|
import com.yeshi.ec.rebate.myapplication.model.TimeLimitedSpikeModel;
|
import com.yeshi.ec.rebate.myapplication.ui.timeLimitedSpike.SpikeGoodsListAdapter;
|
import com.yeshi.ec.rebate.myapplication.ui.timeLimitedSpike.TimeLimitedSpikeActivity;
|
import com.yeshi.ec.rebate.myapplication.ui.timeLimitedSpike.TimeSpikAdapter;
|
import com.yeshi.ec.rebate.myapplication.util.ToolUtil;
|
|
import org.json.JSONObject;
|
|
import java.util.List;
|
|
public class TimeLimitedSpikePresenter extends BasePresenter<TimeLimitedSpikeContract.TimeLimitedSpikeView> {
|
private TimeLimitedSpikeModel spikeModel;
|
private TimeLimitedSpikeActivity mContext;
|
|
public TimeLimitedSpikePresenter(TimeLimitedSpikeActivity context) {
|
this.spikeModel = new TimeLimitedSpikeModel();
|
this.mContext = context;
|
}
|
|
/**
|
* 限时秒杀顶部 数据
|
*
|
* @param mContext
|
*/
|
public void getSpikTime(Context mContext) {
|
spikeModel.getSpikTime(mContext, new TimeLimitedSpikeContract.TimeLimitedSpikeCallBack() {
|
@Override
|
public void onSuccess(JSONObject obj) {
|
getView().onSpikTime(obj);
|
}
|
|
@Override
|
public void onFail(String errorInfo) {
|
getView().onSpikTimeFail(errorInfo);
|
}
|
});
|
}
|
|
/**
|
* 限时秒杀商品列表
|
*
|
* @param mContext
|
* @param time 时间段
|
* @param page 页码:1
|
* @param auctionId 商品id
|
*/
|
public void getSpikeGoodsList(Context mContext, String time, String page, String auctionId) {
|
spikeModel.getSpikeGoodsList(mContext, time, page, auctionId, new TimeLimitedSpikeContract.TimeLimitedSpikeCallBack() {
|
@Override
|
public void onSuccess(JSONObject obj) {
|
getView().onSpikeGoodsList(obj);
|
}
|
|
@Override
|
public void onFail(String errorInfo) {
|
getView().onSpikeGoodsListFail(errorInfo + "");
|
}
|
});
|
}
|
|
/**
|
* 设置限时秒杀顶部 数据
|
*
|
* @param obj
|
* @param mSpikTimeList
|
* @param spikAdapter
|
*/
|
public void setSpikTime(JSONObject obj, List<SpikTime> mSpikTimeList, TimeSpikAdapter spikAdapter) {
|
if (obj.optInt("code") == 0) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<SpikTime> list = gson.fromJson(obj.optJSONObject("data").optJSONArray("list").toString(),
|
new TypeToken<List<SpikTime>>() {
|
}.getType());
|
mSpikTimeList.clear();
|
mSpikTimeList.addAll(list);
|
spikAdapter.notifyDataSetChanged();
|
|
for (int i = 0; i < mSpikTimeList.size(); i++) {//第一次加载
|
if (mSpikTimeList.get(i).checked) {
|
mContext.position = i;
|
mContext.getSpikeGoodsList(mSpikTimeList.get(i).requestTime, 1);//加载商品列表请求
|
break;
|
}
|
}
|
} else {
|
ToolUtil.showToast(mContext, obj.optString("msg"));
|
}
|
}
|
|
/*********************商品列表信息********/
|
public void setSpikeGoodsList(JSONObject obj, SpikeGoodsListAdapter goodsListAdapter, List<TaoBaoGoodsBrief> goodsBriefList, int page, ImageView ivLoading, TextView tvLoading) {
|
if (obj.optInt("code") == 0) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson.fromJson(obj.optJSONObject("data").optJSONArray("list").toString(),
|
new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
if (page == 1)
|
goodsBriefList.clear();
|
goodsBriefList.addAll(list);
|
mContext.count = Integer.parseInt(obj.optJSONObject("data").optString("count"));
|
goodsListAdapter.notifyDataSetChanged();
|
if (mContext.count == goodsBriefList.size()) {
|
ivLoading.setVisibility(View.GONE);
|
tvLoading.setText(mContext.getResources().getString(R.string.list_no_more));
|
} else {
|
ivLoading.setVisibility(View.GONE);
|
tvLoading.setText("");
|
}
|
} else {
|
ToolUtil.showToast(mContext, obj.optString("msg"));
|
}
|
}
|
|
/***************************顶部Adapter单击事件***********/
|
public void setTimeSpikCallBack(List<SpikTime> mSpikTimeList, TimeSpikAdapter spikAdapter, int page, int position) {
|
for (int i = 0; i < mSpikTimeList.size(); i++) {//第一次加载
|
if (mSpikTimeList.get(i).checked) {
|
mSpikTimeList.get(i).checked = false;
|
break;
|
}
|
}
|
mSpikTimeList.get(position).checked = true;
|
spikAdapter.notifyDataSetChanged();
|
page = 1;
|
mContext.getSpikeGoodsList(mSpikTimeList.get(position).requestTime, page);//获取限时秒杀商品数据
|
}
|
}
|