首頁 > php教程 > php手册 > 網上商城7--訂單模組

網上商城7--訂單模組

WBOY
發布: 2016-11-30 23:59:34
原創
1672 人瀏覽過

1.建表:

CREATE TABLE `orders` (
  `oid` int(11) NOT NULL AUTO_INCREMENT,
  `total` double DEFAULT NULL,
  `ordertime` datetime DEFAULT NULL,
  `state` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `addr` varchar(100) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `uid` int(11) DEFAULT NULL,
  PRIMARY KEY (`oid`),
  KEY `FKC3DF62E5AA3D9C7` (`uid`),
  CONSTRAINT `FKC3DF62E5AA3D9C7` FOREIGN KEY (`uid`) REFERENCES `user` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

CREATE TABLE `orderitem` (
  `itemid` int(11) NOT NULL AUTO_INCREMENT,
  `count` int(11) DEFAULT NULL,
  `subtotal` double DEFAULT NULL,
  `pid` int(11) DEFAULT NULL,
  `oid` int(11) DEFAULT NULL,
  PRIMARY KEY (`itemid`),
  KEY `FKE8B2AB6166C01961` (`oid`),
  KEY `FKE8B2AB6171DB7AE4` (`pid`),
  CONSTRAINT `FKE8B2AB6166C01961` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`),
  CONSTRAINT `FKE8B2AB6171DB7AE4` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
登入後複製

 

 2.bean

public class Order {
	private Integer oid;
	private Double total;
	private Date ordertime;
	private String name;
	private String addr;
	private String phone;
	private Integer state;
	// 与用户的关联关系
	private User user;
	// 与订单项关联关系
	private Set<OrderItem> orderItems = new HashSet<OrderItem>();
        ....
}
登入後複製

 

public class OrderItem {
	private Integer itemid;
	private Integer count;
	private Double subtotal;
	private Product product;
	private Order order;
        ....
}
登入後複製

  

3.產生訂單

public String createOrder() {
	// 将Order对象存入到数据库中:
	// 封装Order对象:
	Order order = new Order();
	// 封装总价---从购物车的信息获得.
	// 获得购物车:
	Cart cart = (Cart) ServletActionContext.getRequest().getSession()
			.getAttribute("cart");
	// 判断:
	if (cart == null) {
		this.addActionError("亲!您还没有购物!请先去购物!");
		return "msg";
	}
	// 设置所属用户:
	User existUser = (User) ServletActionContext.getRequest().getSession()
			.getAttribute("existUser");
	if (existUser == null) {
		this.addActionError("亲!您还没有登录!请先去登录!");
		return "msg";
	}
	order.setUser(existUser);
	order.setTotal(cart.getTotal());
	// 封装时间
	order.setOrdertime(new Date());
	// 封装状态
	order.setState(1); // 1 未付款 2 已经付款,未发货 3.已经发货,没有确认收货 4.订单完成.
	// 为订单设置订单项集合:
	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);
	}
	// 购物车清空了.
	cart.clearCart();
	// 调用Service保存订单的操作:
	orderService.save(order);

	// 将订单存入到值栈中:
	ActionContext.getContext().getValueStack().set("order", order);
	// 页面跳转:
	return "createOrderSuccess";
}
登入後複製

  

4.查詢我的訂單

   1.依照使用者的id查詢訂單

 

5.查詢某個訂單:

   1.跟單訂單id查詢訂單

 

 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板