【Java开源代码栏目提醒】:本文主要为网学会员提供BasketAction.java,希望对需要BasketAction.java网友有所帮助,学习一下!
package com.org.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.org.model.Book;
import com.org.model.ShopCart;
import com.org.service.*;
import java.util.*;
public class BasketAction extends ActionSupport {
private List basket;
private int bookid=-1;
private int booknum=0;
private String isdelete="";
private float allprice=0f;
private String orderid="";
private ShopCart shopcart;
//需要注入的图书操作属性bookcontrol
private BookDetailControl bookcontrol;
/**
* 通过setter,由Spring容器为bookcontrol属性
* 注入BookDetailControl组件
* @param bookcontrol
*/
public void setBookcontrol(BookDetailControl bookcontrol) {
this.bookcontrol = bookcontrol;
}
/**
* 添加到购物车方法,判断购物车是否已经存在物品,
* 是则追加,并判断是否重复
*
* @return
* @throws Exception
*/
public String BuyBook() throws Exception {
Map session = ActionContext.getContext().getSession();
List b=null;
//如果物品编号不等于默认值,则表示新添加一种物品
if(this.getBookid()!=-1){
//将要添加的物品查询出来
List books=bookcontrol.SearchBooks(this.getBookid());
List shop=new LinkedList<ShopCart>();
ShopCart shopcart=new ShopCart();
Book boo=(Book)books.get(0);
//将
查询出来的物品的编号和名称放入购物车
shopcart.setBookid(boo.getBookid());
shopcart.setBookname(boo.getBookname());
shop.add(0,shopcart);
//如果购物车已经有物品,则一起添加
if(session.get("basket")!=null){
b=(List)session.get("basket");
//判断物品是否已经存在相同物品
boolean is=false;
for(ListIterator iterator=b.listIterator();iterator.hasNext();) {
ShopCart book= (ShopCart) iterator.next();
if(book.getBookid()==this.getBookid()){
is=true;
//System.out.println("物品"+book.getBookname()+"已经存在");
}
}
//不存在相同物品
if(!is){
//System.out.println("可以添加物品"+this.getBookid());
//在原有基础上将新物品()添加到b这个List中
b.addAll(shop);
}
//将List添加到session,真正将物品添加到购物车
session.put("basket",b);
}
//第一次添加物品到购物车
else {
session.put("basket",shop);
}
return SUCCESS;
}
return SUCCESS;
}
/**
* 显示购物车物品,结算总价
* @return
*/
public String SetOrder() throws Exception {
Map session = ActionContext.getContext().getSession();
//显示购物车
if(session.get("basket")!=null) {
List b=(List)session.get("basket");
//在循环中计算图书总价
for(ListIterator iterator=b.listIterator();iterator.hasNext();) {
ShopCart shopcart= (ShopCart) iterator.next();
//设置订单编号,由用户名和时间组成
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat();
orderid=session.get("username").toString()+"-"+sdf.format(new Date());
shopcart.setOrderid(orderid);
//计算一种书的总价
float price=shopcart.getCount()*getOnePrice(shopcart.getBookid());
shopcart.setPrice(price);
//计算所有书的总结
allprice+=shopcart.getPrice();
}
basket=(List)session.get("basket");
}
return SUCCESS;
}
/**
* 获取指定编号的书籍的单价
* @param bookid
* @return
* @throws Exception
*/
private float getOnePrice(int bookid) throws Exception {
List books=bookcontrol.SearchBooks(bookid);
Book book= (Book) books.get(0);
return book.getSaleprice();
}
/**
* 清空购物车
* @return
*/
public String NullBasket() {
Map session = ActionContext.getContext().getSession();
session.put("basket",null);
return SUCCESS;
}
/**
* 显示编辑购物车页面,获取指定编号的图书在购物车中的信息
* @return
*/
public String EditBasket() {
Map session = ActionContext.getContext().getSession();
List b=(List)session.get("basket");
for(ListIterator iterator=b.listIterator();iterator.hasNext();) {
ShopCart shopcart= (ShopCart) iterator.next();
if(shopcart.getBookid()==this.getBookid()){
this.setShopcart(shopcart);
}
}
return SUCCESS;
}
/**
* 编辑购物车物品后提交到此方法,可以删除该物品,获取设置物品购买数量
* @return
*/
publi