运营区删除:redisGeo数据清空
This commit is contained in:
parent
ca2c32462e
commit
081dc26d85
@ -47,6 +47,7 @@ import static com.cdzy.ebikeoperate.model.pojo.table.EbikeAdministrationZoneTabl
|
|||||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION;
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeOperationRegionTableDef.EBIKE_OPERATION_REGION;
|
||||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikePointTableDef.EBIKE_POINT;
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikePointTableDef.EBIKE_POINT;
|
||||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL;
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeRegionLevelTableDef.EBIKE_REGION_LEVEL;
|
||||||
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeSiteRegionTableDef.EBIKE_SITE_REGION;
|
||||||
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
|
import static com.cdzy.ebikeoperate.model.pojo.table.EbikeStaffRegionTableDef.EBIKE_STAFF_REGION;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -135,9 +136,15 @@ public class EbikeOperationRegionServiceImpl extends ServiceImpl<EbikeOperationR
|
|||||||
@Override
|
@Override
|
||||||
public void delOperation(ReqBatchRegionDto delRegionDto) {
|
public void delOperation(ReqBatchRegionDto delRegionDto) {
|
||||||
List<EbikeOperationRegion> ebikeOperationRegions = this.mapper.selectListByIds(delRegionDto.getIds());
|
List<EbikeOperationRegion> ebikeOperationRegions = this.mapper.selectListByIds(delRegionDto.getIds());
|
||||||
|
//做不同运营商考虑,通过循环进行删除
|
||||||
ebikeOperationRegions.forEach(region ->
|
ebikeOperationRegions.forEach(region ->
|
||||||
delPoints(region.getOrgId(), region.getOperationRegionId())
|
delPoints(region.getOrgId(), region.getOperationRegionId())
|
||||||
);
|
);
|
||||||
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
|
.where(EBIKE_SITE_REGION.OPERATION_REGION_ID.in(delRegionDto.getIds()));
|
||||||
|
staffRegionMapper.deleteByQuery(queryWrapper);
|
||||||
|
//站点与运营商解耦仅与运营区有关,做批量删除
|
||||||
|
redisUtil.deleteStieByOperationIds(delRegionDto.getIds());
|
||||||
this.mapper.deleteBatchByIds(delRegionDto.getIds());
|
this.mapper.deleteBatchByIds(delRegionDto.getIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -321,6 +321,32 @@ public class RedisUtil {
|
|||||||
Polygon polygon = parsePolygonFromWKT(polygonFromWKT);
|
Polygon polygon = parsePolygonFromWKT(polygonFromWKT);
|
||||||
return isPointInPolygon(lng, lat, polygon);
|
return isPointInPolygon(lng, lat, polygon);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 判断坐标点是否在附近站点区内
|
||||||
|
* @param lng 经度
|
||||||
|
* @param lat 纬度
|
||||||
|
* @return true-在内部;false-在外部或边界上(根据业务需求调整)
|
||||||
|
*/
|
||||||
|
public Long isPointInSiteWithSiteRegionId(double lng, double lat,Long areaId) {
|
||||||
|
//查询附近停车区
|
||||||
|
List<String> nearbyParking = findNearbyParking(lng, lat,areaId);
|
||||||
|
if (nearbyParking.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//获取第一个大致包含该点位的停车区
|
||||||
|
String regionId = checkPointInArea(lng, lat, nearbyParking,areaId);
|
||||||
|
if (regionId == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//进行更精确的判断
|
||||||
|
String polygonFromWKT = getPolygonFromWKT(areaId,regionId,"parking_area:meta:");
|
||||||
|
Polygon polygon = parsePolygonFromWKT(polygonFromWKT);
|
||||||
|
boolean inPolygon = isPointInPolygon(lng, lat, polygon);
|
||||||
|
if (inPolygon) {
|
||||||
|
return Long.valueOf(regionId);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断坐标点是否在附近运营区内
|
* 判断坐标点是否在附近运营区内
|
||||||
@ -809,4 +835,21 @@ public class RedisUtil {
|
|||||||
public Boolean releaseLock(String key) {
|
public Boolean releaseLock(String key) {
|
||||||
return redisTemplate.delete(key);
|
return redisTemplate.delete(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteStieByOperationIds(List<Long> ids) {
|
||||||
|
List<String> parkingKeyList = new ArrayList<>();
|
||||||
|
List<String> siteKeyList = new ArrayList<>();
|
||||||
|
List<String> parkingAreaKeyList = new ArrayList<>();
|
||||||
|
List<String> siteAreaKeyList = new ArrayList<>();
|
||||||
|
for (Long id : ids) {
|
||||||
|
parkingKeyList.add(parkingKey+id);
|
||||||
|
siteKeyList.add(siteKey+id);
|
||||||
|
parkingAreaKeyList.add("parking_area:meta:"+id);
|
||||||
|
siteAreaKeyList.add("site_area:meta:"+id);
|
||||||
|
}
|
||||||
|
redisTemplate.delete(parkingKeyList);
|
||||||
|
redisTemplate.delete(siteKeyList);
|
||||||
|
redisTemplate.delete(parkingAreaKeyList);
|
||||||
|
redisTemplate.delete(siteAreaKeyList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user