web商城项目笔记-4.生成订单功能

Source

先在数据库添加订单表和订单项表
创建订单和订单项的JavaBean

生成订单:

本质就是将session里的购物车信息保存到数据库中
将cart对象 封装成订单对象保存到数据库
将cart对象 购物项封装成订单项保存到数据库
1.前端:
	1.把提交订单的a标签效果清空,按钮类型改为button,绑定点击事件
	2.定义提交订单函数,直接发请求不用提交任何参数,因为所有内容
		存储在session里
	3.发送ajax请求 方法submitOrder 没有参数
	4.判断返回数据,如果是2代表未登录,跳转到登录页面
	5.如果为0代表购物车为空,在购物车详情div中添加一个id
		获取div在里面追加一个拼接的div显示message字段

2.后端:
	  先决条件必须登录
	  购物车不能为空
	  1.获取session对象,获取里面的user对象
	  2.判断user是否为空,如果为空调用父类nologin方法返回信息
		return结束程序
	  3.购物车不能为空,把getCart方法封装到父类方法中
		调用getcart获取购物车,判断cart中item集合为空
		返回fail信息购物车是空的,return结束程序
	  4.创建order对象,把cart转化成order,自己set添加属性值
		注意state使用global设置好的字段,ordertime newDate
		oid使用UUIDUtil随机生成
	  5.创建一个泛型orderItem的ArrayList,用来保存订单项对象	
	  6.把cart 购物项item转化成订单项
		获取cart中的item集合,遍历集合,创建orderitem订单项对象
		自己set添加属性值,
	  7.调用service方法把订单和订单项保存到数据库
	  8.返回成功信息.
	  9.service层开启事物:
			1.DataSourceUtil.begin开启事物 报错try catch
			2.commit提交事物
			3.rollback回滚事物
	  10.service层调用dao保存数据,注意遍历订单项集合再保存订单对象
	  11.开启事物管理后不能在qr中getDataSource创建连接,这样使用的连接和
			事物管理中的连接不一样,要在执行语句时传入连接getconnection,
			使用insert语句保存到数据库