Просмотр исходного кода

Merge branch 'dev-meta' of xiongzhu/raex_back into master

sunkean 2 лет назад
Родитель
Сommit
e38fbc04a5

+ 4 - 0
src/main/java/com/izouma/nineth/repo/MetaObjectMoveCoordinateRepo.java

@@ -4,7 +4,11 @@ import com.izouma.nineth.domain.MetaObjectMoveCoordinate;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
+import java.util.List;
+
 public interface MetaObjectMoveCoordinateRepo extends JpaRepository<MetaObjectMoveCoordinate, Long>, JpaSpecificationExecutor<MetaObjectMoveCoordinate> {
 
     MetaObjectMoveCoordinate findByObjectIdAndCoordinateIndexAndDel(Long objectId, int coordinateIndex, boolean del);
+
+    List<MetaObjectMoveCoordinate> findAllByObjectIdAndDel(Long objectId, boolean del);
 }

+ 23 - 0
src/main/java/com/izouma/nineth/service/MetaObjectMoveService.java

@@ -92,6 +92,29 @@ public class MetaObjectMoveService {
         return save;
     }
 
+    @Transactional
+    public void del(Long id) {
+        MetaObjectMove metaObjectMove = metaObjectMoveRepo.findById(id).orElseThrow(new BusinessException("无记录"));
+        Long objectId = metaObjectMove.getObjectId();
+        String objectMoveKey = MetaConstants.META_OBJECT_MOVE_REDIS_KEY.concat(String.valueOf(objectId));
+        List<MetaObjectMoveCoordinate> metaObjectMoveCoordinates = metaObjectMoveCoordinateRepo.findAllByObjectIdAndDel(objectId, false);
+        // 删除物体信息
+        if (Objects.isNull(metaObjectMoveCoordinates)) {
+            redisTemplate.delete(objectMoveKey);
+            metaObjectMoveRepo.softDelete(id);
+            return;
+        }
+        // 删除坐标信息
+        metaObjectMoveCoordinates.forEach(metaObjectMoveCoordinate -> {
+            String coordinateKey = MetaConstants.META_OBJECT_INDEX_REDIS_KEY.concat(String.valueOf(objectId)).concat("_").concat(String.valueOf(metaObjectMoveCoordinate.getCoordinateIndex()));
+            redisTemplate.delete(coordinateKey);
+            metaObjectMoveCoordinateRepo.delete(metaObjectMoveCoordinate);
+        });
+        // 删除物体信息
+        redisTemplate.delete(objectMoveKey);
+        metaObjectMoveRepo.softDelete(id);
+    }
+
     @Transactional
     public void handleCoordinate(Long id) {
         MetaObjectMove metaObjectMove = metaObjectMoveRepo.findByIdAndDel(id, false);

+ 2 - 2
src/main/java/com/izouma/nineth/web/MetaObjectMoveController.java

@@ -48,7 +48,7 @@ public class MetaObjectMoveController extends BaseController {
 
     @PostMapping("/del/{id}")
     public void del(@PathVariable Long id) {
-        metaObjectMoveRepo.softDelete(id);
+        metaObjectMoveService.del(id);
     }
 
     @GetMapping("/excel")
@@ -82,7 +82,7 @@ public class MetaObjectMoveController extends BaseController {
         if (Objects.isNull(metaObjectMove)) {
             throw new BusinessException("无记录");
         }
-        if (!metaObjectMove.isRun()){
+        if (!metaObjectMove.isRun()) {
             throw new BusinessException("该物体已经停止运行");
         }
         metaObjectMove.setRun(false);