From 30c540d35e476f9dc1c7149a4e52088c7f375f60 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 07 四月 2026 08:52:59 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
index 7e73a0d..de10814 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/CodeGapServiceImpl.java
@@ -7,13 +7,16 @@
import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.CodeGap;
+import com.zy.acs.manager.manager.entity.Route;
import com.zy.acs.manager.manager.mapper.CodeGapMapper;
import com.zy.acs.manager.manager.service.CodeGapService;
+import com.zy.acs.manager.manager.service.RouteService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
+import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -26,6 +29,8 @@
@Autowired
private MapService mapService;
+ @Autowired
+ private RouteService routeService;
@PostConstruct
public void init() {
@@ -95,6 +100,51 @@
return 0.0;
}
+ @Override
+ public void removeCodeGapIfUnused(Long code0, Long code1) {
+ if (code0 == null || code1 == null) {
+ return;
+ }
+ long count = routeService.count(new LambdaQueryWrapper<Route>()
+ .eq(Route::getStartCode, code0)
+ .eq(Route::getEndCode, code1))
+ + routeService.count(new LambdaQueryWrapper<Route>()
+ .eq(Route::getStartCode, code1)
+ .eq(Route::getEndCode, code0));
+ if (count > 0) {
+ return;
+ }
+ CodeGap codeGap = findByCodeOfBoth(code0, code1);
+ if (codeGap != null && !this.removeById(codeGap.getId())) {
+ throw new CoolException("Delete Fail");
+ }
+ }
+
+ @Override
+ public boolean save(CodeGap entity) {
+ boolean result = super.save(entity);
+ if (result) {
+ String gapKey = generateGapKey(entity.getCode0(), entity.getCode1());
+ if (!Cools.isEmpty(gapKey)) {
+ GAP_DISTANCE_CACHE.put(gapKey, entity);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public boolean removeById(Serializable id) {
+ CodeGap codeGap = this.getById(id);
+ boolean result = super.removeById(id);
+ if (result && codeGap != null) {
+ String gapKey = generateGapKey(codeGap.getCode0(), codeGap.getCode1());
+ if (!Cools.isEmpty(gapKey)) {
+ GAP_DISTANCE_CACHE.remove(gapKey);
+ }
+ }
+ return result;
+ }
+
private static String generateGapKey(Long code0, Long code1) {
if (Cools.isEmpty(code0, code1)) {
return null;
--
Gitblit v1.9.1