1.点击加入购物车时订单表和订单项表加入数据
2.清空购物车
实现:
1.1 建立order和orderItem实体类
package com.sjy.entity;
import java.util.Date;
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 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 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 + ", orderPrice="
+ orderPrice + ", orderState=" + orderState + "]";
}
}
package com.sjy.entity;
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 + "]";
}
}
1.2 增加的方法
public void add(Order order) throws Exception {
String sql="insert into t_easyui_order(uid,orderTime,consignee,phone,postalcode,address,sendType,orderPrice,orderState) values(?,now(),?,?,?,?,?,?,?)";
super.executeUpdate(sql, order, new String[] {"uid","consignee","phone","postalcode","address","sendType","orderPrice","orderState"});
}
public void add(OrderItem t) throws Exception {
String sql="insert into t_easyui_orderItem(oid,bid,quantity) values(?,?,?)";
super.executeUpdate(sql, t, new String[] {"oid","bid","quantity"});
}
1.3 子控制器内
public void createOrder(HttpServletRequest req, HttpServletResponse resp) throws JsonProcessingException, IOException {
Order o=new Order();
User user =(User) req.getSession().getAttribute("user");
o.setAddress(vo.getAddress());
o.setConsignee(vo.getConsignee());
float p=0;
String pageStr = vo.getPageStr();
if(StringUtils.isNotBlank(pageStr)&&pageStr.length()>1) {
for (String item:pageStr.substring(1).split(",")) {
String[] split = item.split("-");
p+=Float.valueOf(split[3]);
}
}
o.setOrderPrice(p);
o.setOrderState(1);
o.setPhone(vo.getPhone());
o.setSendType(vo.getSendType());
o.setPostalcode(vo.getPostalcode());
o.setUid(user.getId());
try {
//,测试-2.0-1-2.0,测试-2.0-1-2.0
orderDao.add(o);
OrderItem oi=new OrderItem();
if(StringUtils.isNotBlank(pageStr)&&pageStr.length()>1) {
for (String item:pageStr.substring(1).split(",")) {
String[] split = item.split("-");
Order order = orderDao.list(null, null).get(0);
oi.setBid(split[0]);
oi.setOid(order.getId());
oi.setQuantity(Integer.parseInt(split[2]));
orderItemDao.add(oi);
Book b=new Book();
b.setName(split[0]);
b.setSales(Integer.parseInt(split[2]));
bookDao.editSales(b);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
1.4 js前端
$(".order_Create").click(function () {
debugger;
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) {
<%--location.href = '${pageContext.request.contextPath}/shopping.action?methodName=list';--%>
}
});
}
});
});
二、销量增加
1.在bookdao类增加修改销量的方法
public void editSales(Book book) throws Exception {
String sql = "update t_easyui_book set sales=sales+? where name = ?";
super.executeUpdate(sql, book, new String[]{"sales", "name"});
}
2.在点击购买并确定的时候调用该方法
if(StringUtils.isNotBlank(pageStr)&&pageStr.length()>1) {
for (String item:pageStr.substring(1).split(",")) {
String[] split = item.split("-");
//时间倒序的第一条数据
Order order = orderDao.list(null, null).get(0);
//书籍名称
oi.setBid(split[0]);
oi.setOid(order.getId());
oi.setQuantity(Integer.parseInt(split[2]));
orderItemDao.add(oi);
Book b=new Book();
b.setName(split[0]);
b.setSales(Integer.parseInt(split[2]));
bookDao.editSales(b);
}
}
结果图
点击区结算出现下面弹窗
填写完信息后点确定时,清空购物车,销量增加功能实现



