package com.xiaomi.xms.sales.loader; import android.content.Context; import android.text.TextUtils; import com.xiaomi.xms.sales.ShopApp; import com.xiaomi.xms.sales.model.ComboInfo; import com.xiaomi.xms.sales.model.Tags; import com.xiaomi.xms.sales.request.HostManager; import com.xiaomi.xms.sales.request.Request; import com.xiaomi.xms.sales.util.Constants; import com.xiaomi.xms.sales.util.JsonUtil; import com.xiaomi.xms.sales.util.Utils; import com.xiaomi.xms.sales.xmsf.account.LoginManager; import org.json.JSONException; import org.json.JSONObject; public class ComboLoader extends BaseLoader { private static final String TAG = "ComboLoader"; private final String CACHE_KEY = "combo"; private String mProductId; public ComboLoader(Context context) { super(context); setNeedDatabase(false); } public static final class Result extends BaseResult { public ComboInfo mComboInfos; @Override public BaseResult shallowClone() { Result newResult = new Result(); newResult.mComboInfos = mComboInfos; return newResult; } @Override protected int getCount() { return mComboInfos == null ? 0 : 1; } } protected String getCacheKey() { return CACHE_KEY + mProductId; } @Override protected UpdateTask getUpdateTask() { return new ComboUpdateTask(); } private class ComboUpdateTask extends UpdateTask { @Override protected Request getRequest() { Request request = new Request(HostManager.URL_XMS_SALE_API); JSONObject jsonObject = new JSONObject(); try { jsonObject.put("commodityId", mProductId); jsonObject.put("orgId", Utils.Preference.getStringPref(ShopApp.getContext(), Constants.Account.PREF_USER_ORGID, "")); jsonObject.put(Tags.XMSAPI.USERID, LoginManager.getInstance().getUserId()); String data = JsonUtil.creatRequestJson(HostManager.Method.METHOD_GETBATCHEDVIEW, jsonObject); if (!TextUtils.isEmpty(data)) { request.addParam(Tags.RequestKey.DATA, data); } } catch (JSONException e) { e.printStackTrace(); } return request; } } public void setProductId(String productId) { mProductId = productId; } @Override protected BaseResult parseResult(JSONObject json, BaseResult baseResult) throws Exception { Result result = (Result) baseResult; result.mComboInfos = ComboInfo.valueOf(json); return result; } @Override protected BaseResult getResultInstance() { return new Result(); } }