SSH框架搭建电商系统之购物车表与购物车和商品库存问题(不用jquery)

1.购物车表的结构

	//购物车ID
	private int cartId;
	//商品ID
	private int productId;
	//商品购买数量
	private int productNum;
	//商品当前单价
	private double price;
	//用户ID
	private int userId;
	//购物车表单创建时间
	private Product product;
	
	private Date createTime;
	
	//购物车中以保存商品的数量
	private int productOldNum;

2.查询购物车中所有数据,并更新到session中

	private void findAll(){
		User user = (User) ActionContext.getContext().getSession().get("existUser");
			//查询该用户购物车中所有的商品,存入session
			List existCarts = cartService.findByUserId(user);
			double totalMoney = 0;
			for(int i=0;i


3.单页商品页保存到购物车方法,其中productOldNum用来存放当前选择的商品个数,为了之后修改商品个数时修改库存做准备。

新创建的购物车单,定于ProductOldNum=0

思路:修改的库存=product原有的库存-新选择的商品数productNum+之前选择的商品数productOldNum

在接受productId后,将该商品数据库中的productOldNum放入session中(更新后为提交的购买商品数量)。


	public String saveUI(){
		User user = (User) ActionContext.getContext().getSession().get("existUser");
		Product product = (Product)ActionContext.getContext().getSession().get("clickProduct");
		//若不是单页传递的数值,则通过接收的商品ID查询商品
		if(product==null)
		{
			String productIdnum[]=(String[])ActionContext.getContext().getParameters().get("productIdnum");
			int productId = Integer.valueOf(productIdnum[0].trim());
			System.out.println("商品Id"+productId);
			product = cartService.productFindById(productId);
		}
		if(user!=null){
			//取传过来的参数
			String quantity[]=(String[])ActionContext.getContext().getParameters().get("quantity");
			System.out.println(product.toString());
			if(quantity!=null){
				cart.setProductNum(Integer.valueOf(quantity[0].trim()));
			}
			
			int cartId = cartService.findByUserIdAndProductId(user.getUserId(),product.getProductId());
			cart.setUserId(user.getUserId());
			cart.setProductId(product.getProductId());
			if(product.getIsSale()==0){
				cart.setPrice(product.getPrice());
			}else{
				cart.setPrice(product.getSalePrice());
			}
			if(cart.getProductNum()==0){
				cart.setProductNum(1);
			}
			cart.setCreateTime(new Date());
			int oldNum=0;
			if(cartId==0){
				cart = cartService.save(cart);	
			}else{
				cart.setCartId(cartId);
				oldNum = cartService.findByCartId(cartId).getProductOldNum();
				cart = cartService.update(cart);
			}
			System.out.println(cart.toString());
			System.out.println(oldNum);
			//减少商品对应的库存
			product.setProductNum(product.getProductNum()-cart.getProductNum()+oldNum);
			cartService.update(product);
			cart.setProductOldNum(cart.getProductNum());
			
			cartService.update(cart);
			int productOldNum1 = cart.getProductOldNum();
			System.out.println("这是值productOldNum1阿!!!"+productOldNum1);
			//查询该用户购物车中所有的商品,存入session
			List existCarts = cartService.findByUserId(user);
			double totalMoney = 0;
			for(int i=0;i


4.显示单页时做一个的判断(该值为存入session中的productOldNum)

若为0,则显示单件为1。若不为0,则显示购物车中的数量。

你可能感兴趣的:(自我成长)