Bladeren bron

删除逻辑修改

xiewj 2 jaren geleden
bovenliggende
commit
277acd4a4d

+ 2 - 3
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkMapper.java

@@ -3,7 +3,6 @@ package com.gis.mapper;
 
 import com.gis.common.mapper.provider.BaseProvider;
 import com.gis.domain.dto.AgePageDto;
-import com.gis.domain.dto.PageDto;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.domain.vo.ReportWorkVo;
 import com.gis.mapper.provider.WorkProvider;
@@ -11,14 +10,14 @@ import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
-import java.util.Map;
 
 
 @Component
 @Mapper
 public interface WorkMapper extends IBaseStrMapper<WorkEntity, String> {
 
-
+    @SelectProvider(type = BaseProvider.class, method = "selectSql")
+    Integer getCountStr(String sqlStr);
 
     @SelectProvider(type = WorkProvider.class, method = "search")
     List<WorkEntity> search(AgePageDto param, String userId);

+ 2 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkService.java

@@ -9,7 +9,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.time.LocalDate;
 import java.util.List;
-import java.util.Map;
 
 
 /**
@@ -45,6 +44,8 @@ public interface WorkService extends IBaseService<WorkEntity, String> {
     // 获取用户作品
     List<WorkEntity> getUserWork();
 
+    boolean getUserWorkCountBySceneCodes(List<String> sceneCodes);
+
     List<ReportWorkVo> countByType(LocalDate today);
 
     Result uploadHot(FileSceneDto file);

+ 8 - 16
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/DirServiceImpl.java

@@ -132,27 +132,19 @@ public class DirServiceImpl extends IBaseServiceImpl<DirEntity, Long> implements
     // 检查该目录下的场景是否被使用
     private boolean checkPanoUse(String dirs){
         log.info("检查的目录集合id: {}", dirs);
-        boolean isUser = false;
         // 查询目录下的场景码
         List<String> sceneCodes = fodderService.getSceneCodeByParentIds(dirs);
+        if (sceneCodes.size()==0){
+            log.info("没有场景需要检查: {}", sceneCodes.size());
+            return false;
+        }
         // 查找该用户的作品
-        List<WorkEntity> works = workService.getUserWork();
+        boolean works = workService.getUserWorkCountBySceneCodes(sceneCodes);
         // 匹配场景码
-        for (WorkEntity work : works) {
-            if (StrUtil.isNotBlank(work.getSceneCodes())){
-                continue;
-            }
-            for (String sceneCode : sceneCodes) {
-                if (work.getSceneCodes().contains(sceneCode)){
-                    log.error("此场景:{} 被该作品:{} 引用", sceneCode, work.getId());
-                    isUser =  true;
-                    break;
-                }
-            }
+//        log.error("此场景:{} 被该作品:{} 引用", works);
 
-        }
-        log.info("检查结果: {}", isUser);
-        return isUser;
+        log.info("引用检查结果: {}", works);
+        return works;
 
     }
 

+ 13 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -1,6 +1,5 @@
 package com.gis.service.impl;
 
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
@@ -278,6 +277,19 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
     }
 
     @Override
+    public boolean getUserWorkCountBySceneCodes(List<String> sceneCodes) {
+        for (String sceneCode : sceneCodes) {
+            String format = StrUtil.format("SELECT count(1) FROM tb_dir WHERE is_delete=0 and status={} and ( id = {} or find_in_set('{}' , scene_codes ))",
+                    1, this.getUserNameForToken(),sceneCode);
+            Integer count = entityMapper.getCountStr(format);
+            if (count > 0){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
     public List<ReportWorkVo> countByType(LocalDate today) {
         StringBuilder builder = new StringBuilder();
         builder.append("SELECT type as groupKey, count(*) as count FROM tb_work WHERE is_delete=0 and status=1");