订单系统

订单系统

购物车页面有一个去结算按钮,点击按钮,跳转到确认订单页面。

在购物车中选中要购买的商品,点击去结算按钮(传过来的参数有商品id和商品数量num

业务逻辑:

判断用户是否登录

拦截器:

1. Cookie中取token

2. 如果token为空,说明用户未登录,需要跳转到登录页面进行登录。在重定向到登录页面时,要将当前系统的url作为参数传过来,以便登录成功之后能再跳转到当前系统。

3. 如果token不为空,要调用单点登录系统中的服务,根据token验证用户信息是否存在

如果不存在,说明用户登录已经过期,需要跳转到登录页面重新登录。在重定向到登录页面时,要将当前系统的url作为参数传过来,以便登录成功之后能再跳转到当前系统。

如果存在,说明用户已经登录,将当前用户信息存入request中,传给Controller

 

Controller

1.获取用户信息

2.根据用户id查询用户的收获地址列表(使用静态数据)

3.根据商品id去数据库中查出要购买的商品列表

4.将地址列表和商品列表传递给jsp

5.返回确认订单页面

 

当你确认订单信息无误后,点击提交订单按钮。(页面会传过来很多参数信息,服务端用封装的pojo来接收)

 

提交订单,就是分别向数据库中的订单表order、订单商品表order_item、订单物流表order_shipping插入记录。(订单表和订单商品表是一对多关系,订单表和订单物流表是一对一关系)

 

业务逻辑:

 

判断用户是否登录

拦截器:

1. Cookie中取token

2. 如果token为空,说明用户未登录,需要跳转到登录页面进行登录。在重定向到登录页面时,要将当前系统的url作为参数传过来,以便登录成功之后能再跳转到当前系统。

3. 如果token不为空,要调用单点登录系统中的服务,根据token验证用户信息是否存在

如果不存在,说明用户登录已经过期,需要跳转到登录页面重新登录。在重定向到登录页面时,要将当前系统的url作为参数传过来,以便登录成功之后能再跳转到当前系统。

如果存在,说明用户已经登录,将当前用户信息存入request中,传给Controller

 

Controller:

1. 获取用户信息

2. 生成订单号(使用redisincr命令生成订单号,赋初始值)

3. 补全order对象的属性(需要补orderIdstatususerIdcreateTimeupdateTime等,其它属性页面传)

4. 插入订单表

5. 补全order_item对象的属性(需要补orderIdcreateTimeupdateTime等,其它属性页面传)

6. 插入订单商品表

7. 补全order_shipping对象的属性(需要补orderIdcreateTimeupdateTime等,其它属性页面传)

8. 插入订单物流表

9. 把订单号传递给jsp

10. 返回逻辑视图(支付页面)

 

 

 

 

猜你喜欢

转载自blog.csdn.net/lz1170063911/article/details/80069959