diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/OrderValidator.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/OrderValidator.java index cf9d93a..e8afc76 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/OrderValidator.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/OrderValidator.java @@ -96,5 +96,9 @@ public interface OrderValidator { * @return 是否超时 */ boolean isTimeout(OrderVO order); - + + /** + * 是否是用户 + */ + boolean isUser(Long orderId, Long userId); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java index 9cb0b4f..fcdc3e6 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/order/service/impl/OrderValidatorImpl.java @@ -236,4 +236,10 @@ public class OrderValidatorImpl implements OrderValidator{ public boolean isTimeout(OrderVO order) { return order != null && order.getMaxTime() != null && order.getMaxTime().isBefore(LocalDateTime.now()); } + + @Override + public boolean isUser(Long orderId, Long userId) { + OrderVO order = orderMapper.selectOrderById(orderId); + return isUser(order, userId); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/service/impl/RefundConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/service/impl/RefundConverterImpl.java index 473d62c..17fdb51 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/refund/service/impl/RefundConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/refund/service/impl/RefundConverterImpl.java @@ -22,6 +22,7 @@ public class RefundConverterImpl implements RefundConverter{ refund.setReason(dto.getRefundReason()); refund.setUserId(dto.getUserId()); refund.setUserName(dto.getUserName()); + refund.setType(dto.getType()); return refund; } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceIotController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceIotController.java index 6b39453..f01f8bd 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceIotController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceIotController.java @@ -50,6 +50,7 @@ public class AppDeviceIotController extends BaseController { ServiceUtil.assertion(device == null, "当前车辆不存在,无法响铃寻车"); if (device.getAreaRequiredRingRadius() != null && device.getAreaRequiredRingRadius()) { + ServiceUtil.assertion(lon == null || lat == null, "请开启定位后重试"); BigDecimal distance = GeoUtils.calculateDistance(device.getLatitude(), device.getLongitude(), lat, lon); ServiceUtil.assertion(MathUtils.biggerThan(distance, device.getAreaRingRadius()), "您当前距离车辆%s米,无法响铃寻车。请距离车辆%s米以内再试", distance, device.getAreaRingRadius()); diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppLocationLogController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppLocationLogController.java index 68bfab0..d7ff8d3 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppLocationLogController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppLocationLogController.java @@ -1,12 +1,51 @@ package com.ruoyi.web.app; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.bst.locationLog.domain.LocationLogQuery; +import com.ruoyi.bst.locationLog.domain.LocationLogVO; +import com.ruoyi.bst.locationLog.service.LocationLogService; +import com.ruoyi.bst.order.service.OrderValidator; import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; + +import io.swagger.annotations.ApiOperation; + @RestController @RequestMapping("/app/locationLog") public class AppLocationLogController extends BaseController { + + @Autowired + private LocationLogService locationLogService; + + @Autowired + private OrderValidator orderValidator; + + private boolean canView(Long orderId) { + return orderValidator.isUser(orderId, getUserId()); + } + + @ApiOperation("根据订单ID查询定位日志") + @GetMapping("/allByOrder") + public AjaxResult getAllByOrder(Long orderId) { + if (orderId == null) { + return error("订单ID不允许为空"); + } + if (!canView(orderId)) { + return error("您无权查看ID为" + orderId + "的订单轨迹"); + } + + LocationLogQuery query = new LocationLogQuery(); + query.setOrderId(orderId); + List list = locationLogService.selectLocationLogList(query); + return success(list); + } + }