文章目录 取消订单 OrderController OrderService OrderServiceImpl 再来一单 OrderController OrderService OrderServiceImpl
取消订单
OrderController
java"> @PutMapping ( "/cancel/{id}" ) @ApiOperation ( "取消订单" ) public Result cancel ( @PathVariable ( "id" ) Long id) throws Exception { orderService. userCancelById ( id) ; return Result . success ( ) ; }
OrderService
java">void userCancelById ( Long id) throws Exception ;
OrderServiceImpl
java">@Transactional @Override public void userCancelById ( Long id) throws Exception { Orders ordersDB = orderMapper. selectById ( id) ; if ( ordersDB == null ) { throw new OrderBusinessException ( MessageConstant . ORDER_NOT_FOUND) ; } if ( ordersDB. getStatus ( ) > 2 ) { throw new OrderBusinessException ( MessageConstant . ORDER_STATUS_ERROR) ; } Orders orders = Orders . builder ( ) . id ( ordersDB. getId ( ) ) . status ( Orders . CANCELLED) . cancelReason ( "用户取消" ) . cancelTime ( LocalDateTime . now ( ) ) . build ( ) ; if ( ordersDB. getStatus ( ) . equals ( Orders . TO_BE_CONFIRMED) ) {
orders. setPayStatus ( Orders . REFUND) ; } orderMapper. update ( orders, new LambdaQueryWrapper < Orders > ( ) . eq ( Orders :: getId , id) ) ; }
再来一单
OrderController
java"> @PostMapping ( "/repetition/{id}" ) @ApiOperation ( "再来一单" ) public Result repetition ( @PathVariable Long id) { orderService. repetition ( id) ; return Result . success ( ) ; }
OrderService
java">void repetition ( Long id) ;
OrderServiceImpl
java"> @Override @Transactional public void repetition ( Long id) { Long userId = BaseContext . getCurrentId ( ) ; LambdaQueryWrapper < OrderDetail > queryWrapper = new LambdaQueryWrapper < > ( ) ; queryWrapper. eq ( OrderDetail :: getOrderId , id) ; List < OrderDetail > orderDetailList = orderDetailMapper. selectList ( queryWrapper) ; List < ShoppingCart > shoppingCartList = orderDetailList. stream ( ) . map ( x -> { ShoppingCart shoppingCart = new ShoppingCart ( ) ; BeanUtils . copyProperties ( x, shoppingCart, "id" ) ; shoppingCart. setUserId ( userId) ; shoppingCart. setCreateTime ( LocalDateTime . now ( ) ) ; return shoppingCart; } ) . collect ( Collectors . toList ( ) ) ; MybatisBatch < ShoppingCart > mybatisBatch = new MybatisBatch < > ( sqlSessionFactory, shoppingCartList) ; MybatisBatch. Method < ShoppingCart > method = new MybatisBatch. Method < > ( ShoppingCartMapper . class ) ; mybatisBatch. execute ( method. insert ( ) ) ; }