lyhzzz 3 дней назад
Родитель
Сommit
88b5d55fad

+ 66 - 0
src/main/java/com/fdkankan/rmnas/common/UploadToOssUtil.java

@@ -147,4 +147,70 @@ public class UploadToOssUtil {
 		}
 		}
 	}
 	}
 
 
+	public void uploadFolder(String dataSource, String buildResult) {
+		uploadDirectory(ossClient,bucket,dataSource,buildResult);
+	}
+
+	public static void uploadDirectory(OSS ossClient,String bucket,String filePath,String ossPath) {
+		try {
+			File file = new File(filePath);
+			if (!file.exists()) {
+				log.error("要上传的文件不存在:" + filePath);
+				return;
+			}
+			if(file.isDirectory()){
+				uploadDirectoryContents(ossClient,bucket,file.getPath(),ossPath );
+			}else {
+				upload(ossClient,bucket,file.getPath(),ossPath);
+			}
+		}catch (Exception e){
+			log.info("上传失败:{}",e);
+		}
+
+	}
+
+
+	public static void uploadDirectoryContents(OSS ossClient,String bucket ,String filePath, String ossPath) {
+		try {
+			File file = new File(filePath);
+			if (!file.exists()) {
+				log.error("要上传的文件不存在:" + filePath);
+				return;
+			}
+			File[] files = file.listFiles();
+			if (files == null || files.length == 0) {
+				log.info("跳过空目录:{}", file.getPath());
+				return;
+			}
+			for (File file1 : files) {
+				if(file1.isDirectory()){
+					uploadDirectoryContents(ossClient,bucket,file1.getPath(),ossPath +"/"+file1.getName());
+				}else {
+					upload(ossClient,bucket,file1.getPath(),ossPath +"/"+file1.getName());
+				}
+			}
+
+		}catch (Exception e){
+			log.info("上传失败:{}",e);
+		}
+
+	}
+
+	public static void upload(OSS ossClient,String bucket,String filePath, String key1) {
+		try {
+			File file = new File(filePath);
+			if (!file.exists()) {
+				log.error("要上传的文件不存在:" + filePath);
+			}
+			ObjectMetadata metadata = new ObjectMetadata();
+			if(filePath.contains(".jpg")){
+				metadata.setContentType("image/jpeg");
+			}
+			ossClient.putObject(bucket, key1, new File(filePath), metadata);
+
+		} catch (Exception e) {
+			log.error(e.toString() + filePath);
+		}
+
+	}
 }
 }

+ 7 - 0
src/main/java/com/fdkankan/rmnas/mapper/ITbSceneProMapper.java

@@ -6,6 +6,9 @@ import com.fdkankan.rmnas.entity.TbScenePro;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.rmnas.vo.CommonScene;
 import com.fdkankan.rmnas.vo.CommonScene;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -21,4 +24,8 @@ public interface ITbSceneProMapper extends BaseMapper<TbScenePro> {
     Page<TbScenePro> getLastYear(Page<Object> objectPage, RequestBase param);
     Page<TbScenePro> getLastYear(Page<Object> objectPage, RequestBase param);
 
 
     Page<CommonScene> getLastYearOss(Page<CommonScene> objectPage, RequestBase param);
     Page<CommonScene> getLastYearOss(Page<CommonScene> objectPage, RequestBase param);
+
+    List<TbScenePro> getNoDelBuildResultList();
+
+    void updateDelBuildResult(@Param("id") Long id, @Param("status")Integer status);
 }
 }

+ 6 - 0
src/main/java/com/fdkankan/rmnas/service/ITbSceneProService.java

@@ -6,6 +6,8 @@ import com.fdkankan.rmnas.entity.TbScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.rmnas.vo.CommonScene;
 import com.fdkankan.rmnas.vo.CommonScene;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * pro场景表 服务类
  * pro场景表 服务类
@@ -19,4 +21,8 @@ public interface ITbSceneProService extends IService<TbScenePro> {
     Page<TbScenePro> getLastYear(RequestBase param);
     Page<TbScenePro> getLastYear(RequestBase param);
 
 
     Page<CommonScene> getLastYearOss(RequestBase param);
     Page<CommonScene> getLastYearOss(RequestBase param);
+
+    List<TbScenePro> getNoDelBuildResultList();
+
+    void updateDelBuildResult(Long id, Integer status);
 }
 }

+ 12 - 0
src/main/java/com/fdkankan/rmnas/service/impl/TbSceneProServiceImpl.java

@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.rmnas.vo.CommonScene;
 import com.fdkankan.rmnas.vo.CommonScene;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * pro场景表 服务实现类
  * pro场景表 服务实现类
