当前位置: 首页 > news >正文

购物车实现类

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

package com.xxx.service.impl;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.xxx.dao.CartDAO;
import com.xxx.dao.impl.JdbcCartDAO;
import com.xxx.entity.CartItem;
import com.xxx.entity.Product;
import com.xxx.service.CartService;

public class CartServiceImpl implements CartService{
	List<CartItem> items = new ArrayList<CartItem>();
	//增加商品
	public boolean add(int id) throws SQLException {
		for(CartItem item: items) {
			if(item.getPro().getId() == id) {
                                     //判断是否购买过
				if(item.isBuy()) {
					item.setQty(item.getQty()+1);
					return true;
				}
			}
			return false;//数据库出现错误,没有该商品
		}
		CartItem item = new CartItem();
		CartDAO dao = new JdbcCartDAO();
		Product pro = dao.findById(id);
		item.setPro(pro);
		item.setQty(1);
		item.setBuy(true);
		return true;
	}
	//删除商品
	public void delete(int id) throws SQLException {
		for(CartItem item: items) {
			if(item.getPro().getId() == id) {
				item.setBuy(false);
			}
		}
	}
	//恢复删除的商品
	public void recovery(int id) throws SQLException {
		for(CartItem item: items) {
			if(item.getPro().getId() == id) {
				item.setBuy(true);
			}
		}
	}
	//更新商品数量
	public void update(int id, int pnum) throws SQLException {
		for(CartItem item: items) {
			if(item.getPro().getId() == id) {
				if(item.getQty() == 0) {
					delete(id);
				} else {
					item.setQty(pnum);
				}
			}
		}
	}
	//获取购买过的商品
	public List<CartItem> getBuyPros() throws SQLException {
		List<CartItem> list = new ArrayList<CartItem>();
		for(CartItem item: items) {
			if(item.isBuy()) {
				list.add(item);
			}
		}
		if(list.size() > 0) {
			return list;
		}
		return null;
	}
	//获取已经删除的商品(可以恢复)
	public List<CartItem> getDelPros() throws SQLException {
		List<CartItem> list = new ArrayList<CartItem>();
		for(CartItem item: items) {
			if(!item.isBuy()) {
				list.add(item);
			}
		}
		if(list.size() > 0) {
			return list;
		}
		return null;
	}
	//商品消费总额
	public double cost() throws SQLException {
		double total = 0;
		for(CartItem item: items) {
			if(item.isBuy()) {
				total += item.getQty()*item.getPro().getPrice();
			}
		}
		return total;
	}
	//清空购物车
	public void clear() throws Exception {
		items.clear();
	}
	
}

转载于:https://my.oschina.net/bv10000/blog/101583

相关文章:

  • MAC本遭遇ARP攻击的处理办法
  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • 序列号
  • Android Parcelable和Serializable的区别
  • VHD windows7 U盘系统制作流程(自己整理)
  • 5、线程终止方式:(转)
  • php 导出txt文件 内容换行
  • Facebook团队关于Hadoop/HBase在SSD上的实验和讨论(转)
  • oracle db_link
  • Windows Phone 8 Wallet 手机钱包 / 电子钱包
  • jython - 安装
  • STOverlay
  • 学习地址
  • DR模式
  • oracle 不可见索引
  • php的引用
  • .pyc 想到的一些问题
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Java编程思想》读书笔记-对象导论
  • crontab执行失败的多种原因
  • Hibernate【inverse和cascade属性】知识要点
  • node和express搭建代理服务器(源码)
  • React16时代,该用什么姿势写 React ?
  • REST架构的思考
  • SSH 免密登录
  • uni-app项目数字滚动
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 分享一份非常强势的Android面试题
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 数据仓库的几种建模方法
  • 优化 Vue 项目编译文件大小
  • 鱼骨图 - 如何绘制?
  • ​2021半年盘点,不想你错过的重磅新书
  • # 透过事物看本质的能力怎么培养?
  • #数学建模# 线性规划问题的Matlab求解
  • (13)Hive调优——动态分区导致的小文件问题
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (转)setTimeout 和 setInterval 的区别
  • .apk文件,IIS不支持下载解决
  • .htaccess配置重写url引擎
  • .net 无限分类
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .net连接MySQL的方法
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .net专家(张羿专栏)
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @ResponseBody
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [20170713] 无法访问SQL Server
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [C#7] 1.Tuples(元组)