package com.ectrip.trips.net; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.content.Context; import android.text.TextUtils; import android.widget.Toast; import com.ectrip.cyt.base.DataTrans; import com.ectrip.cyt.bean.ConfigBean; import com.ectrip.cyt.callback.HttpCallback; import com.ectrip.cyt.config.DevicTool; import com.ectrip.cyt.config.MyApp; import com.ectrip.cyt.constant.LogoType; import com.ectrip.cyt.constant.constant; import com.ectrip.cyt.db.DbManager; import com.ectrip.cyt.request.ConsumeOrderRequest; import com.ectrip.cyt.request.DetectVersionRequest; import com.ectrip.cyt.request.LoginRequest; import com.ectrip.cyt.request.ProductOfConsumeOrder; import com.ectrip.cyt.request.QueryConsumedDetailRequest; import com.ectrip.cyt.request.QueryOrderRequest; import com.ectrip.cyt.request.ReprintVoucherRequest; import com.ectrip.cyt.request.StatisticOrderRequest; import com.ectrip.cyt.ui.BaseActivity; import com.ectrip.cyt.utils.LogUtil; import com.ectrip.cyt.utils.SharedPreferences2Obj; /** * @author jigo 网络访问工具类 */ public class HttpHelper extends HttpHelperCore { public static final String TAG="HttpHelper"; private Context mContext; public static HttpHelper helper = null; private String devType = "MDEV"; // 移动终端:MDEV 售票窗口:WDEV private static Boolean testMOdel = null; private Integer type; private static BaseActivity activity; // public static final String action="/service/terminal-2.action"; public final String action = "/service/terminal-3.do"; private ArrayList configBeans = DbManager.GetConfigs(); public static HttpHelper getInstance(Context mContext) { if (helper == null) { helper = new HttpHelper(mContext); } activity = (BaseActivity) mContext; return helper; } private HttpHelper(Context mContext) { this.mContext = mContext; testMOdel = SharedPreferences2Obj.getInstance(mContext) .setName("config").getObject("testMOdel", Boolean.class); type = SharedPreferences2Obj.getInstance(mContext) .setName("MachineType").getObject("type", Integer.class); } /** * 获取终端获取订单信息 * * @param method 验证码: CODE 手机号码: PHONE 证件号码: ID 订单号码: ORDER * @param code */ QueryOrderRequest orderRequest; public void queryOrder(String method, String code, String phone, String credentials, String orderId, String startDate, String endDate, String pageSize, String count, HttpCallback httpCallback) { if (!TextUtils.isEmpty(orderId) && (orderId.startsWith("TY_") || (orderId.startsWith("PMS_")))) { String voucher = orderId; orderRequest = new QueryOrderRequest(method, code, phone, credentials, "", startDate, endDate, pageSize, count, voucher); } else { orderRequest = new QueryOrderRequest(method, code, phone, credentials, orderId, startDate, endDate, pageSize, count, ""); } orderRequest.setVer(MyApp.getInstance().getVer()); orderRequest.setVerType(MyApp.getInstance().getVerType()); orderRequest.setDevId(configBeans.get(0).getEc_mac()); orderRequest.setDevType(devType); HashMap map = new HashMap(); map.put("method", "queryOrder"); String requestParam = DataTool.envelopeData(orderRequest, MyApp .getInstance().getSignkey(), MyApp.getInstance().getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,requestParam + "requestParam"); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); LogUtil.i(TAG,"url = " + "http://" + MyApp.getInstance().getServiceIp() + action); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + credentials + ";" + phone + ";", Toast.LENGTH_LONG); } } /** * @param orderId 订单 ID * @param count 消费数量 * @param password 订单密码 * @param verifyPassword 是否验证密码 是: TRUE 否: FALSE * @param httpCallback 回调 */ public void consumeOrder(String orderId, String count, String password, String verifyPassword, String consumedSeq, List products, HttpCallback httpCallback) { Long accountId = MyApp.getInstance().getAccountId(); ConsumeOrderRequest consumeCount = new ConsumeOrderRequest(orderId, count, password, verifyPassword, consumedSeq, products); consumeCount.setVer(MyApp.getInstance().getVer()); consumeCount.setVerType(MyApp.getInstance().getVerType()); consumeCount.setDevId(configBeans.get(0).getEc_mac()); consumeCount.setAccountId(accountId); consumeCount.setDevType(devType); HashMap map = new HashMap(); map.put("method", "consumeOrder"); String requestParam = DataTool.envelopeData(consumeCount, MyApp .getInstance().getSignkey(), MyApp.getInstance().getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + "订单号:" + orderId + ";", Toast.LENGTH_LONG); } } public void consumeOrderPart(String orderId, String count, String password, String verifyPassword, String consumedSeq, List products, String id, boolean isId, HttpCallback httpCallback) { Long accountId = MyApp.getInstance().getAccountId(); ConsumeOrderRequest consumeCount = new ConsumeOrderRequest(orderId, count, password, verifyPassword, consumedSeq, products); consumeCount.setVer(MyApp.getInstance().getVer()); consumeCount.setVerType(MyApp.getInstance().getVerType()); consumeCount.setDevId(configBeans.get(0).getEc_mac()); consumeCount.setAccountId(accountId); consumeCount.setDevType(devType); if (isId) { consumeCount.setCredentials(id); } else { consumeCount.setVoucher(id); } HashMap map = new HashMap(); map.put("method", "consumeOrder"); String requestParam = DataTool.envelopeData(consumeCount, MyApp .getInstance().getSignkey(), MyApp.getInstance().getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + "订单号:" + orderId + ";", Toast.LENGTH_LONG); } } /** * @param startdate * @param enddate * @param month * @param httpCallback * @param method DAY MON 统计订单 */ public void statisticsOrder(String method, String startdate, String enddate, String month, HttpCallback httpCallback) { StatisticOrderRequest consumeCount = new StatisticOrderRequest(method, startdate, enddate, month); consumeCount.setVer(MyApp.getInstance().getVer()); consumeCount.setVerType(MyApp.getInstance().getVerType()); // consumeCount.setDevId(DevicTool.getInstance().getDevId()); consumeCount.setDevId(configBeans.get(0).getEc_mac()); consumeCount.setDevType(devType); HashMap map = new HashMap(); map.put("method", "consumeSummary"); String requestParam = DataTool.envelopeData(consumeCount, MyApp .getInstance().getSignkey(), MyApp.getInstance().getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } // activity.MToast(mContext, "服务地址:" // + MyApp.getInstance().getServiceIp() + ";" + "机器码:" // + DevicTool.getInstance().getDevId() + ";" + "开始时间:" // + startdate + ";" + "结束:" + enddate + ";" + "月份:" + month, // Toast.LENGTH_LONG); activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + "开始时间:" + startdate + ";" + "结束:" + enddate + ";" + "月份:" + month, Toast.LENGTH_LONG); } } /** * @param orderId 订单号 * @param httpCallback 不打小票列表 */ public void queryConsumedDetail(String orderId, HttpCallback httpCallback) { QueryConsumedDetailRequest reprintVoucherRequest = new QueryConsumedDetailRequest(); reprintVoucherRequest.setOrderId(orderId); reprintVoucherRequest.setVer(MyApp.getInstance().getVer()); reprintVoucherRequest.setVerType(MyApp.getInstance().getVerType()); // reprintVoucherRequest.setDevId(DevicTool.getInstance().getDevId()); reprintVoucherRequest.setDevId(configBeans.get(0).getEc_mac()); reprintVoucherRequest.setDevType(devType); HashMap map = new HashMap(); map.put("method", "consumeHistoryQuery"); String requestParam = DataTool.envelopeData(reprintVoucherRequest, MyApp.getInstance().getSignkey(), MyApp.getInstance() .getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } // activity.MToast(mContext, "服务地址:" // + MyApp.getInstance().getServiceIp() + ";" + "机器码:" // + DevicTool.getInstance().getDevId() + ";" + "补打订单:" + orderId, // Toast.LENGTH_LONG); activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + "补打订单:" + orderId, Toast.LENGTH_LONG); } } /** * @param orderId 订单号 * @param httpCallback 补打小票信息 */ public void reprintVoucher(String orderId, List orderDetailIds, HttpCallback httpCallback) { ReprintVoucherRequest reprintVoucherRequest = new ReprintVoucherRequest(); reprintVoucherRequest.setOrderId(orderId); StringBuffer buffer = new StringBuffer(); for (int i = 0; i < orderDetailIds.size(); i++) { if (i != orderDetailIds.size() - 1) { buffer.append(orderDetailIds.get(i) + ","); } else { buffer.append(orderDetailIds.get(i)); } } reprintVoucherRequest.setOrderDetailIds(buffer.toString()); reprintVoucherRequest.setVer(MyApp.getInstance().getVer()); reprintVoucherRequest.setVerType(MyApp.getInstance().getVerType()); // reprintVoucherRequest.setDevId(DevicTool.getInstance().getDevId()); reprintVoucherRequest.setDevId(configBeans.get(0).getEc_mac()); reprintVoucherRequest.setDevType(devType); HashMap map = new HashMap(); map.put("method", "reprintVoucher"); String requestParam = DataTool.envelopeData(reprintVoucherRequest, MyApp.getInstance().getSignkey(), MyApp.getInstance() .getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); if (testMOdel != null && testMOdel) { // 这个是调试弹框 if (type == null) { return; } if (activity == null) { return; } // activity.MToast(mContext, "服务地址:" // + MyApp.getInstance().getServiceIp() + ";" + "机器码:" // + DevicTool.getInstance().getDevId() + ";" + "补打订单:" + orderId, // Toast.LENGTH_LONG); activity.MToast(mContext, "服务地址:" + MyApp.getInstance().getServiceIp() + ";" + "机器码:" + configBeans.get(0).getEc_mac() + ";" + "补打订单:" + orderId, Toast.LENGTH_LONG); } } /** * 在线升级 * * @param curVersionName * @param signkey 标识 * @param identity 编码 * @param url ip或者域名 */ public void versionUpdate(String curVersionName, String signkey, String identity, String url, HttpCallback httpCallback) { DetectVersionRequest detectVersionRequest = new DetectVersionRequest(); // detectVersionRequest.setDevId(DevicTool.getInstance().getDevId()); detectVersionRequest.setDevId(configBeans.get(0).getEc_mac()); detectVersionRequest.setDevType("MDEV"); detectVersionRequest.setVer(curVersionName); if (constant.logoMark == LogoType.CYT.getValue() || constant.logoMark == LogoType.EMC.getValue()) { detectVersionRequest.setVerType("CT"); } else if (constant.logoMark == LogoType.QNE.getValue()) { detectVersionRequest.setVerType("QT"); } HashMap map = new HashMap(); map.put("method", "detectVersion"); String requestParam = DataTool.envelopeData(detectVersionRequest, signkey, identity); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost("http://" + url + action, "", map, httpCallback, "data", DataTrans.class); } /** * 操作员登录 * * @param username * @param password * @param httpCallback */ public void login(String username, String password, HttpCallback httpCallback) { LoginRequest loginRequest = new LoginRequest(); loginRequest.setAccountName(username); loginRequest.setPassword(password); loginRequest.setVer(MyApp.getInstance().getVer()); loginRequest.setVerType(MyApp.getInstance().getVerType()); // loginRequest.setDevId(DevicTool.getInstance().getDevId()); loginRequest.setDevId(configBeans.get(0).getEc_mac()); loginRequest.setDevType(devType); HashMap map = new HashMap(); map.put("method", "login"); String requestParam = DataTool.envelopeData(loginRequest, MyApp.getInstance().getSignkey(), MyApp.getInstance() .getIdentity()); map.put("requestParam", requestParam); LogUtil.i(TAG,"requestParam" + requestParam); executeHttpPost( "http://" + MyApp.getInstance().getServiceIp() + action, "", map, httpCallback, "data", DataTrans.class); } }