taotao订单系统

需要注意的地方:

1、下订单功能一定要使用关系型数据库,因为其设计到钱,而noSql数据库相比来说丢失数据的风险更大。

但是查看订单列表、查看订单详情等功能则可以使用redis缓存来提高效率,因为其不涉及到钱的操作,只是展示给客户看。

2、订单系统还要注意,不能重复提交,比如用户下完订单后,如果点浏览器的后退功能,不能让用户再次退回到下单前的页面等。

3、其实还有个功能,是修改订单状态。

刚下单是下单未付款状态,付完款是 未发货状态,然后是发货状态,签收完成状态。

4、订单表的id生成策略

订单表的主键 id 不能用自增长,因为商城系统中订单实际上是会非常多的,数据量超大,后面很大可能要分表或者分库,而自增主键一般只能用在一个表中。

 

5、创建订单时的,Controller层数据的接收方式,以及测试时用 RESTClient是如何发送json格式数据的

强制用户登录的目的就是要根据用户id查询用户的收货地址,以便拼接用户订单。

前台表单,后台springMVCController接收时要注意,spirngMVC的参数接收方式。

首先,我们后台用一个大对象来接收所有数据。其中 paymentType等是大对象的直接属性。

orderItems是大对象中的一个属性,这个属性是一个对象集合List,而后台要使用LIst接收参数,前台要写成 1大属性名,2大属性集合中某一个元素的在集合中的角标,3集合中某一个元素的属性即:orderItems[3].itemId 这种格式。

大对象中还有一个属性是一个对象,而前台提交时,要写成4大对象的属性名,5大对象中属性所表示对象的属性 这种格式。

这个用于接收订单的大对象就是我们之前根据订单创建接口文档创建的订单对象。

返回值:返回一个jsp页面

 

如果Portal项目中出现异常,前台返回友好的错误页面,后台在Controller中要统一捕获,然后通过邮件和短信通知相关开发人员,迅速解决问题。

如果后台订单项目添加订单成功并返回了,但是这时前台项目portal项目报错了,那么就会造成后台数据库中添加进来多条订单,但是前台因为报错,却不知道,所以这时可以,在前台添加订单报错时,捕获,然后用拿到的订单号再调用一个服务去后台删除数据库中刚刚添加的订单。

后端order项目代码:

Controller:

猜你喜欢

转载自www.cnblogs.com/libin6505/p/9930648.html
今日推荐