package fr.zng.xxzx.netty.dispatcher;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

import com.alibaba.fastjson.JSON;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;

import fr.zng.xxzx.common.bean.LjflResponse;
import fr.zng.xxzx.common.util.DateUtil;
import fr.zng.xxzx.util.HttpExchangeUtil;

/**
 * 垃圾分类消息处理 - 心跳
 * 
 * @author lyf
 *
 */
public class LjflHeartHandler implements HttpHandler {

	public Logger logger = Logger.getLogger(LjflHeartHandler.class);
    public LjflHeartHandler() {
    }
	
	@Override
	public void handle(HttpExchange exchange)  {

		// 定义返回结果
		LjflResponse result = new LjflResponse();
		result.setErrcode(0);
		result.setErrmsg("操作成功");
		/**
		 * 解析请求参数与地址信息
		 */
		String requestMethod = exchange.getRequestMethod();
		logger.info("requestMethod="+requestMethod);
		if (requestMethod.equalsIgnoreCase("GET")||requestMethod.equalsIgnoreCase("POST")) {
			InputStream inputStream = exchange.getRequestBody();
			//解析入参
			Map<String, String> params = HttpExchangeUtil.getParamers(inputStream);
			System.out.println("params: " + params);
			
			if (StringUtils.isNotBlank(params.get("id"))) {
				String id = params.get("id");
				System.out.println("id: " + id);
				//判断是否有此设备号
			}
			
		}

		// 结果返回给请求端
		Headers headers = exchange.getResponseHeaders();
		headers.add("Access-Control-Allow-Origin", "*");
		headers.add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
		headers.add("Access-Control-Allow-Headers", "Content-Type");
		headers.add("Content-Type", "application/json");
		String data = "";
		OutputStream out = exchange.getResponseBody(); // 获得输出流
		try {
			exchange.sendResponseHeaders(200, data.length());
			out.write(JSON.toJSONString(result).getBytes());
			out.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			// 设置响应头属性及响应信息的长度
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
}
