| | |
| | | return new OrderReviewResponse(review); |
| | | } |
| | | |
| | | public OrderReviewResponse detailByOrder(Long visitorId, Long orderId) { |
| | | TourOrder order = orderMapper.selectById(orderId); |
| | | if (order == null) throw new BusinessException(404, "order not found"); |
| | | if (order.getVisitorId() == null || !order.getVisitorId().equals(visitorId)) { |
| | | throw new BusinessException(403, "cannot view another visitor's review"); |
| | | } |
| | | |
| | | OrderReview review = reviewMapper.selectOne(new LambdaQueryWrapper<OrderReview>() |
| | | .eq(OrderReview::getOrderId, orderId) |
| | | .eq(OrderReview::getStatus, 1) |
| | | .last("LIMIT 1")); |
| | | if (review == null) throw new BusinessException(404, "review not found"); |
| | | return new OrderReviewResponse(review); |
| | | } |
| | | |
| | | @Transactional |
| | | public void delete(Long id) { |
| | | OrderReview review = reviewMapper.selectById(id); |