From 8522e469e00e1cf6c0410165b0f76c806c13ca83 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 16 八月 2025 09:17:04 +0800 Subject: [PATCH] 合并代码 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 30 ++++++++++++++++++++++-------- 1 files changed, 22 insertions(+), 8 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index d7d059e..28ca927 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -1,6 +1,8 @@ package com.stylefeng.guns.modular.api; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderEvaluateService; @@ -13,16 +15,19 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -32,6 +37,7 @@ @Api @RestController @RequestMapping("") +@Slf4j public class DriverController { @Autowired @@ -42,6 +48,9 @@ @Autowired private MongoTemplate mongoTemplate; + + @Resource + private RedisTemplate<String, Object> redisTemplate; @@ -142,20 +151,25 @@ //mongodb查询附近5公里范围内的坐标 Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000)); List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); + log.info("地理空间检索出的数据:{}", JSON.toJSONString(driverPositions)); List<Map<String, Object>> collect = new ArrayList<>(); if(driverPositions.size() > 0){ List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds) .eq("authState", 2).eq("state", 2)); collect = drivers.stream().map(driver -> { - Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); - Map<String, Object> map = new HashMap<>(); - map.put("driverId", driver.getId()); - map.put("name", driver.getName()); - map.put("lot", driverPosition.isPresent() ? driverPosition.get().getPoint().getX() : ""); - map.put("lat", driverPosition.isPresent() ? driverPosition.get().getPoint().getY() : ""); - return map; - }).collect(Collectors.toList()); + String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + if(ToolUtil.isNotEmpty(value)){ + Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); + Map<String, Object> map = new HashMap<>(); + map.put("driverId", driver.getId()); + map.put("name", driver.getName()); + map.put("lot", driverPosition.isPresent() ? driverPosition.get().getPoint().getX() : ""); + map.put("lat", driverPosition.isPresent() ? driverPosition.get().getPoint().getY() : ""); + return map; + } + return null; + }).filter(Objects::nonNull).collect(Collectors.toList()); } return ResultUtil.success(collect); } -- Gitblit v1.7.1