package com.xiaomi.xms.sales.loader; import java.util.List; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import android.os.AsyncTask; import android.text.TextUtils; import com.xiaomi.xms.sales.loader.BaseResult.ResultStatus; 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.JsonUtil; import com.xiaomi.xms.sales.xmsf.account.LoginManager; public class AddUserInfoLoader extends BaseLoader<AddUserInfoLoader.Result> { private final String CACHE_KEY = "AddUserInfo"; private String serviceNumber; private String mUserNameStr; private String mUserTelStr; private String email; private String invoiceType; private String mInvoiceTitleStr; public void setServiceNumber(String serviceNumber) { this.serviceNumber = serviceNumber; } public void setmUserNameStr(String mUserNameStr) { this.mUserNameStr = mUserNameStr; } public void setmUserTelStr(String mUserTelStr) { this.mUserTelStr = mUserTelStr; } public void setEmail(String email) { this.email = email; } public void setInvoiceType(String invoiceType) { this.invoiceType = invoiceType; } public void setmInvoiceTitleStr(String mInvoiceTitleStr) { this.mInvoiceTitleStr = mInvoiceTitleStr; } public AddUserInfoLoader(Context context,String serviceNumber,String mUserNameStr,String mUserTelStr, String email,String invoiceType,String mInvoiceTitleStr) { super(context); this.serviceNumber = serviceNumber; this.mUserNameStr = mUserNameStr; this.mUserTelStr = mUserTelStr; this.email = email; this.invoiceType = invoiceType; this.mInvoiceTitleStr = mInvoiceTitleStr; } public static final class Result extends BaseResult { public String responseInfo; public BaseResult shallowClone() { Result newResult = new Result(); newResult.responseInfo = responseInfo; return newResult; } @Override public int getCount() { return responseInfo == null ? 0 : 1; } } protected String getCacheKey() { return CACHE_KEY + serviceNumber; } @Override protected void initTaskList(List<AsyncTask<Void, Void, Result>> tasks) { tasks.add(new AddUserInfoUpdateTask(false)); } private class AddUserInfoUpdateTask extends BaseLoader<Result>.UpdateTask { public AddUserInfoUpdateTask(boolean needSaveToDb) { super(needSaveToDb); } @Override protected Request getRequest() { Request request = new Request(HostManager.URL_XMS_SALE_API); JSONObject jsonObject = new JSONObject(); try { jsonObject.put("serviceNumber", serviceNumber); jsonObject.put(Tags.XMSAPI.USERID, LoginManager.getInstance().getUserId()); jsonObject.put("consignee", mUserNameStr); jsonObject.put("tel", mUserTelStr); jsonObject.put("email", email); jsonObject.put("invoiceType", invoiceType); jsonObject.put("invoiceTitle", mInvoiceTitleStr); String data = JsonUtil.creatRequestJson(HostManager.Method.METHOD_UPDATECONSIGNEEINF, jsonObject); if (!TextUtils.isEmpty(data)) { request.addParam(Tags.RequestKey.DATA, data); } } catch (JSONException e) { e.printStackTrace(); } return request; } } @Override protected Result parseResult(JSONObject json, Result result) throws Exception { if (json != null) { try { if (Tags.isJSONReturnedOK(json)) { String headerStr = json.optString("header"); if (!TextUtils.isEmpty(headerStr)) { JSONObject header = new JSONObject(headerStr); if (header != null) { String code = header.optString("code"); if(code != null && code.equals("200")){ result.responseInfo = "ok"; } else{ result.responseInfo = "error"; } } } } } catch (JSONException e) { e.printStackTrace(); } } else { result.setResultStatus(ResultStatus.DATA_ERROR); } return result; } @Override protected Result getResultInstance() { return new Result(); } }