From 1ba323228dbe8ce20331d3ea8575074b7010125f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 12 三月 2026 09:54:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
index 4e1b063..b4be938 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -78,6 +78,10 @@
@Override
public PageInfo<XpElectronicFence> pageList(ElectronicPageListQuery query) {
+ if (query == null) {
+ return new PageInfo<>();
+ }
+ normalizeProhibitedAreaCountFilter(query);
PageInfo<XpElectronicFence> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
if (StringUtils.isEmpty(query.getCreateSort())&& StringUtils.isEmpty(query.getUpdateSort())){
query.setCreateSort("2");
@@ -103,6 +107,81 @@
pageInfo.setRecords(list);
return pageInfo;
}
+
+ private void normalizeProhibitedAreaCountFilter(ElectronicPageListQuery query) {
+ Integer prohibitedAreaCountMin = query.getProhibitedAreaCountMin();
+ Integer prohibitedAreaCountMax = query.getProhibitedAreaCountMax();
+ if (prohibitedAreaCountMin != null || prohibitedAreaCountMax != null) {
+ if (prohibitedAreaCountMin != null && prohibitedAreaCountMax != null) {
+ int min = Math.min(prohibitedAreaCountMin, prohibitedAreaCountMax);
+ int max = Math.max(prohibitedAreaCountMin, prohibitedAreaCountMax);
+ if (min < 0) {
+ clearAreaFilter(query);
+ return;
+ }
+ query.setProhibitedAreaCountMin(min);
+ query.setProhibitedAreaCountMax(max);
+ query.setElectronicAreaId(null);
+ return;
+ }
+ if (prohibitedAreaCountMin != null) {
+ if (prohibitedAreaCountMin < 0) {
+ clearAreaFilter(query);
+ return;
+ }
+ query.setElectronicAreaId(null);
+ return;
+ }
+ if (prohibitedAreaCountMax < 0) {
+ clearAreaFilter(query);
+ return;
+ }
+ query.setElectronicAreaId(null);
+ return;
+ }
+
+ String electronicAreaId = query.getElectronicAreaId();
+ if (StringUtils.isEmpty(electronicAreaId)) {
+ return;
+ }
+ try {
+ if (electronicAreaId.contains(",")) {
+ String[] parts = electronicAreaId.split(",");
+ if (parts.length != 2) {
+ clearAreaFilter(query);
+ return;
+ }
+ int left = Integer.parseInt(parts[0].trim());
+ int right = Integer.parseInt(parts[1].trim());
+ int min = Math.min(left, right);
+ int max = Math.max(left, right);
+ if (min < 0) {
+ clearAreaFilter(query);
+ return;
+ }
+ query.setProhibitedAreaCountMin(min);
+ query.setProhibitedAreaCountMax(max);
+ query.setElectronicAreaId(null);
+ return;
+ }
+ int threshold = Integer.parseInt(electronicAreaId.trim());
+ if (threshold < 0 || threshold == Integer.MAX_VALUE) {
+ clearAreaFilter(query);
+ return;
+ }
+ query.setProhibitedAreaCountMin(threshold + 1);
+ query.setProhibitedAreaCountMax(null);
+ query.setElectronicAreaId(null);
+ } catch (Exception e) {
+ clearAreaFilter(query);
+ }
+ }
+
+ private void clearAreaFilter(ElectronicPageListQuery query) {
+ query.setElectronicAreaId(null);
+ query.setProhibitedAreaCountMin(null);
+ query.setProhibitedAreaCountMax(null);
+ }
public static String getPinyinInitials(String chinese) {
StringBuilder pinyinInitials = new StringBuilder();
for (char c : chinese.toCharArray()) {
--
Gitblit v1.7.1