栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

购物车功能 下

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

购物车功能 下

一、加入购物车

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);
		}
		}

结果图

点击区结算出现下面弹窗

 填写完信息后点确定时,清空购物车,销量增加功能实现

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号