电商项目笔记之六:订单操作



手里的项目没有支付宝相关的代码 比较遗憾, 刚才网上查了一下 貌似支付宝和struts的接口也不是太难 ,有机会再试试吧


一:提交订单

	public String add() throws Exception {
		order.setName(getLoginCustomer().getUsername());
		order.setAddress(getLoginCustomer().getAddress());
		order.setMobile(getLoginCustomer().getMobile());
		return ADD;
	}


付款方式前台传到后台就没处理
货到付款

我看支付宝的帮助,要在action里准备一个Map,然后put进一系列认证号 然后是总价 最后是成功后返回的url (这些应该在订单的保存之后执行, 成功与否都要在数据库中再更新一下)




二:订单的保存


	public String save() throws Exception {
		if(getLoginCustomer() != null){//如果用户已登录
			order.setOrderId(StringUitl.createOrderId());// 设置订单号
			order.setCustomer(getLoginCustomer());// 设置所属用户
			Set cart = getCart();// 获取购物车
			if(cart.isEmpty()){//判断条目信息是否为空
				return ERROR;//返回订单信息错误提示页面
			}
			// 依次将更新订单项中的商品的销售数量
			for(OrderItem item : cart){//遍历购物车中的订单条目信息
				Integer productId = item.getProductId();//获取商品ID
				ProductInfo product = productDao.load(productId);//装载商品对象
				product.setSellCount(product.getSellCount() + item.getAmount());//更新商品销售数量
				productDao.update(product);//修改商品信息
			}
			order.setOrderItems(cart);// 设置订单项
			order.setOrderState(OrderState.DELIVERED);// 设置订单状态
			float totalPrice = 0f;// 计算总额的变量
			for (OrderItem orderItem : cart) {//遍历购物车中的订单条目信息
				totalPrice += orderItem.getProductPrice() * orderItem.getAmount();//商品单价*商品数量
			}
			order.setTotalPrice(totalPrice);//设置订单的总价格
			orderDao.save(order);//保存订单信息
			session.remove("cart");// 清空购物车
		}
		return findByCustomer();//返回消费者订单查询的方法
	}



	public String findByCustomer() throws Exception {
		if(getLoginCustomer() != null){//如果用户已登录
			String where = "where customer.id = ?";//将用户id设置为查询条件
			Object[] queryParams = {getLoginCustomer().getId()};//创建对象数组
			Map orderby = new HashMap(1);//创建Map集合
			orderby.put("createTime", "desc");//设置排序条件及方式
			pageModel = orderDao.find(where, queryParams, orderby , pageNo, pageSize);//执行查询方法
		}
		return LIST;//返回订单列表页面
	}












你可能感兴趣的:(电商项目笔记之六:订单操作)