【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
*/
public String EditBasketOK(){
Map session = ActionContext.getContext().getSession();
//是否删除
if(this.getIsdelete().equals("delete")){
List b=(List)session.get("basket");
//在购物车session中将要删除的物品删除
for(ListIterator iterator=b.listIterator();iterator.hasNext();) {
ShopCart shopcart= (ShopCart) iterator.next();
if(shopcart.getBookid()==this.getBookid()) {
//使用List对象b的remove()方法将出错,而使用如下方法
iterator.remove();
//将余下的物品保存到购物车
if(b.size()>0){
session.put("basket", b);
}
//System.out.println("删除"+shopcart.getBookname());
}
}
}
//获取剩余购物车,将对应的购物车里的物品设置数量
List bb=(List)session.get("basket");
for(ListIterator iterator=bb.listIterator();iterator.hasNext();) {
ShopCart shopcart= (ShopCart) iterator.next();
if(shopcart.getBookid()==this.getBookid()){
shopcart.setCount(this.getBooknum());
this.setShopcart(shopcart);
//System.out.println("设置数量:"+shopcart.getBookname());
}
}
return SUCCESS;
}
public int getBookid() {
return bookid;
}
public void setBookid(int bookid) {
this.bookid = bookid;
}
public int getBooknum() {
return booknum;
}
public void setBooknum(int booknum) {
this.booknum = booknum;
}
public String getIsdelete() {
return isdelete;
}
public void setIsdelete(String isdelete) {
this.isdelete = isdelete;
}
public List getBasket() {
return basket;
}
public void setBasket(List basket) {
this.basket = basket;
}
public ShopCart getShopcart() {
return shopcart;
}
public void setShopcart(ShopCart shopcart) {
this.shopcart = shopcart;
}
public float getAllprice() {
return allprice;
}
public void setAllprice(float allprice) {
this.allprice = allprice;
}
public String getOrderid() {
return orderid;
}
public void setOrderid(String orderid) {
this.orderid = orderid;
}
}
上一篇:
BasicWindowMonitor.java
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值