package com.darna.wmxfx.net; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import com.darna.wmxfx.Config; import com.darna.wmxfx.bean.API_CartDish; import com.darna.wmxfx.bean.API_CartShop; import com.darna.wmxfx.bean.API_Order; public class NetHistoryOrder { public NetHistoryOrder(final Context mContext, final String token, String order_status, final SuccessCallback successCallback, final FailCallback failCallback) { new NetConnection(Config.SERVER_URL, HttpMethod.POST, new NetConnection.SuccessCallback() { @Override public void onSuccess(String result) { try { JSONObject jsonObject = new JSONObject(result); if (jsonObject.getBoolean(Config.KEY_STATUS)) { if (jsonObject.getString(Config.KEY_TOKEN).equals(token)){ if (jsonObject.getBoolean(Config.KEY_LOGIN)) { if (!jsonObject.isNull(Config.KEY_DATA)) { if (successCallback != null) { JSONArray unfinishedJsonArray = jsonObject.getJSONArray(Config.KEY_DATA); List<API_Order> orders = new ArrayList<API_Order>(); API_Order order; JSONObject unfinishJsonObject; for (int i = 0; i < unfinishedJsonArray.length(); i++) { order = new API_Order(); unfinishJsonObject = unfinishedJsonArray.getJSONObject(i); order.setOrder_sn(unfinishJsonObject.getString(Config.KEY_SN)); order.setOrder_amount(unfinishJsonObject.getString(Config.KEY_ORDERAMOUNT)); order.setAdd_time(unfinishJsonObject.getString(Config.KEY_ADDTIME)); order.setStatus(unfinishJsonObject.getString(Config.KEY_STA)); //order.setUser_name(unfinishJsonObject.getString(Config.KEY_USERNAME)); //order.setRecipient_phone(unfinishJsonObject.getString(Config.KEY_RECIPIENT_PHONE)); //order.setAddress(unfinishJsonObject.getString(Config.KEY_ADDRESS)); JSONArray shopJsonArray = unfinishJsonObject.getJSONArray(Config.KEY_JUSTSHOP); List<API_CartShop> shops = new ArrayList<API_CartShop>(); API_CartShop shop; JSONObject shopJsonObject; for (int j = 0; j < shopJsonArray.length(); j++) { shop = new API_CartShop(); shopJsonObject = shopJsonArray.getJSONObject(j); shop.setShop_name(shopJsonObject.getString(Config.KEY_SHOPNAME)); shop.setShop_id(shopJsonObject.getString(Config.KEY_SHOPID)); JSONArray dishJsonArray = shopJsonObject.getJSONArray(Config.KEY_DISH); List<API_CartDish> dishes = new ArrayList<API_CartDish>(); API_CartDish dish; JSONObject dishJsonObject; for (int k = 0; k < dishJsonArray.length(); k++) { dish = new API_CartDish(); dishJsonObject = dishJsonArray.getJSONObject(k); dish.setDish_id(dishJsonObject.getString(Config.KEY_DISH_ID)); dish.setDish_name(dishJsonObject.getString(Config.KEY_DISH_NAME)); dish.setNumber(dishJsonObject.getInt(Config.KEY_NUMBER)); dishes.add(dish); } shop.setDish_list(dishes); shops.add(shop); } order.setShops(shops); orders.add(order); } successCallback.onSuccess(orders); } }else { if (failCallback != null) { failCallback.onFail(Config.RESULT_DATA_NULL); } } }else { if (failCallback != null) { failCallback.onFail(Config.RESULT_STATUS_UNLOGIN); } } }else { Config.cacheToken(mContext, jsonObject.getString(Config.KEY_TOKEN)); if (failCallback != null) { failCallback.onFail(Config.RESULT_STATUS_INVALID_TOKEN); } } }else { if (failCallback != null) { failCallback.onFail(Config.RESULT_STATUS_FAIL); } } } catch (JSONException e) { if (failCallback != null) { failCallback.onFail(Config.RESULT_STATUS_FAIL); } e.printStackTrace(); } } }, new NetConnection.FailCallback() { @Override public void onFail() { if (failCallback != null) { failCallback.onFail(Config.RESULT_STATUS_FAIL); } } }, Config.KEY_ACTION, Config.ACTION_HISTORYORDER, Config.KEY_TOKEN, token, Config.KEY_ORDERSTATUS, order_status); } public static interface SuccessCallback{ void onSuccess(List<API_Order> orders); } public static interface FailCallback{ void onFail(String errorCode); } }