Day7

导入地址薄

通过userId将所有的地址修改为非默认地址

public void setDefault(AddressBook addressBook) {
    //1、将当前用户的所有地址修改为非默认地址 update address_book set is_default = ? where user_id = ?
    addressBook.setIsDefault(0);
    addressBook.setUserId(BaseContext.getCurrentId());
    addressBookMapper.updateIsDefaultByUserId(addressBook);

    //2、将当前地址改为默认地址 update address_book set is_default = ? where id = ?
    addressBook.setIsDefault(1);
    addressBookMapper.update(addressBook);
}
@Update("update address_book set is_default = #{isDefault} where user_id = #{userId}")
void updateIsDefaultByUserId(AddressBook addressBook);


用户下单

/**
     * 用户下单
     * @param ordersSubmitDTO
     * @return
     */
    @PostMapping("/submit")
    @ApiOperation("用户下单")
    public Result<OrderSubmitVO> submit(@RequestBody OrdersSubmitDTO ordersSubmitDTO) {
        log.info("用户下单,参数为:{}", ordersSubmitDTO);
        OrderSubmitVO orderSubmitVO = orderService.submitOrder(ordersSubmitDTO);
        return Result.success(orderSubmitVO);
    }
}
/**
 * 用户下单
 * @param ordersSubmitDTO
 * @return
 */
@Transactional
@Override
public OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO) {
    //处理各种业务异常(地址薄为空,购物车数据为空)
    AddressBook addressBook = addressBookMapper.getById(ordersSubmitDTO.getAddressBookId());
    if(addressBook == null){
        throw new AddressBookBusinessException(MessageConstant.ADDRESS_BOOK_IS_NULL);
    }
    //查询当前用户的购物车数据
    Long userId = BaseContext.getCurrentId();
    ShoppingCart shoppingCart = new ShoppingCart();
    shoppingCart.setUserId(userId);
    List<ShoppingCart> shoppingCartList = shoppingCartMapper.list(shoppingCart);
    if(shoppingCartList == null || shoppingCartList.size() == 0){
        throw new ShoppingCartBusinessException(MessageConstant.SHOPPING_CART_IS_NULL);
    }
    //向订单表插入一条数据
    Orders orders = new Orders();
    BeanUtils.copyProperties(ordersSubmitDTO, orders);
    orders.setOrderTime(LocalDateTime.now());
    orders.setPayStatus(Orders.UN_PAID);
    orders.setStatus(Orders.PENDING_PAYMENT);
    orders.setNumber(String.valueOf(System.currentTimeMillis()));
    orders.setPhone(addressBook.getPhone());
    orders.setConsignee(addressBook.getConsignee());
    orders.setUserId(userId);
    orderMapper.insert(orders);
    //向订单明细表插入n条数据
    List<OrderDetail> orderDetailList = new ArrayList<>();
    for(ShoppingCart cart : shoppingCartList){
        OrderDetail orderDetail = new OrderDetail(); //订单明细
        BeanUtils.copyProperties(cart, orderDetail);
        orderDetail.setOrderId(orders.getId());
        orderDetailList.add(orderDetail);
    }
    orderDetailMapper.insertBatch(orderDetailList);
    //清空当前用户的购物车
    shoppingCartMapper.deleteByUserId(userId);
    //封装VO返回结果
    OrderSubmitVO orderSubmitVO = OrderSubmitVO.builder()
            .id(orders.getId())
            .orderTime(orders.getOrderTime())
            .orderNumber(orders.getNumber())
            .orderAmount(orders.getAmount())
            .build();

    return orderSubmitVO;
}


订单支付

image

posted @ 2025-07-23 11:18  li_hc  阅读(6)  评论(0)    收藏  举报