1.订单以及订单项实体类、dao
订单实体类
package com.wyy.entity;
import java.util.Date;
/**
* 订单
* @author T440s
*
*/
public class Order {
private long id;
private long uid;
private Date orderTime;
private String consignee;
private String phone;
private String postalcode;
private String address;
private int sendType;
private Date sendTime;
private float orderPrice;
private int orderState;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getUid() {
return uid;
}
public void setUid(long uid) {
this.uid = uid;
}
public Date getOrderTime() {
return orderTime;
}
public void setOrderTime(Date orderTime) {
this.orderTime = orderTime;
}
public String getConsignee() {
return consignee;
}
public void setConsignee(String consignee) {
this.consignee = consignee;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPostalcode() {
return postalcode;
}
public void setPostalcode(String postalcode) {
this.postalcode = postalcode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getSendType() {
return sendType;
}
public void setSendType(int sendType) {
this.sendType = sendType;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public float getOrderPrice() {
return orderPrice;
}
public void setOrderPrice(float orderPrice) {
this.orderPrice = orderPrice;
}
public int getOrderState() {
return orderState;
}
public void setOrderState(int orderState) {
this.orderState = orderState;
}
@Override
public String toString() {
return "Order [id=" + id + ", uid=" + uid + ", orderTime=" + orderTime + ", consignee=" + consignee + ", phone="
+ phone + ", postalcode=" + postalcode + ", address=" + address + ", sendType=" + sendType
+ ", sendTime=" + sendTime + ", orderPrice=" + orderPrice + ", orderState=" + orderState + "]";
}
public Order() {
// TODO Auto-generated constructor stub
}
}
OrderDao
package com.wyy.dao;
import java.util.List;
import com.wyy.entity.Order;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
public class OrderDao extends BaseDao<Order> {
/**
* 生成订单表数据
* @param o
* @throws Exception
*/
public void AddOrder(Order o) throws Exception {
String sql="insert into t_easyui_order(uid,orderTime,consignee,phone,postalcode,address,sendType,sendTime,orderPrice,orderState) values(?,now(),?,?,?,?,?,?,?,?)";
String ss[]=new String [] {"uid","consignee","phone","postalcode","address","sendType","sendTime","orderPrice","orderState"};
super.executeUpdate(sql, o, ss);
}
/**
* 查询最近生成的订单
* @param o
* @param p
* @return
* @throws Exception
*/
public List<Order> list(Order o,PageBean p) throws Exception{
String sql="SELECT * FROM t_easyui_order ORDER BY orderTime DESC ";
return super.executeQuery(sql, Order.class, p);
}
}
订单项实体类
package com.wyy.entity;
/**
* 订单项
* @author T440s
*
*/
public class Orderitem {
private long id;
private long oid;
private String bid;
private int quantity;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getOid() {
return oid;
}
public void setOid(long oid) {
this.oid = oid;
}
public String getBid() {
return bid;
}
public void setBid(String bid) {
this.bid = bid;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
@Override
public String toString() {
return "Orderitem [id=" + id + ", oid=" + oid + ", bid=" + bid + ", quantity=" + quantity + "]";
}
public Orderitem(long id, long oid, String bid, int quantity) {
super();
this.id = id;
this.oid = oid;
this.bid = bid;
this.quantity = quantity;
}
public Orderitem() {
// TODO Auto-generated constructor stub
}
}
OrderitemDao
package com.wyy.dao;
import com.wyy.entity.Orderitem;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
public class OrderitemDao extends BaseDao<Orderitem> {
/**
* 生成订单项
* @param o
* @throws Exception
*/
public void AddOrderitem(Orderitem o) throws Exception {
String sql="insert into t_easyui_orderitem (oid,bid,quantity) values(?,?,?) ";
String ss[]=new String [] {"oid","bid","quantity"};
super.executeUpdate(sql, o, ss);
}
}
书籍销量修改方法
public void updsales(EasyuiBook b) throws Exception {
String sql = "update t_easyui_book set sales=sales+? where name=?";
super.executeUpdate(sql, b, new String[] { "sales", "name" });
}
购物车结算方法
public String createOrder(HttpServletRequest req, HttpServletResponse resp) {
// 判断用户是否登录
User u = (User) req.getSession().getAttribute("user");
if (u == null) {
return "login";
}
// 生成订单
Order o = new Order();
o.setAddress(s.getAddress());
o.setConsignee(s.getConsignee());
//总金额
float orderPrice = 0;
//pageStr包含了书籍名字、书籍价格、书籍数量
String pageStr = s.getPageStr();
if (StringUtils.isNotBlank(pageStr) && pageStr.length() > 1) {
for (String itm : pageStr.substring(1).split(",")) {
String[] split = itm.split("-");
orderPrice += Float.valueOf(split[1])*Integer.parseInt(split[2]);
}
}
o.setOrderPrice(orderPrice);
o.setOrderState(1);
o.setPhone(s.getPhone());
o.setPostalcode(s.getPostalcode());
o.setSendType(s.getSendType());
o.setUid(u.getId());
try {
orderdao.AddOrder(o);
// 生成订单项
Order order = orderdao.list(o, null).get(0);
if (StringUtils.isNotBlank(pageStr) && pageStr.length() > 1) {
for (String itm : pageStr.substring(1).split(",")) {
Orderitem orderitem = new Orderitem();
String[] split = itm.split("-");
orderitem.setBid(split[0]);
orderitem.setOid(order.getId());
orderitem.setQuantity(Integer.parseInt(split[2]));
orderitemDao.AddOrderitem(orderitem);
// 当用户购买成功之后,对应书籍的销量也应该增加对应数量
EasyuiBook book = new EasyuiBook();
book.setName(split[0]);
book.setSales(Integer.parseInt(split[2]));
bookDao.updsales(book);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
前端js代码
前端负责将购物车数据以及模态框中的地址信息打包发送到后台
$(".order_Create").click(function () {
var consignee = $("#consignee").val();
var phone = $("#phone").val();
var postalcode = $("#postalcode").val();
var address = $("#address").val();
var sendType = $("#sendType").val();
var single_tr = "";
$(".table tr:gt(0)").not(":last").each(function (index, node) {
console.log(index);
single_tr = single_tr + "," + $(this).find("th").eq(0).html() + "-" + $(this).find("td").eq(0).html() + "-"
+ $(this).find("td").eq(1).find("input").val() + "-" + $(this).find("td").eq(2).html();
})
console.log(single_tr.substring(1));
var param = "consignee=" + consignee + "&phone=" + phone + "&postalcode=" + postalcode + "&address=" + address + "&sendType=" + sendType + "&pageStr=" + single_tr;
$.ajax({
url: '${pageContext.request.contextPath}/Shopping.action?methodName=createOrder',
type: "POST",
data: param,
success: function (data) {
var consignee = $("#consignee").val("");
var phone = $("#phone").val("");
var postalcode = $("#postalcode").val("");
var address = $("#address").val("");
var sendType = $("#sendType").val("");
$('.shop-modal').addClass('modal');
$(".table tr:gt(0)").not(":last").remove();
$.ajax({
url: '${pageContext.request.contextPath}/Shopping.action?methodName=clear',
success: function (data) {
}
});
}
});
});
最终效果