JAVA全系列 教程
3762个小节阅读:7091.8k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
用户从购物车选中要下单的商品,下单成功后,生成订单数据保存到数据库,并将该商品从用户购物车中删除:
在订单服务模块编写购物车商品Mapper和订单Mapper
xxxxxxxxxx
public interface CartGoodsMapper extends BaseMapper<CartGoods> {
}
public interface OrdersMapper extends BaseMapper<Orders> {
}
在订单服务模块编写订单服务接口实现类
xxxxxxxxxx
@DubboService
public class OrdersServiceImpl implements OrdersService {
@Autowired
private OrdersMapper ordersMapper;
@Autowired
private CartGoodsMapper cartGoodsMapper;
@Override
public Orders add(Orders orders) {
// 订单状态未付款
orders.setStatus(1);
// 订单创建时间
orders.setCreateTime(new Date());
// 计算订单价格,遍历订单所有商品
List<CartGoods> cartGoods = orders.getCartGoods();
BigDecimal sum = BigDecimal.ZERO;
for (CartGoods cartGood : cartGoods) {
// 数量
BigDecimal num = new BigDecimal(cartGood.getNum());
// 单价
BigDecimal price = cartGood.getPrice();
// 数量*单价
BigDecimal multiply = num.multiply(price);
sum = sum.add(multiply);
}
orders.setPayment(sum);
// 保存订单
ordersMapper.insert(orders);
for (CartGoods cartGood : cartGoods) {
// 购物车商品保存到数据库中
cartGood.setOrderId(orders.getId());
cartGoodsMapper.insert(cartGood);
}
return orders;
}
}
在订单Api模块编写订单控制器
xxxxxxxxxx
@RestController
@RequestMapping("/user/orders")
public class OrdersController {
@DubboReference
private OrderService orderService;
@DubboReference
private CartService cartService;
/**
* 生成订单
* @param orders 订单对象
* @param token 令牌
* @return 生成的订单
*/
@PostMapping("/add")
public BaseResult<Orders> add(@RequestBody Orders orders, @RequestHeader String token){
Long userId = JWTUtil.getId(token);// 获取用户id
orders.setUserId(userId);
// 保存订单
Orders orders1 = orderService.add(orders);
// 将redis中购物车商品删除
List<CartGoods> cartGoods = orders.getCartGoods();
for (CartGoods cartGood : cartGoods) {
cartService.deleteCartOption(userId,cartGood.getGoodId());
}
return BaseResult.ok(orders1);
}
}