package com.lgx8.management.action;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
import com.lgx8.common.PageArgument;
import com.lgx8.common.PageList;
import com.lgx8.common.servlet.BaseController;
import com.lgx8.common.util.StrUtil;
import com.lgx8.gateway.dao.IFareWayDao;
import com.lgx8.gateway.dao.IOrderDao;
import com.lgx8.gateway.entities.FareWay;
import com.lgx8.gateway.entities.Orders;
import com.lgx8.gateway.service.IOrderService;
import com.lgx8.right.dao.IUserDao;
import com.lgx8.right.entities.User;
/**
* 订单处理
* @author chenbutao
*
*/
@Controller
public class OrderController extends BaseController{
@Resource(name="orderService")
private IOrderService orderService;
@Resource(name="orderDao")
private IOrderDao orderDao;
@Resource(name="userDao")
IUserDao userDao;
@Resource(name="farewayDao")
IFareWayDao farewayDao;
/**
* 订单查询
* @param request
* @param response
* @return
*/
@RequestMapping("/order/ordersPageQuery.do")
public ModelAndView rolePageQuery(HttpServletRequest request,HttpServletResponse response){
String userName = request.getParameter("hy_name");
String userCardId = request.getParameter("hy_cardid");
String userDdId = request.getParameter("hy_ddid");
String st_time = request.getParameter("sTime");
String ed_time = request.getParameter("eTime");
String status = request.getParameter("status");
OrderQueryForm queryForm = new OrderQueryForm();
queryForm.setUserName(userName);
queryForm.setCardid(userCardId);
queryForm.setStartTime(st_time);
queryForm.setEndTime(ed_time);
queryForm.setOrdersId(userDdId);
queryForm.setStatus(status);
PageArgument pageArgment = getPageInfo(request);
PageList pageList = orderService.queryOrders(queryForm.toHql(), queryForm.getPara(), pageArgment);
printJSON(response, pageList.toJSON());
return null;
}
@RequestMapping("/order/queryOrdersById.do")
public ModelAndView ordersQueryById(HttpServletRequest request,HttpServletResponse response){
String queryId = request.getParameter("queryId");
String st_time = request.getParameter("sTime");
String ed_time = request.getParameter("eTime");
StringBuffer condition = new StringBuffer();
if(st_time!=null&&ed_time!=null){
condition.append(" and o.time >= str_to_date('"+st_time+"','%Y-%m-%d %H:%i:%s')");
}
if(ed_time!=null&&ed_time!=null){
condition.append(" and o.time>= str_to_date('"+ed_time+"','%Y-%m-%d %H:%i:%s')");
}
String hql = "from Orders o where o.user.id="+queryId+condition.toString();
hql += " order by o.time desc";
PageArgument pr = getPageInfo(request);
PageList pl = orderService.queryOrders(hql, new Object[]{}, pr);
printJSON(response, pl.toJSON());
return null;
}
@RequestMapping("/order/delOrders.do")
public ModelAndView delOrders(HttpServletRequest request,HttpServletResponse response){
String[] keys = getKeyStoreArray(request);
if(keys.length!=0){
orderService.delOrders(keys);
}
clearKeyStore(request);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 订单处理初始化页面
* @param request
* @param response
* @return
*/
@RequestMapping("/order/ordersDealIni.do")
public ModelAndView ordersDeal(HttpServletRequest request,HttpServletResponse response){
String orderId = request.getParameter("id");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
return new ModelAndView("/management/order/orderDeal").addObject("Orders", o);
}
/**
* 订单处理初始化页面
* @param request
* @param response
* @return
*/
@RequestMapping("/order/ordersDealSave.do")
public ModelAndView ordersDealSave(HttpServletRequest request,HttpServletResponse response){
/**
* 业务逻辑未实现(需求不明)
*/
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 订单发货
*/
@RequestMapping("/order/ordersSend.do")
public ModelAndView ordersSend(HttpServletRequest request,HttpServletResponse response){
String orderId = request.getParameter("id");
request.setAttribute("orderid", orderId);
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
//当“特快专递”、“货到付邮”时需要增加快递信息记录
if("1".equals(o.getFareway()) || "2".equals(o.getFareway()))
{
return new ModelAndView(new RedirectView("../page/management/order/express.jsp?orderid="+orderId));
}else
{
o.setStatus(3);
orderDao.updateOrders(o);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
}
/**
* 订单发货
*/
@RequestMapping("/order/exprssOrder.do")
public ModelAndView exprssOrder(HttpServletRequest request,HttpServletResponse response){
String orderId = request.getParameter("orderid");
String expcom = request.getParameter("expcom");
String exporder = request.getParameter("exporder");
String exptime = request.getParameter("exptime");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
o.setExpcom(expcom);
o.setExporder(exporder);
o.setExptime(exptime);
o.setStatus(3);
orderDao.updateOrders(o);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 同意退货请求
*/
@RequestMapping("order/ordersAcceptReturn.do")
public ModelAndView ordersAcceptReturn(HttpServletRequest request,HttpServletResponse response){
String orderId = request.getParameter("id");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
o.setStatus(8);
orderDao.updateOrders(o);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 拒绝退货申请
*/
@RequestMapping("order/ordersRefuseReturn.do")
public ModelAndView ordersRefuseReturn(HttpServletRequest request,HttpServletResponse response){
String orderId = request.getParameter("id");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
o.setStatus(9);
orderDao.updateOrders(o);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 完成退货流程
*/
@RequestMapping("/order/ordersReturnOver.do")
public ModelAndView ordersReturnOver(HttpServletRequest request,HttpServletResponse response) {
String orderId = request.getParameter("id");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
o.setStatus(10);
//返还积分
User member = o.getUser();
double score = member.getCard().getScore();
double total = score + o.getScore();
member.getCard().setScore(total);
orderDao.updateOrders(o);
userDao.updateUser(member);
return new ModelAndView(new RedirectView("../page/management/order/orderlist.jsp"));
}
/**
* 查看订单详情
*/
@RequestMapping("/order/orderdetail.do")
public ModelAndView ordersDetail(HttpServletRequest request,HttpServletResponse response) {
String orderId = request.getParameter("id");
Orders o = orderDao.findOrders(StrUtil.parseLong(orderId));
String fareway = o.getFareway();
if(null!=fareway){
String farewayId = "";
if(fareway.indexOf(",")>-1){
String[] array = fareway.split(",");
if(null!=array&&array.length>0){
farewayId = array[0];
}
}else{
farewayId = fareway;
}
int fid = -1;
try{
fid = Integer.parseInt(farewayId.trim());
}catch (Exception e) {
}
FareWay way = farewayDao.getFareWayById(fid);
request.setAttribute("fareway", way);
}
request.setAttribute("order", o);
return new ModelAndView("/management/order/orderdetail");
}
}