0%

订单管理模块

2018年3月1日 上午11:38

简单理解这个模块的方法,看看京东订单页有啥就知道的!!

特别提醒:我在学这个模块的时候,就觉得乱七八糟的,跟不上老师的思路,我后来发现其实是我没有在一开始就弄弄懂在这个模块到底要实现哪些功能。在听课的时候,应该先把最终的目的去弄明白,去跟上老师的思路就很简单了。判断的方法:就是能够看懂接口文档中每个接口是干啥的!!!!文档预览 - 码云 Gitee.com

学习目标:

  1. 避免业务逻辑中横向越权和纵向越权等安全漏洞

  2. 设计实用、安全、扩展性强大的常量、枚举类

    1. 根据所给参数,起最后的结果是一个一个字符串而已
    2. 这里为啥会通过传参的形式去获取一个common/Const类下的字符串变量,前面的几个模块中都是直接获取,没有参数一说?
      1. 原因:从数据库表中可以看出:
    3. 在common/Const中的写法
    4. 具体的使用:
  3. 订单号生产规则、订单严谨性判断

    1. 订单号并发时不可重复,当插入到数据库时,由于数据库唯一主键,则会出现一方下单失败
  4. POJO和VO之间的实际操练

    1. 首先要理解为啥要有有组合VO的出现:
      1. 这是我们业务要求的。业务要求我们要有给前端的返回值就必须包括Order,OrderItem,Shipping这三张表的信息
      2. 那么,我们自然就需要拼凑一个符合的VO来满足业务的要求
    2. 在_order_create.do接口的返回responseService中的data是OrderVo
    3. OrderVo包含List和ShippingVo
  5. mybatis批量插入

    1. MyBatis语法简单说明中第二部分

订单模块可以说是最复杂的模块

  1. 涉及到5张表
    1. product中更新库存
    2. order中生成订单
    3. order_item中保存订单中的具体product
    4. shipping进行配货地址管理
    5. payinfo保存订单支付的详细信息
  2. 同时,这也造成了会有上面复杂的vo组合关系出现