车辆信息

This commit is contained in:
attiya 2025-04-24 17:32:29 +08:00
parent 03e676af5b
commit 44c4525dbf
5 changed files with 49 additions and 4 deletions

View File

@ -89,5 +89,8 @@ public class ResGPSDto {
*/ */
private String chineseLocation; private String chineseLocation;
/**
* ecuSn
*/
private String ecuSn; private String ecuSn;
} }

View File

@ -16,4 +16,13 @@ public class RspBikeDto {
private Integer soc; private Integer soc;
private Double longitude; private Double longitude;
private Double latitude; 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;
}
} }

View File

@ -91,4 +91,10 @@ public interface UserOrdersService extends IService<UserOrders> {
* @param orderId 订单ID * @param orderId 订单ID
*/ */
void doneRefund(Long orderId); void doneRefund(Long orderId);
/**
* 车辆详情
* @param ecuSn scusn
*/
List<RspBikeDto> bikeInfo(String ecuSn);
} }

View File

@ -134,6 +134,12 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, UserOrd
throw new RuntimeException("获取车辆信息失败"); throw new RuntimeException("获取车辆信息失败");
} }
FeignEbikeBikeInfoDto bikeInfoDto = jsonResult.getData(); FeignEbikeBikeInfoDto bikeInfoDto = jsonResult.getData();
// if (bikeInfoDto.getUsageStatus() == 1) {
// throw new RuntimeException("车辆使用中");
// }
// if (bikeInfoDto.getUsageStatus() == 1) {
// throw new RuntimeException("车辆故障,暂不可用");
// }
FeignEbikeEcuInfo ecuInfo = bikeInfoDto.getEbikeEcuInfo(); FeignEbikeEcuInfo ecuInfo = bikeInfoDto.getEbikeEcuInfo();
String jsonString = JSONObject.toJSONString(redisUtil.get(ecuInfo.getEcuSn())); String jsonString = JSONObject.toJSONString(redisUtil.get(ecuInfo.getEcuSn()));
ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class); ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class);
@ -190,11 +196,18 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, UserOrd
@Override @Override
public List<RspBikeDto> bikeList(ReqBikeDto bikeDto) { public List<RspBikeDto> bikeList(ReqBikeDto bikeDto) {
List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(bikeDto.getLongitude(), bikeDto.getLatitude(), bikeDto.getRadius() == null ? 3.0 : bikeDto.getRadius()); List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(bikeDto.getLongitude(), bikeDto.getLatitude(), bikeDto.getRadius() == null ? 3.0 : bikeDto.getRadius());
List<String> list = nearbyMembers.stream().map(RedisPoint::getMember).toList();
List<Object> objects = redisUtil.multiGet(list);
return nearbyMembers.stream().filter(Objects::nonNull).map(redisPoint -> { return nearbyMembers.stream().filter(Objects::nonNull).map(redisPoint -> {
String jsonString = JSONObject.toJSONString(redisUtil.get(redisPoint.getMember())); for (Object object : objects) {
ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class); String jsonString = JSONObject.toJSONString(object);
return new RspBikeDto(redisPoint.getMember(), resGpsDto.getSoc(), redisPoint.getPoint().getX(), redisPoint.getPoint().getY()); ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class);
}).toList(); 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 @Override
@ -295,6 +308,11 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, UserOrd
this.mapper.update(userOrders); this.mapper.update(userOrders);
} }
@Override
public List<RspBikeDto> bikeInfo(String ecuSn) {
return List.of();
}
@Override @Override
public void payment(ResFeignOrderPaymentDto paymentDto) { public void payment(ResFeignOrderPaymentDto paymentDto) {
UserOrders userOrders = this.mapper.selectOneById(paymentDto.getOrderId()); UserOrders userOrders = this.mapper.selectOneById(paymentDto.getOrderId());

View File

@ -530,6 +530,15 @@ public class RedisUtil {
return redisTemplate.opsForValue().get(key); return redisTemplate.opsForValue().get(key);
} }
/**
* 批量获取值
*
* @param keyList
*/
public List<Object> multiGet(List<String> keyList) {
return redisTemplate.opsForValue().multiGet(keyList);
}
/** /**
* 自增操作增量=1 * 自增操作增量=1
* *