北京理工大学继续教育学院毕业设计(论文)
选购餐品添加到购物车的核心业务代码:
/** 选购餐品 */
public boolean addCart(Member member, Merchandise mer, int number)
throws Exception {
Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{
Cartselectedmer sel = null; int favourable =
member.getMemberlevel().getFavourable().intValue(); String hql =\a.cartStatus=0\;
Query query = session.createQuery(hql); query.setEntity(\, member); query.setMaxResults(1);
tx = session.beginTransaction();
Cart cart = (Cart)query.uniqueResult(); if (cart==null){
cart = new Cart();
cart.setCartStatus(new Integer(0)); cart.setMember(member);
cart.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()));
cart.getMerchandises().add(mer); session.save(cart); }else{
hql = \a.cart=:cartid and a.merchandise=:merid order by a.id desc\; query = session.createQuery(hql);
query.setInteger(\, cart.getId().intValue()); query.setInteger(\, mer.getId().intValue()); query.setMaxResults(1);
sel = (Cartselectedmer)query.uniqueResult(); int total = number;
System.out.println((total*mer.getPrice().doubleValue()*favourable/100));
if(sel!=null){
total = number+sel.getNumber().intValue(); sel.setNumber(Integer.valueOf(total)); if (mer.getSpecial().intValue()==1){
18
北京理工大学继续教育学院毕业设计(论文)
sel.setPrice(mer.getSprice());
sel.setMoney(Double.valueOf(total*mer.getSprice().doubleValue()));
}else{//普通餐品
sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favourable/100));
sel.setMoney(Double.valueOf(total*mer.getPrice().doubleValue()*favourable/100));
} session.update(sel); }else{
cart.getMerchandises().add(mer); }
if (mer.getSpecial().intValue()==1){//特价餐品
cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+number*mer.getSprice().doubleValue())); }else{//普通餐品
cart.setMoney(Double.valueOf(cart.getMoney().doubleValue()+number*mer.getPrice().doubleValue()*favourable/100)); }
session.update(cart); }
tx.commit();
if(sel==null){
tx = session.beginTransaction(); hql = \a.cart=:cartid and a.merchandise=:merid order by a.id desc\; query = session.createQuery(hql);
query.setInteger(\, cart.getId().intValue()); query.setInteger(\, mer.getId().intValue()); query.setMaxResults(1);
sel = (Cartselectedmer)query.uniqueResult(); if(sel!=null){
sel.setNumber(Integer.valueOf(number));
if (mer.getSpecial().intValue()==1){//特价餐品 sel.setPrice(mer.getSprice());
sel.setMoney(Double.valueOf(number*mer.getSprice().doubleValu
19
北京理工大学继续教育学院毕业设计(论文)
e()));
}else{//普通餐品
sel.setPrice(Double.valueOf(mer.getPrice().doubleValue()*favourable/100));
sel.setMoney(Double.valueOf(number*mer.getPrice().doubleValue()*favourable/100));
}
session.update(sel); }
tx.commit(); }
status = true;
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return status; }
(二)
图4-5-3-1 购物车管理界面
购买后的商品在没有生成订单前,都放置在购物车中。以上是对购物车中的餐品管理界面。
点击清空购物车的核心业务代码:
/** 清空购物车 */
public boolean clearCart(Member member) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{
20
北京理工大学继续教育学院毕业设计(论文)
Integer cartid = new Integer(0);
String hql =\a.cartStatus=0\;
Query query = session.createQuery(hql); query.setEntity(\, member); query.setMaxResults(1);
tx = session.beginTransaction();
Cart cart = (Cart)query.uniqueResult(); if (cart!=null){
cartid = cart.getId();
cart.setMoney(Double.valueOf(0)); session.update(cart); }
tx.commit();
Connection con = session.connection();
Statement stat = con.createStatement(); String sql =\cart=\+cartid;
tx = session.beginTransaction(); stat.executeUpdate(sql); tx.commit();
if (stat!=null)stat.close(); status = true;
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return status; }
(三)
图4-5-3-2 生成订单的界面
会员在提交购物车中的清单后,就会生成一个用户订单信息。
21
北京理工大学继续教育学院毕业设计(论文)
生成订单的核心业务代码:
/** 新增订单 */
public boolean addOrder(Orders order) throws Exception { Session session = MySessionFactory.getSession(); Transaction tx = null; boolean status = false; try{
tx = session.beginTransaction(); session.save(order); tx.commit(); status=true;
}catch(Exception ex){
if(tx!=null)tx.rollback();
ex.printStackTrace(); }finally{
MySessionFactory.closeSession(); }
return status; }
4.5.4会员订单管理界面
图4-5-4 会员订单管理界面
会员所有的订单会在订单管理界面查询到,同时可以对订单进行删除和查看。 会员订单管理的核心业务代码:
/** 浏览所有订单 */
public List browseOrder() throws Exception {
Session session = MySessionFactory.getSession(); Transaction tx = null; List list = null;
22