地址簿
数据库表设计
就是基本增删改查,与前面的类似。
用户下单
用户点餐业务流程:
购物车-订单提交-订单支付-下单成功
展示购物车数据,不需要提交到后端
数据库设计:两个表【订单表orders,订单明细表order_detail】
DTO:
VO:
controller:
@RestController("UserOrderController")//作为Bean名称,避免与admin端名称重复
@RequestMapping("/user/order")
@Api(tags = "B端用户订单接口")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping("/submit")
@ApiOperation("用户下单")
public Result<OrderSubmitVO> submit(@RequestBody OrdersSubmitDTO submitDTO){
return Result.success(orderService.submit(submitDTO));//传入DTO返回VO
}
service :
@Transactional/
/设计几多个数据表,需要保证数据一致性,需要事务注解–保证原子性,全成功或全失败
@Transactional//事务注解 -方法执行完提交才插入
@Override
public OrderSubmitVO submit(OrdersSubmitDTO submitDTO) {
//处理各种业务异常检查(地址是否为空,购物车是否为空)
AddressBook addressBook = addressBookMapper.getById(submitDTO.getAddressBookId());
if (addressBook == null) {
throw new AddressBookBusinessException(MessageConstant.ADDRESS_BOOK_IS_NULL);