HttpHelper.java 11.8 KB
package com.ectrip.trips.net;

import java.util.HashMap;
import java.util.List;

import android.content.Context;
import android.widget.Toast;

import com.ectrip.cyt.base.DataTrans;
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.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 {

	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";

	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
	 */
	public void queryOrder(String method, String code, String phone,
						   String credentials, String orderId, String startDate,
						   String endDate, String pageSize, String count, HttpCallback<DataTrans> httpCallback) {
		QueryOrderRequest orderRequest = new QueryOrderRequest(method, code,
				phone, credentials, orderId, startDate, endDate, pageSize,count);
		orderRequest.setVer(MyApp.getInstance().getVer());
		orderRequest.setVerType(MyApp.getInstance().getVerType());
		orderRequest.setDevId(DevicTool.getInstance().getDevId());
		orderRequest.setDevType(devType);
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "queryOrder");
		String requestParam = DataTool.envelopeData(orderRequest, MyApp
				.getInstance().getSignkey(), MyApp.getInstance().getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i(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() + ";" + 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<ProductOfConsumeOrder> products, HttpCallback<DataTrans> 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(DevicTool.getInstance().getDevId());
		consumeCount.setAccountId(accountId);
		consumeCount.setDevType(devType);
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "consumeOrder");
		String requestParam = DataTool.envelopeData(consumeCount, MyApp
				.getInstance().getSignkey(), MyApp.getInstance().getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i("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);
		}
	}

	/**
	 * @param startdate
	 * @param enddate
	 * @param month
	 * @param httpCallback
	 * @param method
	 *            DAY MON 统计订单
	 */
	public void statisticsOrder(String method, String startdate,
								String enddate, String month, HttpCallback<DataTrans> 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.setDevType(devType);
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "consumeSummary");
		String requestParam = DataTool.envelopeData(consumeCount, MyApp
				.getInstance().getSignkey(), MyApp.getInstance().getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i("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);
		}
	}

	/**
	 * @param orderId
	 *            订单号
	 * @param httpCallback
	 *            不打小票列表
	 */
	public void queryConsumedDetail(String orderId,
									HttpCallback<DataTrans> httpCallback) {
		QueryConsumedDetailRequest reprintVoucherRequest = new QueryConsumedDetailRequest();
		reprintVoucherRequest.setOrderId(orderId);
		reprintVoucherRequest.setVer(MyApp.getInstance().getVer());
		reprintVoucherRequest.setVerType(MyApp.getInstance().getVerType());
		reprintVoucherRequest.setDevId(DevicTool.getInstance().getDevId());
		reprintVoucherRequest.setDevType(devType);
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "consumeHistoryQuery");
		String requestParam = DataTool.envelopeData(reprintVoucherRequest,
				MyApp.getInstance().getSignkey(), MyApp.getInstance()
						.getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i("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);
		}
	}

	/**
	 * @param orderId
	 *            订单号
	 * @param httpCallback
	 *            补打小票信息
	 */
	public void reprintVoucher(String orderId, List<String> orderDetailIds,
							   HttpCallback<DataTrans> 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.setDevType(devType);
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "reprintVoucher");
		String requestParam = DataTool.envelopeData(reprintVoucherRequest,
				MyApp.getInstance().getSignkey(), MyApp.getInstance()
						.getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i("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);
		}
	}

	/**
	 * 在线升级
	 *
	 * @param curVersionName
	 * @param signkey
	 *            标识
	 * @param identity
	 *            编码
	 * @param url
	 *            ip或者域名
	 */
	public void versionUpdate(String curVersionName, String signkey,
							  String identity, String url, HttpCallback<DataTrans> httpCallback) {
		DetectVersionRequest detectVersionRequest = new DetectVersionRequest();
		detectVersionRequest.setDevId(DevicTool.getInstance().getDevId());
		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<String, String> map = new HashMap<String, String>();
		map.put("method", "detectVersion");
		String requestParam = DataTool.envelopeData(detectVersionRequest,
				signkey, identity);
		map.put("requestParam", requestParam);
		LogUtil.i("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<DataTrans> 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.setDevType(devType);

		HashMap<String, String> map = new HashMap<String, String>();
		map.put("method", "login");
		String requestParam = DataTool.envelopeData(loginRequest,
				MyApp.getInstance().getSignkey(), MyApp.getInstance()
						.getIdentity());
		map.put("requestParam", requestParam);
		LogUtil.i("requestParam" + requestParam);
		executeHttpPost(
				"http://" + MyApp.getInstance().getServiceIp() + action, "",
				map, httpCallback, "data", DataTrans.class);



	}
}