MVC&EasyUI项目之购物车结算

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

最终效果

在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值