package com.saya.servlet;
import java.io.IOException;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.datastore.Entity;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.saya.model.LineItem;
import com.saya.model.Order;
import com.saya.response.CreateOrderRs;
import com.saya.response.GetOrderRs;
import com.saya.utils.Utils;
@SuppressWarnings("serial")
public class OrderServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("application/json;charset=utf8");
Boolean validate = Boolean.valueOf(true);
String des = "Thêm mới đơn đặt hàng thành công";
String token = req.getParameter("Token");
String phoneNumber = req.getParameter("PhoneNumber");
String customerName = req.getParameter("CustomerName");
String price = req.getParameter("Price");
String address = req.getParameter("Address");
String strLineItem = req.getParameter("LineItem");
try {
System.out.println(token);
Entity e = Utils.getEntity(token);
if (e != null) {
String loginDate = (String) e.getProperty("LoginDate");
if ((loginDate != null) && (!"".equals(loginDate))) {
Date logdate = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss")
.parse(loginDate);
Date currentDate = new Date();
if (currentDate.getTime() - logdate.getTime() > 21600000L) {
validate = Boolean.valueOf(false);
des = "Token hết hạn sử dụng, mời bạn đăng nhập lại";
}
} else {
validate = Boolean.valueOf(false);
des = "Không xác định được thời điểm đăng nhập của bạn";
}
} else {
validate = Boolean.valueOf(false);
des = "Không tồn tại phiên đăng nhập của bạn";
}
} catch (Exception ex) {
validate = Boolean.valueOf(false);
des = "Có lỗi khi kiểm tra phiên đăng nhập của bạn";
}
String ordernumber = "0";
if (validate.booleanValue()) {
Gson gson = new Gson();
Type listType = new TypeToken<Object>() {
}.getType();
@SuppressWarnings("unchecked")
List<LineItem> lstitem = (List<LineItem>) gson.fromJson(
strLineItem, listType);
ordernumber = Order.Create(phoneNumber, customerName, price,
address, lstitem);
if (ordernumber.equals("0")) {
validate = Boolean.valueOf(false);
des = "Có lỗi khi thêm đơn hàng";
}
}
CreateOrderRs rs = new CreateOrderRs();
if (validate.booleanValue())
rs.setCode("0");
else {
rs.setCode(ordernumber);
}
rs.setMessage(des);
rs.setOrdernumber(ordernumber);
Gson gson = new Gson();
resp.getWriter().println(gson.toJson(rs));
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("application/json;charset=utf8");
Boolean validate = Boolean.valueOf(true);
String des = "Lấy danh sách đơn hàng thành công";
String phoneNumber = req.getParameter("PhoneNumber");
int limit = 0;
int offset = 0;
try {
limit = Integer.parseInt(req.getParameter("Limit"));
offset = Integer.parseInt(req.getParameter("Offset"));
} catch (Exception localException1) {
}
List<Order> lstOrder = new ArrayList<Order>();
try {
lstOrder = Order
.getAllOrdersForCustomer(phoneNumber, offset, limit);
} catch (Exception ex) {
validate = Boolean.valueOf(false);
des = "Có lỗi khi lấy danh sách hóa đơn";
}
GetOrderRs rs = new GetOrderRs();
if (validate.booleanValue())
rs.setCode("0");
else {
rs.setCode("1");
}
rs.setMessage(des);
if (lstOrder != null) {
rs.setOrders(lstOrder);
}
Gson gson = new Gson();
resp.getWriter().println(gson.toJson(rs));
}
}