商城订单模块 php,网上商城7--订单模块

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;

0c10d3c5c1a643bbd11fc52a70d4d2f2.png

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 SetorderItems = new HashSet();

....

}

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查询订单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值