From c6f79f5720c5d4a700b8b759a93393559409fd1c Mon Sep 17 00:00:00 2001
From: chenhuan <czj123456>
Date: 星期一, 20 五月 2024 15:11:58 +0800
Subject: [PATCH] Merge branch 'master' of http://117.78.1.188:8089/r/dkyChenJiang

---
 javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 118 insertions(+), 2 deletions(-)

diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
index e5a66b5..030592f 100644
--- a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -1,16 +1,32 @@
 package com.javaweb.geo.service.impl;
 
+import java.io.File;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
 import java.util.List;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ZipUtil;
+import com.javaweb.common.config.Global;
+import com.javaweb.common.core.domain.AjaxResult;
 import com.javaweb.common.utils.DateUtils;
 import com.javaweb.common.utils.IdGenerate;
+import com.javaweb.common.utils.StringUtils;
+import com.javaweb.geo.domain.Hole;
+import com.javaweb.geo.domain.HoleMedia;
+import com.javaweb.geo.mapper.HoleMapper;
+import com.javaweb.geo.mapper.HoleMediaMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.javaweb.geo.mapper.ProjectDataMapper;
 import com.javaweb.geo.domain.ProjectData;
 import com.javaweb.geo.service.IProjectDataService;
 import com.javaweb.common.core.text.Convert;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * 椤圭洰璧勬枡Service涓氬姟灞傚鐞�
@@ -20,8 +36,25 @@
  */
 @Service
 public class ProjectDataServiceImpl implements IProjectDataService {
+
+
+    private static String zipfile = "zipfile";
+    private static String zipfile2 = "zipfile2";
+
+    //zip 鍘熷鏂囦欢
+    private static String ZIPUploadPath = Global.getProfile() + "\\" + zipfile + "\\";
+
+    //瑙e帇鏂囦欢
+    private static String ZIPUploadPath2 = Global.getProfile() + "\\" + zipfile2 + "\\";
+
     @Autowired
     private ProjectDataMapper projectDataMapper;
+    @Autowired
+    private HoleMapper holeMapper;
+
+    @Autowired
+    private HoleMediaMapper mediaMapper;
+
 
     /**
      * 鏌ヨ椤圭洰璧勬枡
@@ -42,8 +75,8 @@
      */
     @Override
     public List<ProjectData> selectProjectDataList(ProjectData projectData) {
-        if (!ObjectUtils.isEmpty(projectData.getDataType()) && projectData.getDataType().endsWith(",")){
-            projectData.setDataType(projectData.getDataType().substring(0,1));
+        if (!ObjectUtils.isEmpty(projectData.getDataType()) && projectData.getDataType().endsWith(",")) {
+            projectData.setDataType(projectData.getDataType().substring(0, 1));
         }
         return projectDataMapper.selectProjectDataList(projectData);
     }
@@ -96,4 +129,87 @@
     public int deleteProjectDataById(String id) {
         return projectDataMapper.deleteProjectDataById(id);
     }
+
+    @Override
+    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request) {
+
+        String originalFilename = file.getOriginalFilename();
+        //浼犲叆鐨勯捇瀛旂殑id
+        String projectDataId = request.getParameter("projectDataId");
+
+        //鑾峰彇鍚庣紑.zip  淇濆瓨鐨勬枃浠跺悕
+        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
+        String UID = IdGenerate.nextId();
+        String dFileName = UID + substring;
+
+        File file2 = new File(ZIPUploadPath + dFileName);
+        try {
+            file.transferTo(file2);
+        } catch (Exception e) {
+            return AjaxResult.warn("闄勪欢涓婁紶澶辫触锛�");
+        }
+
+        //瑙e帇缂�
+        try {
+            ZipUtil.unzip(file2, Charset.forName("GBK"));
+        } catch (Exception e) {
+            return AjaxResult.warn("闄勪欢瑙e帇缂╁け璐ワ紒");
+        }
+
+        //绉诲姩鍒皕ipfile2  瀛樺偍瑙e帇瀹屾瘯鐨勬枃浠�
+        String moveDir = ZIPUploadPath + UID;
+        moveFile(moveDir);
+
+        //鏇存柊鏁版嵁搴�
+        updateFilePath(projectDataId, ZIPUploadPath2 + UID +"\\" + originalFilename.replace(substring, "") );
+
+        ProjectData projectData = new ProjectData();
+
+        //鏇存柊  projectData  url
+        String dataUrl = zipfile + "/" + UID +".zip";
+        projectData.setDataUrl(dataUrl);
+        projectData.setId(projectDataId);
+        projectDataMapper.updateProjectData(projectData);
+
+        FileUtil.del(new File(ZIPUploadPath + UID));
+
+        return AjaxResult.success("涓婁紶鎴愬姛");
+    }
+
+    //绉诲姩 鏂囦欢
+    private void moveFile(String moveDir) {
+        File file = new File(moveDir);
+        File dest = new File(ZIPUploadPath2);
+        FileUtil.move(file,dest,true);
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public void updateFilePath(String projectDataId, String dirpath) {
+
+        ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
+        String projectId= projectData.getProjectId();
+
+        File fileDir = new File(dirpath);
+
+        if (fileDir.isDirectory()) {
+            File[] files = fileDir.listFiles();
+            int len = files.length;
+            for (int i = 0; i < len; i++) {
+                String filename = files[i].getName();
+                String filepath = files[i].getPath();
+                String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
+
+                HoleMedia media = new HoleMedia();
+                media.setIds(IdGenerate.nextId());
+                media.setRecordId(projectDataId);
+                media.setProjectId(projectId);
+                media.setName(filename);
+                media.setInternetPath(url);
+                media.setCreateTime(DateUtils.getNowDate());
+                mediaMapper.insertHoleMedia(media);
+            }
+        }
+
+    }
 }

--
Gitblit v1.9.1