package org.whatisjava.dangdang.bo;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.whatisjava.dangdang.dao.ProductDao;
import org.whatisjava.dangdang.domain.Product;
import org.whatisjava.dangdang.exception.DaoException;
import org.whatisjava.dangdang.util.DaoFactory;
public class Cart implements Serializable {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(Cart.class);
ProductDao productDao = DaoFactory.getProductDao();
private Integer userId;
// CartItem.product.id
private HashMap<Integer, CartItem> items;
/**
*
* @param user
*/
public Cart(Integer userId) {
this.userId = userId;
items = new HashMap<Integer, CartItem>();
}
public Integer getUserId() {
return userId;
}
/**
*
* @param product
* @return
*/
public boolean addItem(Integer productId)
throws DaoException {
if (!items.containsKey(productId)) {
Product product = productDao.findProductById(productId);
if(product != null){
CartItem cartItem = new CartItem();
cartItem.setProduct(product);
cartItem.setDrop(false);
cartItem.setNumber(1);
this.items.put(productId, cartItem);
return true;
}
}
return false;
}
/**
*
* @param productId
* @param num
* @return
*/
public boolean updateNum(Integer productId, int num) {
CartItem cartItem = items.get(productId);
if (num < 1) {
return this.drop(productId);
} else {
cartItem.setNumber(num);
return true;
}
}
/**
*
* @param productId
* @return
*/
public boolean drop(Integer productId) {
CartItem cartItem = items.get(productId);
if (!cartItem.isDrop()) {
cartItem.setDrop(true);
return true;
}
return false;
}
/**
*
* @param productId
* @return
*/
public boolean recovery(Integer productId) {
CartItem cartItem = items.get(productId);
if (cartItem.isDrop()) {
cartItem.setDrop(false);
return true;
}
return false;
}
/**
*
*/
public void clear() {
items.clear();
}
/**
*
* @return
* @throws UnsupportedEncodingException
*/
public String serialize() {
StringBuffer sb = new StringBuffer();
sb.append(getUserId()).append("@");
Iterator it = items.keySet().iterator();
while (it.hasNext()) {
CartItem cartItem = (CartItem) items.get(it.next());
Product product = cartItem.getProduct();
sb.append(product.getId()).append("-");
sb.append(cartItem.getNumber()).append("-");
if (cartItem.isDrop()) {
sb.append(1);
} else {
sb.append(0);
}
sb.append("|");
}
return sb.toString();
}
/**
*
* @param content
* @throws DaoException
* @throws UnsupportedEncodingException
*/
public void load(String content) {
Integer userId = Integer.parseInt(content.substring(0, content
.indexOf("@")));
if (userId == getUserId()) {
content = content.substring(content.indexOf("@" + 1));
String[] itemsStr = content.split("|");
for (int i = 0; i < itemsStr.length; i++) {
CartItem cartItem = new CartItem();
String[] cartItemStr = itemsStr[i].split("-");
Integer productId = Integer.parseInt(cartItemStr[0]);
Integer num = Integer.parseInt(cartItemStr[1]);
boolean drop;
if(cartItemStr[3]=="1"){
drop = true;
} else {
drop = false;
}
Product product = productDao.findProductById(productId);
cartItem.setProduct(product);
cartItem.setNumber(num);
cartItem.setDrop(drop);
items.put(productId, cartItem);
}
}
}
/**
*
* @return
*/
public boolean isEmpty() {
return items.isEmpty();
}
/**
*
* @return
*/
public List<CartItem> getItems() {
List<CartItem> list = new ArrayList<CartItem>();
Iterator<Integer> it = items.keySet().iterator();
while (it.hasNext()) {
CartItem item = items.get(it.next());
if (!item.isDrop()) {
list.add(item);
}
}
return list;
}
/**
*
* @return
*/
public List<CartItem> getDropItems() {
List<CartItem> list = new ArrayList<CartItem>();
Iterator<Integer> it = items.keySet().iterator();
while (it.hasNext()) {
CartItem item = items.get(it.next());
if (item.isDrop()) {
list.add(item);
}
}
return list;
}
/**
*
* @return
*/
public double getTotalPrice() {
double totalPrice = 0;
Iterator iterator = items.keySet().iterator();
while (iterator.hasNext()) {
CartItem cartItem = (CartItem) iterator.next();
Product product = cartItem.getProduct();
totalPrice += (double) cartItem.getNumber()
* product.getFixedPrice();
}
return totalPrice;
}
/**
*
* @return
*/
public double getDangPrice() {
double totalPrice = 0;
Iterator iterator = items.keySet().iterator();
while (iterator.hasNext()) {
CartItem cartItem = (CartItem) iterator.next();
Product product = cartItem.getProduct();
totalPrice += (double) cartItem.getNumber()
* product.getDangPrice();
}
return totalPrice;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
当当网java购物网站全套代码 struts框架(包含数据建表sql文件) (568个子文件)
Cart.class 6KB
RegisterAction.class 5KB
UserDaoImpl.class 5KB
Book.class 4KB
BookDaoImpl.class 4KB
TestDao.class 4KB
Product.class 3KB
LoginAction.class 3KB
User.class 3KB
BookListAction.class 3KB
Category.class 2KB
CookieUtil.class 2KB
CartAction.class 2KB
ValidatorNum.class 2KB
ProductDaoImpl.class 2KB
CategoryDaoImpl.class 2KB
AuthorizeUtil.class 2KB
LogoutAction.class 2KB
CategoryAction.class 2KB
LoginInfoAction.class 2KB
ValidateAction.class 2KB
RegisterForm.class 1KB
BookForm.class 1KB
CartItem.class 1KB
LoginForm.class 1KB
RecommendAction.class 1KB
MainAction.class 1KB
HotAction.class 1KB
NewAction.class 1KB
MD5Util.class 1020B
LoginFormAction.class 1011B
DaoFactory.class 990B
HibernateSessionFactory.class 910B
VerifyForm.class 887B
CartForm.class 866B
BookDao.class 656B
UserDao.class 596B
DaoException.class 569B
UUidUtil.class 569B
Contants.class 522B
ProductDao.class 294B
CategoryDao.class 276B
.classpath 3KB
book.css 25KB
second.css 20KB
register_login.css 14KB
book_head090107.css 13KB
login.css 13KB
book1.css 11KB
comm_answer.css 10KB
list.css 10KB
shopping_vehicle.css 9KB
shopping_head.css 5KB
booksaleslist.css 5KB
page_bottom.css 3KB
public_footer.css 2KB
research.css 2KB
product_exp.css 1KB
secBook_Show.css 1KB
navi.css 1KB
pubsug090107.css 555B
Thumbs.db 45KB
Thumbs.db 34KB
Thumbs.db 14KB
Thumbs.db 12KB
Thumbs.db 7KB
Thumbs.db 7KB
Thumbs.db 6KB
Thumbs.db 4KB
Thumbs.db 4KB
Entries 8KB
Entries 2KB
Entries 2KB
Entries 710B
Entries 674B
Entries 383B
Entries 353B
Entries 345B
Entries 340B
Entries 247B
Entries 195B
Entries 192B
Entries 146B
Entries 98B
Entries 84B
Entries 54B
Entries 54B
Entries 53B
Entries 46B
Entries 45B
Entries 43B
Entries 42B
Entries 12B
Entries 12B
ancz081216_button05.gif 25KB
xssj_banner.gif 8KB
d_introduce.gif 5KB
cheap4.gif 4KB
cheap3.gif 4KB
cheap2.gif 4KB
共 568 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
zhengwh510
- 粉丝: 64
- 资源: 1981
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功