1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| package com.xiaopeng.maintenance.repo;
|
| import com.xiaopeng.api.dto.account.XpOperationsUserPositionDTO;
| import org.springframework.data.geo.Point;
| import org.springframework.data.mongodb.repository.MongoRepository;
| import org.springframework.data.mongodb.repository.Query;
|
| import java.util.List;
|
| /**
| * MongoDB Repository 接口
| * 用于支持地理空间查询和其他操作
| */
| public interface XpOperationsUserRepository extends MongoRepository<XpOperationsUserPositionDTO, String> {
|
| /**
| * 通过经纬度查询范围500米内、一周内、指定时段、状态>1的数据
| * @param point 中心点坐标
| * @param distance 距离范围
| * @return 符合条件的实体列表
| */
| @Query("{ 'location' : { '$nearSphere' : ?0, '$maxDistance' : ?1, '$distanceField': 'distance' }, 'id' : { $in : ?2 } }")
| List<XpOperationsUserPositionDTO> findWithDistance(
| Point point,
| Integer distance,
| List<Long> ids
| );
|
| }
|
|