package com.xiaomi.xms.sales.loader; import android.content.Context; import com.xiaomi.xms.sales.model.OrderSubmitInfo; import com.xiaomi.xms.sales.model.Tags; import com.xiaomi.xms.sales.request.HostManager; import com.xiaomi.xms.sales.request.Request; import org.json.JSONException; import org.json.JSONObject; public class OrderSubmitLoader extends BaseLoader { //private final static String TAG = "OrderSubmitLoader"; private String mJsonData; public OrderSubmitLoader(Context context) { super(context); setNeedDatabase(false); } public static final class Result extends BaseResult { public OrderSubmitInfo info; @Override public BaseResult shallowClone() { Result newResult = new Result(); newResult.info = info; return newResult; } @Override protected int getCount() { return info == null ? 0 : 1; } } @Override protected String getCacheKey() { return null; } @Override protected DatabaseTask getDatabaseTask() { return null; } @Override protected UpdateTask getUpdateTask() { return new OrderSubmitTask(); } private class OrderSubmitTask extends UpdateTask { @Override protected Request getRequest() { Request request = new Request(HostManager.getCheckoutSubmit()); JSONObject json; try { json = new JSONObject(mJsonData); request.addParam(Tags.OrderSubmit.ADDRESS_ID, json.optString(Tags.OrderSubmit.ADDRESS_ID)); request.addParam(Tags.OrderSubmit.PAY_ID, json.optString(Tags.OrderSubmit.PAY_ID)); request.addParam(Tags.OrderSubmit.PICKUP_ID, json.optString(Tags.OrderSubmit.PICKUP_ID)); request.addParam(Tags.OrderSubmit.SHIPMENT_ID, json.optString(Tags.OrderSubmit.SHIPMENT_ID)); request.addParam(Tags.OrderSubmit.BEST_TIME, json.optString(Tags.OrderSubmit.BEST_TIME)); request.addParam(Tags.OrderSubmit.INVOICE_TYPE, json.optString(Tags.OrderSubmit.INVOICE_TYPE)); request.addParam(Tags.OrderSubmit.INVOICE_TITLE, json.optString(Tags.OrderSubmit.INVOICE_TITLE)); request.addParam(Tags.OrderSubmit.COUPON_TYPE, json.optString(Tags.OrderSubmit.COUPON_TYPE)); request.addParam(Tags.OrderSubmit.COUPON_CODE, json.optString(Tags.OrderSubmit.COUPON_CODE)); request.addParam(Tags.OrderSubmit.MIHOME_BUY_ID, json.optString(Tags.OrderSubmit.MIHOME_BUY_ID)); request.addParam(Tags.OrderSubmit.EXTEND_FIELD, json.optString(Tags.OrderSubmit.EXTEND_FIELD)); } catch (JSONException e) { e.printStackTrace(); } return request; } } public void setData(String jsonData) { mJsonData = jsonData; } @Override protected BaseResult parseResult(JSONObject json, BaseResult baseResult) throws Exception { Result result = (Result) baseResult; result.info = OrderSubmitInfo.valueOf(json); return result; } @Override protected BaseResult getResultInstance() { return new Result(); } }