From 44c4525dbfbc963f10accedb375247298deb8a5c Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Thu, 24 Apr 2025 17:32:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cdzy/common/model/ResGPSDto.java | 3 +++ .../cdzy/orders/model/dto/res/RspBikeDto.java | 9 +++++++ .../orders/service/UserOrdersService.java | 6 +++++ .../service/impl/UserOrdersServiceImpl.java | 26 ++++++++++++++++--- .../java/com/cdzy/orders/uitls/RedisUtil.java | 9 +++++++ 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/ebike-common/src/main/java/com/cdzy/common/model/ResGPSDto.java b/ebike-common/src/main/java/com/cdzy/common/model/ResGPSDto.java index c7b7d626..9726ba90 100644 --- a/ebike-common/src/main/java/com/cdzy/common/model/ResGPSDto.java +++ b/ebike-common/src/main/java/com/cdzy/common/model/ResGPSDto.java @@ -89,5 +89,8 @@ public class ResGPSDto { */ private String chineseLocation; + /** + * ecuSn + */ private String ecuSn; } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/RspBikeDto.java b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/RspBikeDto.java index 0f51797c..e84e6d9d 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/RspBikeDto.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/RspBikeDto.java @@ -16,4 +16,13 @@ public class RspBikeDto { private Integer soc; private Double longitude; private Double latitude; + private String status = "正常"; + private Float mileage = 35.5F; + + public RspBikeDto(String ecuSn, Integer soc, Double longitude, Double latitude) { + this.ecuSn = ecuSn; + this.soc = soc; + this.longitude = longitude; + this.latitude = latitude; + } } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java b/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java index ad2c77c8..4bfa9f9c 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/UserOrdersService.java @@ -91,4 +91,10 @@ public interface UserOrdersService extends IService { * @param orderId 订单ID */ void doneRefund(Long orderId); + + /** + * 车辆详情 + * @param ecuSn scusn + */ + List bikeInfo(String ecuSn); } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java index e7088dea..1f023d1b 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java @@ -134,6 +134,12 @@ public class UserOrdersServiceImpl extends ServiceImpl bikeList(ReqBikeDto bikeDto) { List nearbyMembers = redisUtil.findNearbyMembers(bikeDto.getLongitude(), bikeDto.getLatitude(), bikeDto.getRadius() == null ? 3.0 : bikeDto.getRadius()); + List list = nearbyMembers.stream().map(RedisPoint::getMember).toList(); + List objects = redisUtil.multiGet(list); return nearbyMembers.stream().filter(Objects::nonNull).map(redisPoint -> { - String jsonString = JSONObject.toJSONString(redisUtil.get(redisPoint.getMember())); - ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class); - return new RspBikeDto(redisPoint.getMember(), resGpsDto.getSoc(), redisPoint.getPoint().getX(), redisPoint.getPoint().getY()); - }).toList(); + for (Object object : objects) { + String jsonString = JSONObject.toJSONString(object); + ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class); + if (resGpsDto.getEcuSn().equals(redisPoint.getMember())){ + return new RspBikeDto(redisPoint.getMember(), resGpsDto.getSoc(), redisPoint.getPoint().getX(), redisPoint.getPoint().getY()); + } + } + return null; + }).filter(Objects::nonNull).toList(); } @Override @@ -295,6 +308,11 @@ public class UserOrdersServiceImpl extends ServiceImpl bikeInfo(String ecuSn) { + return List.of(); + } + @Override public void payment(ResFeignOrderPaymentDto paymentDto) { UserOrders userOrders = this.mapper.selectOneById(paymentDto.getOrderId()); diff --git a/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java b/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java index a25846ed..2f637dff 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java @@ -530,6 +530,15 @@ public class RedisUtil { return redisTemplate.opsForValue().get(key); } + /** + * 批量获取值 + * + * @param keyList 键 + */ + public List multiGet(List keyList) { + return redisTemplate.opsForValue().multiGet(keyList); + } + /** * 自增操作(增量=1) *