上级目录:购物车模块
1. CartVo:
返回前端VO(View Objiect)对象统一封装逻辑
根据用户编号获取对应的购物车列表
购物车列表非空
遍历购物车列表,读单个购物车信息进行VO封装
封装购物车固有属性,包括购物车ID,用户ID,是否选中
根据购物车产品ID获取对应产品对象
商品对象非空
封装购物车中关于商品的属性,包括商品ID,商品主图,商品副标题,商品价格,商品名,商品状态,商品库存
判断库存是否大于购买数量
库存小于购买数量
设置购买量为库存量
设置超出库存标识
库存大于等于购买数量
正常购买量
设置没有查出库存标识
设置该商品购买总花费:单价乘以购买数量
商品对象为空
continue,跳过该轮,进行下一轮商品封装
根据商品勾选状态判断是否计入购物车总价
将单个封装成功的购物车商品CartProductVO,封装进List<CartProductVO>
遍历购物车列表完成
判断购物车内商品是否是全选的状态,在CartVo中分别设置
封装返回前端CartVO,封装属性包括购物车商品列表List<CartProductVO>,用户购物车总价,商品是否 全选状态
非空判断完成
返回CartVo对象
完成核心方法的封装之后其他的就很简单了,贯彻的思想可以修改为DAO与Service高复用,Controller保持唯一性
2. 购物车添加模块
判断当前用户是否登录,如果没有强制登录
- 判断参数是否错误,如果错误返回参数错误
- 判断根据用户编号和产品编号获取商品记录在购物车是否存在,如果不存在则新增一个产品的记录,如果存在则修改产品在购物车数量即可
- 返回CartVO对象即可
3. 修改购物车记录
- 判断当前用户是否登录,如果没有强制登录
- 判断根据用户编号和商品编号获取商品记录在购物车是否存在,如果存在修改商品购买数量,不存在不予修改
- 返回CartVO对象即可
4. 删除购物车信息
- 判断商品集合是否为空,如果为空返回商品参数错误
- 删除商品列表
- 返回CartVO对象即可
5. 查询购物车列表
- 返回CartVO对象即可
6. 选择或者反选
- 根据用户编号,商品编号,选择标志修改选择状态,如果商品编号为空则全选或者全反选
- 返回CartVO对象即可
7. 获取购物车数量
- 判断用户编号是否为空,如果为空则返回数量是0
- 返回根据用户编号获取的购物车产品数量