package com.jshop.action; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.json.annotations.JSON; import org.springframework.stereotype.Controller; import com.jshop.action.tools.AllOrderState; import com.jshop.action.tools.BaseTools; import com.jshop.action.tools.Validate; import com.jshop.entity.CartT; import com.jshop.entity.LogisticsBusinessT; import com.jshop.entity.OrderT; import com.jshop.entity.ShippingAddressT; import com.jshop.entity.UserT; import com.jshop.service.CartTService; import com.jshop.service.LogisticsBusinessTService; import com.jshop.service.OrderTService; import com.jshop.service.ShippingAddressTService; import com.jshop.service.UsertService; import com.jshop.service.impl.CartTServiceImpl; import com.jshop.service.impl.LogisticsBusinessTServiceImpl; import com.jshop.service.impl.OrderTServiceImpl; import com.jshop.service.impl.ShippingAddressTServiceImpl; import com.jshop.service.impl.UsertServiceImpl; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; @ParentPackage("jshop") @Controller("orderTAction") public class OrderTAction extends ActionSupport { private OrderTService orderTService; private UsertService usertService; private CartTService cartTService; private ShippingAddressTService shippingAddressTService; private LogisticsBusinessTService logisticsBusinessTService; private String orderid; private String expressnumber; private String invoicenumber; private String paystate; private String query; private String qtype; private String tradeno; private String logisticsname; private String delivermode; private String paymentid; private List rows = new ArrayList(); private int rp; private int page = 1; private int total = 0; private String sortname; private String sortorder; Map<String, Object> map = new HashMap<String, Object>(); private boolean slogin = false; private String usession; private String formatedeliverytime;//格式化的发货时间 @JSON(serialize = false) public OrderTService getOrderTService() { return orderTService; } public void setOrderTService(OrderTService orderTService) { this.orderTService = orderTService; } @JSON(serialize = false) public UsertService getUsertService() { return usertService; } public void setUsertService(UsertService usertService) { this.usertService = usertService; } @JSON(serialize = false) public CartTService getCartTService() { return cartTService; } public void setCartTService(CartTService cartTService) { this.cartTService = cartTService; } @JSON(serialize = false) public ShippingAddressTService getShippingAddressTService() { return shippingAddressTService; } public void setShippingAddressTService(ShippingAddressTService shippingAddressTService) { this.shippingAddressTService = shippingAddressTService; } @JSON(serialize = false) public LogisticsBusinessTService getLogisticsBusinessTService() { return logisticsBusinessTService; } public void setLogisticsBusinessTService(LogisticsBusinessTService logisticsBusinessTService) { this.logisticsBusinessTService = logisticsBusinessTService; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getQtype() { return qtype; } public void setQtype(String qtype) { this.qtype = qtype; } @JSON(name = "rows") public List getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } public int getRp() { return rp; } public void setRp(int rp) { this.rp = rp; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public boolean isSlogin() { return slogin; } public void setSlogin(boolean slogin) { this.slogin = slogin; } public String getPaystate() { return paystate; } public void setPaystate(String paystate) { this.paystate = paystate; } public String getOrderid() { return orderid; } public void setOrderid(String orderid) { this.orderid = orderid; } public String getPaymentid() { return paymentid; } public void setPaymentid(String paymentid) { this.paymentid = paymentid; } public String getDelivermode() { return delivermode; } public void setDelivermode(String delivermode) { this.delivermode = delivermode; } public String getLogisticsname() { return logisticsname; } public void setLogisticsname(String logisticsname) { this.logisticsname = logisticsname; } public String getTradeno() { return tradeno; } public void setTradeno(String tradeno) { this.tradeno = tradeno; } public String getExpressnumber() { return expressnumber; } public void setExpressnumber(String expressnumber) { this.expressnumber = expressnumber; } public String getInvoicenumber() { return invoicenumber; } public void setInvoicenumber(String invoicenumber) { this.invoicenumber = invoicenumber; } public String getSortname() { return sortname; } public void setSortname(String sortname) { this.sortname = sortname; } public String getSortorder() { return sortorder; } public void setSortorder(String sortorder) { this.sortorder = sortorder; } public String getUsession() { return usession; } public void setUsession(String usession) { this.usession = usession; } public String getFormatedeliverytime() { return formatedeliverytime; } public void setFormatedeliverytime(String formatedeliverytime) { this.formatedeliverytime = formatedeliverytime; } @Override public void validate() { this.clearErrorsAndMessages(); } /** * 处理订单迭代 * * @param order */ @SuppressWarnings("unchecked") public void ProcessOrderList(List<OrderT> order) { rows.clear(); for (Iterator it = order.iterator(); it.hasNext();) { OrderT o = (OrderT) it.next(); if (o.getOrderstate().equals("0")) { o.setOrderstate(AllOrderState.ORDERSTATE_ZERO); } else if (o.getOrderstate().equals("1")) { o.setOrderstate(AllOrderState.ORDERSTATE_ONE); } else if (o.getOrderstate().equals("2")) { o.setOrderstate(AllOrderState.ORDERSTATE_TWO); } else if (o.getOrderstate().equals("3")) { o.setOrderstate(AllOrderState.ORDERSTATE_THREE); } else if (o.getOrderstate().equals("4")) { o.setOrderstate(AllOrderState.ORDERSTATE_FOUR); } else if (o.getOrderstate().equals("5")) { o.setOrderstate(AllOrderState.ORDERSTATE_FIVE); } else if (o.getOrderstate().equals("6")) { o.setOrderstate(AllOrderState.ORDERSTATE_SIX); } else if (o.getOrderstate().equals("7")) { o.setOrderstate(AllOrderState.ORDERSTATE_SEVEN); } else if (o.getOrderstate().equals("8")) { o.setOrderstate(AllOrderState.ORDERSTATE_EIGHT); } else { o.setOrderstate(AllOrderState.ORDERSTATE_NINE); } if (o.getPaystate().equals("0")) { o.setPaystate(AllOrderState.PAYSTATE_ZERO); } else if (o.getPaystate().equals("1")) { o.setPaystate(AllOrderState.PAYSTATE_ONE); } else { o.setPaystate(AllOrderState.PAYSTATE_TWO); } if (o.getShippingstate().equals("0")) { o.setShippingstate(AllOrderState.SHIPPINGSTATE_ZERO); } else if (o.getShippingstate().equals("1")) { o.setShippingstate(AllOrderState.SHIPPINGSTATE_ONE); } else { o.setShippingstate(AllOrderState.SHIPPINGSTATE_TWO); } if (o.getInvoice().equals("0")) { o.setInvoice(AllOrderState.INVOICE_ZERO); } else { o.setInvoice(AllOrderState.INVOICE_ONE); } if (o.getDelivermode().equals("EXPRESS")) { o.setDelivermode(AllOrderState.EXPRESS); } else if (o.getDelivermode().equals("POST")) { o.setDelivermode(AllOrderState.POST); } else { o.setDelivermode(AllOrderState.EMS); } if (o.getOrderTag().equals("1")) { o.setOrderTag(AllOrderState.ORDERTAG_ONE); } else if (o.getOrderTag().equals("2")) { o.setOrderTag(AllOrderState.ORDERTAG_TWO); } if(o.getDeliverytime()!=null){ this.setFormatedeliverytime(BaseTools.formateDbDate(o.getDeliverytime())); }else{ this.setFormatedeliverytime(""); } Map cellMap = new HashMap(); cellMap.put("id", o.getOrderid()); cellMap.put("cell", new Object[] {o.getOrderid(), "<a id='orderdetial'href='InitOrdersDetail?orderid=" + o.getOrderid() + "' name='orderdetail'>" + o.getGoodsname() + "</a>", o.getAmount(), o.getNeedquantity(), o.getUsername(), o.getShippingusername(), o.getPaymentname(), o.getDelivermode(), o.getOrderstate(), o.getPaystate(), o.getShippingstate(), BaseTools.formateDbDate(o.getPurchasetime()), this.getFormatedeliverytime(), o.getInvoice(), o.getOrderTag() }); rows.add(cellMap); } } /** *查询所有订单没有任何检索条件 */ public void finddefaultAllOrder() { int currentPage = page; int lineSize = rp; total = this.getOrderTService().countfindAllOrderT(); if (Validate.StrNotNull(sortname) && Validate.StrNotNull(sortorder)) { String queryString = "from OrderT order by " + sortname + " " + sortorder + ""; List<OrderT> order = this.getOrderTService().sortAllOrderT(currentPage, lineSize, queryString); if (order != null) { this.ProcessOrderList(order); } } } /** * 根据订单编号查询订单 * * @param orderid */ public void findOrderInfoByorderid(String orderid) { int currentPage = page; int lineSize = rp; total = this.getOrderTService().countfindOrderbyOrderid(orderid); List<OrderT> order = this.getOrderTService().findOrderByOrderid(currentPage, lineSize, orderid); if (order != null) { this.ProcessOrderList(order); } } /** *根据收货人查询订单数据 * * @param orderid */ public void findOrderInfoByShippingUsername(String shippingusername) { int currentPage = page; int lineSize = rp; total = this.getOrderTService().countfindOrderByShippingUsername(shippingusername); List<OrderT> order = this.getOrderTService().findOrderByOrderid(currentPage, lineSize, orderid); if (order != null) { this.ProcessOrderList(order); } } /** * 查询所有订单 * * @return */ @Action(value="findAllOrders",results={ @Result(name="json",type="json") }) public String findAllOrders() { if ("sc".equals(this.getQtype())) { this.setTotal(0); rows.clear(); this.finddefaultAllOrder(); } else { if (Validate.StrisNull(this.getQuery())) { return "json"; } else { if ("orderid".equals(this.getQtype())) { //根据订单id获取订单数据 this.findOrderInfoByorderid(this.getQuery().trim()); } if ("shippingusername".equals(this.getQtype())) { //根据收货人查询订单数据 this.findOrderInfoByShippingUsername(this.getQuery().trim()); } } } return "json"; } /** * 获取待发货订单 * * @return */ @Action(value="findAllTobeShippedOrders",results={ @Result(name="json",type="json") }) public String findAllTobeShippedOrders() { if (this.getQtype().equals("sc")) { this.setTotal(0); rows.clear(); this.finddefaultAllTobeShippedOrder(); } else { if (Validate.StrisNull(this.getQuery())) { return "json"; } else { return "json"; } } return "json"; } /** *获取默认的所有待发货订单 */ public void finddefaultAllTobeShippedOrder() { int currentPage = page; int lineSize = rp; String shippingstate = "0";//未发货状态 total = this.getOrderTService().countfindAllTobeShippedOrders(shippingstate); List<OrderT> order = this.getOrderTService().findAllTobeShippedOrders(currentPage, lineSize, shippingstate); if (order != null) { this.ProcessOrderList(order); } } /** * 获取订单详细 */ public void GetOrderDetail(String orderid) { OrderT o = this.getOrderTService().findOrderDetailByorderid(orderid); if (o != null) { if (o.getOrderstate().equals("0")) { o.setOrderstate(AllOrderState.ORDERSTATE_ZERO); } else if (o.getOrderstate().equals("1")) { o.setOrderstate(AllOrderState.ORDERSTATE_ONE); } else if (o.getOrderstate().equals("2")) { o.setOrderstate(AllOrderState.ORDERSTATE_TWO); } else if (o.getOrderstate().equals("3")) { o.setOrderstate(AllOrderState.ORDERSTATE_THREE); } else if (o.getOrderstate().equals("4")) { o.setOrderstate(AllOrderState.ORDERSTATE_FOUR); } else if (o.getOrderstate().equals("5")) { o.setOrderstate(AllOrderState.ORDERSTATE_FIVE); } else if (o.getOrderstate().equals("6")) { o.setOrderstate(AllOrderState.ORDERSTATE_SIX); } else if (o.getOrderstate().equals("7")) { o.setOrderstate(AllOrderState.ORDERSTATE_SEVEN); } else if (o.getOrderstate().equals("8")) { o.setOrderstate(AllOrderState.ORDERSTATE_EIGHT); } else { o.setOrderstate(AllOrderState.ORDERSTATE_NINE); } if (o.getPaystate().equals("0")) { o.setPaystate(AllOrderState.PAYSTATE_ZERO); } else if (o.getPaystate().equals("1")) { o.setPaystate(AllOrderState.PAYSTATE_ONE); } else { o.setPaystate(AllOrderState.PAYSTATE_TWO); } if (o.getShippingstate().equals("0")) { o.setShippingstate(AllOrderState.SHIPPINGSTATE_ZERO); } else if (o.getShippingstate().equals("1")) { o.setShippingstate(AllOrderState.SHIPPINGSTATE_ONE); } else { o.setShippingstate(AllOrderState.SHIPPINGSTATE_TWO); } if (o.getInvoice().equals("0")) { o.setInvoice(AllOrderState.INVOICE_ZERO); } else { o.setInvoice(AllOrderState.INVOICE_ONE); } if (o.getDelivermode().equals("EXPRESS")) { o.setDelivermode(AllOrderState.EXPRESS); } else if (o.getDelivermode().equals("POST")) { o.setDelivermode(AllOrderState.POST); } else { o.setDelivermode(AllOrderState.EMS); } if (o.getOrderTag().equals("1")) { o.setOrderTag(AllOrderState.ORDERTAG_ONE); } else if (o.getOrderTag().equals("2")) { o.setOrderTag(AllOrderState.ORDERTAG_TWO); } map.put("orderdetail", o); //获取买家信息 GetUserBuyerInfo(o.getUserid()); } } /** * 获取买家信息 * * @param userid */ public void GetUserBuyerInfo(String userid) { UserT user = this.getUsertService().findById(userid); if (user != null) { map.put("orderbuyerinfo", user); } } /** * 获取订单中的商品列表 * * @param orderid */ public void GetOrderGoodsList(String orderid) { List<CartT> list = this.getCartTService().findCartGoodsByOrderid(orderid); if (list != null) { map.put("ordergoods", list); } } /** * 获取订单发货地址 * * @param orderid */ public void GetOrderShippingAddress(String orderid) { ShippingAddressT st = this.getShippingAddressTService().findShippingAddressByOrderid(orderid, "1"); if (st != null) { map.put("shipping", st); } } /** * 获取订单详细信息 * * @return */ @Action(value = "InitOrdersDetail", results = { @Result(name = "success",type="dispatcher",location = "/jshop/admin/order/ordersdetail.jsp?session=${usession}"), @Result(name = "input",type="dispatcher",location = "/jshop/admin/order/ordersdetail.jsp?session=${usession}") }) public String InitOrdersDetail() { map.clear(); String orderid = this.getOrderid().trim(); //获取订单详细 GetOrderDetail(orderid); //获取订单中的商品列表 GetOrderGoodsList(orderid); //获取发货地址信息 GetOrderShippingAddress(orderid); ActionContext.getContext().put("order", map); return SUCCESS; } /** * 更新订单到关闭状态 * * @return */ @Action(value="UpdateOrderToClose",results={ @Result(name="json",type="json") }) public String UpdateOrderToClose() { String orderid = this.getOrderid().trim(); String orderstate = AllOrderState.ORDERSTATE_FIVE_NUM;//关闭 String paystate = AllOrderState.PAYSTATE_TWO_NUM;//表示关闭订单后的付款状态制空 String shippingstate = AllOrderState.SHIPPINGSTATE_TWO_NUM;//表示关闭订单后的发货状态制空 this.getOrderTService().updateOrderPayShippingState(orderid, orderstate, paystate, shippingstate); //InitOrdersDetail(); return "json"; } /** * 更新订单到确认状态(当订单被关闭或者货到付款模式需要确认订单) * * @return */ @Action(value="UpdateOrderToConfirm",results={ @Result(name="json",type="json") }) public String UpdateOrderToConfirm() { String orderid = this.getOrderid().trim(); String orderstate = AllOrderState.ORDERSTATE_ONE_NUM;//已确认 String paystate = AllOrderState.PAYSTATE_ZERO_NUM;//未付款 String shippingstate = AllOrderState.SHIPPINGSTATE_ZERO_NUM;//配货,未发货 int i = this.getOrderTService().updateOrderPayShippingState(orderid, orderstate, paystate, shippingstate); //InitOrdersDetail(); return "json"; } /** * 更新订单到发货状态(需要判断订单是否已经付款) * * @return */ @Action(value="UpdateOrderToDelivery",results={ @Result(name="json",type="json") }) public String UpdateOrderToDelivery() { String orderid = this.getOrderid().trim(); String orderstate = AllOrderState.ORDERSTATE_THREE_NUM;//等待确认收获 String paystate = this.getPaystate().trim();//付款状态 String shippingstate = AllOrderState.SHIPPINGSTATE_ONE_NUM;//发货 int i = this.getOrderTService().updateOrderPayShippingState(orderid, orderstate, paystate, shippingstate); //InitOrdersDetail(); return "json"; } /** * 更新订单到付款状态(货到付款使用) * * @return */ @Action(value="UpdateOrderToPay",results={ @Result(name="json",type="json") }) public String UpdateOrderToPay() { String orderid = this.getOrderid().trim(); String orderstate = AllOrderState.ORDERSTATE_ONE_NUM;//已确认 String paystate = AllOrderState.PAYSTATE_ONE_NUM;//付款 String shippingstate = AllOrderState.SHIPPINGSTATE_ONE_NUM;//发货 int i = this.getOrderTService().updateOrderPayShippingState(orderid, orderstate, paystate, shippingstate); //InitOrdersDetail(); return "json"; } /** *更新订单快递单号 * * @return */ @Action(value="UpdateExpressnumberByOrderId",results={ @Result(name="json",type="json") }) public String UpdateExpressnumberByOrderId() { if (Validate.StrNotNull(this.getExpressnumber())&&Validate.StrNotNull(this.getOrderid())) { int i = this.getOrderTService().updateExpressnumberByOrderId(this.getOrderid().trim(), this.getExpressnumber().trim()); return "json"; } return "json"; } /** * 更新发货单号 * * @return */ @Action(value="UpdateInvoicenumberByOrderId",results={ @Result(name="json",type="json") }) public String UpdateInvoicenumberByOrderId() { if (Validate.StrNotNull(this.getInvoicenumber())&&Validate.StrNotNull(this.getOrderid())) { int i = this.getOrderTService().updateInvoicenumberByOrderId(this.getOrderid().trim(), this.getInvoicenumber().trim(), BaseTools.systemtime()); return "json"; } return "json"; } /** * 获取同步发货必要参数 * * @return */ @Action(value="GetAlipayFhNeedParams",results={ @Result(name="json",type="json") }) public String GetAlipayFhNeedParams() { OrderT o = this.getOrderTService().findOrderDetailByorderid(this.getOrderid().trim()); this.setTradeno(o.getTradeNo());//支付宝交易号 this.setExpressnumber(o.getExpressnumber());//快递单号,发货单号 this.setDelivermode(o.getDelivermode()); this.setPaymentid(o.getPaymentid()); LogisticsBusinessT lt = this.getLogisticsBusinessTService().findLogisticsBusinessById(o.getLogisticsid()); this.setLogisticsname(lt.getLogisticsname()); return "json"; } /** * 查询所有已发货的订单 * @return */ @Action(value="findAllhaveshippedOrder",results={ @Result(name="json",type="json") }) public String findAllhaveshippedOrder(){ if ("sc".equals(this.getQtype())) { this.setTotal(0); rows.clear(); this.defaultfindAllhaveshippedOrder(); } else { if (Validate.StrisNull(this.getQuery())) { return "json"; } else { return "json"; } } return "json"; } /** * 默认查询所有没有条件的已发货订单 */ public void defaultfindAllhaveshippedOrder(){ int currentPage=page; int lineSize=rp; String shippingstate="1"; total = this.getOrderTService().countAllhaveshippedOrder(shippingstate); List<OrderT> order =this.getOrderTService().findAllhaveshippedOrder(currentPage, lineSize, shippingstate); if(order!=null){ this.ProcessOrderList(order); } } /** * 查询所有已退货的订单 * @return */ @Action(value="findAllrenturnOrder",results={ @Result(name="json",type="json") }) public String findAllrenturnOrder(){ if ("sc".equals(this.getQtype())) { this.setTotal(0); rows.clear(); this.defaultfindAllreturnOrder(); } else { if (Validate.StrisNull(this.getQuery())) { return "json"; } else { } } return "json"; } /** * 默认查询所有没有条件的退货订单 */ public void defaultfindAllreturnOrder(){ int currentPage=page; int lineSize=rp; String orderstate="4"; total = this.getOrderTService().countAllreturnOrder(orderstate); List<OrderT> order =this.getOrderTService().findAllreturnOrder(currentPage, lineSize, orderstate); if(order!=null){ this.ProcessOrderList(order); } } }