需求分析
移动端用户将菜品或套餐加入购物车后,点击去结算按钮,页面跳转到订单确认页面,点击去支付按钮则完成下单操作。
数据模型
orders:订单表。
order_detail:订单明细表。
代码开发
梳理交互过程
在代码开发前,让我们先梳理下前端页面和服务端的交互过程:
- 在购物车页面中点击去结算按钮,页面跳转到订单确认页面。
- 在订单确认页面发送ajax请求,请求服务端获取当前登录用户的默认地址。
- 在订单确认页面发送ajax请求,请求服务端获取当前登录用户的购物车数据。
- 在订单确认页面,点击去支付按钮,请求服务端完成下单操作。
在开发前先搭建好类和接口所需要的基本环境。
controller层
/**
*用户下单
* @param orders
* @return
*/
@PostMapping("/submit")
public R<String> submit(@RequestBody Orders orders){
orderService.submit(orders);
return R.success("下单成功");
}
service层
/**
* 用户下单
*
* @param orders
* @return
*/
@Override
@Transactional
public void submit(Orders orders) {
// 获取用户的id。
Long userId = BaseContext.getCurrentId();
// 查询购物车菜品或套餐数据。
LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ShoppingCart::getUserId, userId);
List<ShoppingCart> shoppingCartList = shoppingCartService