@@ -29,4 +31,14 @@ public class TbSceneProServiceImpl extends ServiceImpl<ITbSceneProMapper, TbScen
     public Page<CommonScene> getLastYearOss(RequestBase param) {
     public Page<CommonScene> getLastYearOss(RequestBase param) {
         return this.getBaseMapper().getLastYearOss(new Page<>(param.getPageNum(),param.getPageSize()),param);
         return this.getBaseMapper().getLastYearOss(new Page<>(param.getPageNum(),param.getPageSize()),param);
     }
     }
+
+    @Override
+    public List<TbScenePro> getNoDelBuildResultList() {
+        return this.getBaseMapper().getNoDelBuildResultList();
+    }
+
+    @Override
+    public void updateDelBuildResult(Long id, Integer status) {
+        this.getBaseMapper().updateDelBuildResult(id,status);
+    }
 }
 }

+ 1 - 1
src/main/java/com/fdkankan/rmnas/task/TaskController.java

@@ -33,7 +33,7 @@ public class TaskController {
         if(CacheUtil.runVersion.contains("v2")){
         if(CacheUtil.runVersion.contains("v2")){
             taskService.rmNas();
             taskService.rmNas();
         }else {
         }else {
-            taskService.rmOss();
+            //taskService.rmOss();
             taskService.rmNasV3();
             taskService.rmNasV3();
         }
         }
         log.info("项目启动执行完毕删除nas资源命令:{},{}",CacheUtil.runVersion,System.currentTimeMillis()-start);
         log.info("项目启动执行完毕删除nas资源命令:{},{}",CacheUtil.runVersion,System.currentTimeMillis()-start);

+ 17 - 1
src/main/java/com/fdkankan/rmnas/task/TaskService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.rmnas.task;
 package com.fdkankan.rmnas.task;
 
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.FileUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.rmnas.common.*;
 import com.fdkankan.rmnas.common.*;
 import com.fdkankan.rmnas.entity.TbOssCloud;
 import com.fdkankan.rmnas.entity.TbOssCloud;
@@ -140,6 +141,21 @@ public class TaskService {
 
 
 
 
     public void rmNasV3() {
     public void rmNasV3() {
-        //List<TbScenePro> sceneProList = tbSceneProService.getNoDelBuildResultList();
+        List<TbScenePro> sceneProList = tbSceneProService.getNoDelBuildResultList();
+        if(sceneProList != null && !sceneProList.isEmpty()){
+            log.info("执行删除v3nas计算结果数据:{}",sceneProList.size());
+            for (TbScenePro tbScenePro : sceneProList) {
+                if(StringUtils.isBlank(tbScenePro.getDataSource())
+                        || !tbScenePro.getDataSource().contains("/")
+                        || tbScenePro.getDataSource().split("/").length <4){
+                    log.info("跳过删除:{}",tbScenePro.getDataSource());
+                    continue;
+                }
+                fYunFileServiceInterface.uploadFolder(tbScenePro.getDataSource(),"build_result");
+                FileUtil.del(tbScenePro.getDataSource());
+                tbSceneProService.updateDelBuildResult(tbScenePro.getId(),2);
+            }
+
+        }
     }
     }
 }
 }

+ 9 - 0
src/main/resources/mapper/rmnas/TbSceneProMapper.xml

@@ -2,6 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.rmnas.mapper.ITbSceneProMapper">
 <mapper namespace="com.fdkankan.rmnas.mapper.ITbSceneProMapper">
 
 
+
     <select id="getLastYear" resultType="com.fdkankan.rmnas.entity.TbScenePro">
     <select id="getLastYear" resultType="com.fdkankan.rmnas.entity.TbScenePro">
         select * from tb_scene_pro s where
         select * from tb_scene_pro s where
                 (select count(*) as num from tb_rm_nas_log l where s.num = l.num) = 0
                 (select count(*) as num from tb_rm_nas_log l where s.num = l.num) = 0
@@ -14,4 +15,12 @@
                                    and s.create_time  &lt;= #{param.yearTime}
                                    and s.create_time  &lt;= #{param.yearTime}
         order by s.id asc
         order by s.id asc
     </select>
     </select>
+
+    <select id="getNoDelBuildResultList" resultType="com.fdkankan.rmnas.entity.TbScenePro">
+        SELECT * from tb_scene_pro WHERE  del_build_result = 1 and status !=0 LIMIT 1000
+    </select>
+
+    <update id="updateDelBuildResult">
+        update tb_scene_pro set del_build_result = #{status} where id = #{id}
+    </update>
 </mapper>
 </mapper>