package com.whpu.onlineShoppingMall.order.action;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.whpu.onlineShoppingMall.cart.entity.Cart;
import com.whpu.onlineShoppingMall.cart.entity.CartItem;
import com.whpu.onlineShoppingMall.order.entity.Order;
import com.whpu.onlineShoppingMall.order.entity.OrderItem;
import com.whpu.onlineShoppingMall.order.service.OrderService;
import com.whpu.onlineShoppingMall.user.entity.User;
import com.whpu.onlineShoppingMall.utils.PageBean;
import com.whpu.onlineShoppingMall.utils.PaymentUtil;
/**
* 订单管理的action
* @date: 2019-3-27
* @author: yangtz
* @title: OrderAction
* @version: 1.0
* @description:
* update_version: update_date: update_author: update_note:
*/
public class OrderAction extends ActionSupport implements ModelDriven<Order> {
private Order order = new Order();
private OrderService orderService;
private Integer page;
//银行支付通道编码
private String pd_FrpId;
private String r6_Order;
private String r3_Amt;
public void setR6_Order(String r6_Order) {
this.r6_Order = r6_Order;
}
public void setR3_Amt(String r3_Amt) {
this.r3_Amt = r3_Amt;
}
public void setPd_FrpId(String pd_FrpId) {
this.pd_FrpId = pd_FrpId;
}
public void setPage(Integer page) {
this.page = page;
}
public void setOrderService(OrderService orderService) {
this.orderService = orderService;
}
public Order getModel() {
return order;
}
/**
* 生成订单
* @date: 2019-3-27
* @author: yangtz
* @title: saveOrder
* @return
* @exception:
* @version: 1.0
* @description:
* update_version: update_date: update_author: update_note:
*/
public String saveOrder(){
order.setOrdertime(new Date());
order.setState(1);//1 为付款 2已付款,未发货 3已发货,未确定人收货 4交易完成
//获得购物车的total
Cart cart = (Cart) ServletActionContext.getRequest().getSession().getAttribute("cart");
if(cart == null || cart.getTotal() == 0){
this.addActionError("亲!您还没有购物!");
return "msg";
}
order.setTotal(cart.getTotal());
//获得购物项
for (CartItem cartItem : cart.getCartItems()) {
// 订单项的信息从购物项获得的.
OrderItem orderItem = new OrderItem();
orderItem.setCount(cartItem.getCount());
orderItem.setSubtotal(cartItem.getSubtotal());
orderItem.setProduct(cartItem.getProduct());
orderItem.setOrder(order);
order.getOrderItems().add(orderItem);
}
//用户
User loginUser = (User) ServletActionContext.getRequest().getSession()
.getAttribute("loginUser");
if (loginUser == null) {
this.addActionMessage("亲!您还没有登录!");
return "msg";
}
order.setUser(loginUser);
//保存
//Integer newid = Integer.parseInt(new SimpleDateFormat("mmss").format(new Date())+new RandomUtils().generateNumber2());
//order.setOid(newid);
orderService.save(order);
cart.clearCart();
return "saveOrder";
}
/**
* 获取用户的订单
* @date: 2019-3-28
* @author: yangtz
* @title: findByUid
* @return
* @exception:
* @version: 1.0
* @description:
* update_version: update_date: update_author: update_note:
*/
public String findByUid(){
User user = (User) ServletActionContext.getRequest().getSession().getAttribute("loginUser");
PageBean<Order> pageBean = orderService.findByPageUid(user.getUid(),page);
//数据存入值栈
ActionContext.getContext().getValueStack().set("pageBean", pageBean);
return "findByUid";
}
/**
* 订单页面通过状态筛选
* @date: 2019-4-26
* @author: yangtz
* @title: searchByState
* @return
* @exception:
* @version: 1.0
* @throws IOException
* @description:
* update_version: update_date: update_author: update_note:
*/
public void searchByState() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("Content-type", "text/html;charset=UTF-8");
String searchState = ServletActionContext.getRequest().getParameter("searchState");
User user = (User) ServletActionContext.getRequest().getSession().getAttribute("loginUser");
PageBean<Order> pageBean = orderService.searchByState(user.getUid(),searchState,page);
// //数据存入值栈
// ActionContext.getContext().getValueStack().set("pageBean", pageBean);
String contentHtml = "";
if(pageBean.getList()!=null&&pageBean.getList().size()>0){
for(int i=0;i<pageBean.getList().size();i++){
contentHtml +=" <tr> ";
contentHtml +=" <th colspan='5' style='background: beige;'>订单编号:"+pageBean.getList().get(i).getOid()+" 订单金额: ";
contentHtml +=" <font color='red'>"+pageBean.getList().get(i).getTotal()+"</font> ";
contentHtml +=" ";
contentHtml +=" ";
if(pageBean.getList().get(i).getState()==1){
contentHtml +=" <a href='/OnlineShoppingMall/order_findByOid.action?oid="+pageBean.getList().get(i).getOid()+"'>订单状态:<font color='red'><font color='mediumpurple' size='4'>付款</font></font></a> ";
}else if(pageBean.getList().get(i).getState()==2){
contentHtml +=" <font color='mediumpurple' size='4'>已付款</font> ";
}else if(pageBean.getList().get(i).getState()==3){
contentHtml +=" <a href='/OnlineShoppingMall/order_updateState.action?oid="+pageBean.getList().get(i).getOid()+"' onClick='return confirm('确定收货?');'><font color='mediumpurple' size='4'>确认收货</font></a>";
}else if(pageBean.getList().get(i).getState()==4){
contentHtml +=" <font color='mediumpurple' size='4'>交易完成</font> ";
}
contentHtml +=" </th> ";
contentHtml +=" </tr> ";
contentHtml +=" <tr> ";