Преглед на файлове

调整了代码结构,在模板的service层和历史的service层构建相关代码

李英俊ya преди 1 месец
родител
ревизия
340a0f6829

+ 11 - 52
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRepoController.java

@@ -4,17 +4,12 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Set;
 
-import com.alibaba.druid.sql.dialect.oscar.visitor.OscarPermissionOutputVisitor;
-import com.ruoyi.common.config.RuoYiConfig;
-import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.system.domain.SysRepoHistory;
 import com.ruoyi.common.utils.VersionUtils;
 import com.ruoyi.common.utils.OfficeCompareUtils;
 import com.ruoyi.system.service.ISysRepoHistoryService;
 import com.ruoyi.common.utils.file.FileUtils;
-import org.apache.commons.io.FilenameUtils;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,12 +20,8 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.system.domain.SysRepo;
 import com.ruoyi.system.service.ISysRepoService;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import static com.ruoyi.common.config.RuoYiConfig.getProfile;
 
 /**
  * 仓库管理Controller
@@ -80,11 +71,7 @@ public class SysRepoController extends BaseController
     {
         sysRepo.setCreateBy(getUsername());
         sysRepo.setUpdateBy(getUsername());
-        String filename = FileUtils.getNameNotExtract(sysRepo.getUrl());
-        sysRepo.setFileName(filename);
-        sysRepo.setRepoType(FileUtils.getFileExtension(filename));
-        sysRepo.setVersion(VersionUtils.incrementVersion(sysRepo.getVersion()));
-        return toAjax(sysRepoService.insertSysRepo(sysRepo));
+        return toAjax(sysRepoService.insertSysRepo(sysRepoService.createSysRepo(sysRepo)));
     }
 
     /**
@@ -100,28 +87,13 @@ public class SysRepoController extends BaseController
         }else{
             SysRepo  sysRepo_old = sysRepoService.selectSysRepoByRepoId(sysRepo.getRepoId());
             sysRepo.setUpdateBy(getUsername());
-            String filename = FileUtils.getNameNotExtract(sysRepo.getUrl());
-            sysRepo.setFileName(filename);
-            sysRepo.setRepoType(FileUtils.getFileExtension(filename));
-            sysRepo.setVersion(VersionUtils.incrementVersion(sysRepo_old.getVersion()));
-            SysRepoHistory sysRepoHistory = new SysRepoHistory();
-            sysRepoHistory.setRepoId(sysRepo_old.getRepoId());
-            sysRepoHistory.setUrl(sysRepo_old.getUrl());
-            sysRepoHistory.setUploadBy(sysRepo_old.getUpdateBy());
-            sysRepoHistory.setFileName(sysRepo_old.getFileName());
-            sysRepoHistory.setVersion(sysRepo_old.getVersion());
-            sysRepoHistory.setRemark(sysRepo_old.getRemark());
-            if(sysRepoHistoryService.insertSysRepoHistory(sysRepoHistory)<1){
-                return AjaxResult.error("文件插入失败");
+            sysRepo.setVersion(sysRepo_old.getVersion());
+            SysRepoHistory sysRepoHistory = sysRepoHistoryService.createSysRepoHistory(sysRepo_old);
+            SysRepo sysRepo_new = sysRepoService.createSysRepo(sysRepo);
+            if(!sysRepo_old.getRepoType().equals(sysRepo_new.getRepoType())){
+                return error("新旧文件类型不一致,请重试");
             }
-            if(sysRepoService.updateSysRepo(sysRepo)<1){
-                return AjaxResult.error("文件插入失败");
-            }
-//            if(sysRepo.getRepoType().equals(".docx") || sysRepo.getRepoType().equals(".doc")){
-//                Set<String> set =  OfficeCompareUtils.compare(sysRepoHistory.getUrl(),sysRepo.getUrl(),"spire");
-//                return AjaxResult.success(set);
-//            }
-            return success();
+            return toAjax(sysRepoService.insertSysRepoAndSysRepoHistory(sysRepo_new,sysRepoHistory));
 
         }
     }
@@ -134,14 +106,13 @@ public class SysRepoController extends BaseController
     public AjaxResult compare(@RequestBody SysRepo sysRepo)
     {
         SysRepo sysRepo_old = sysRepoService.selectSysRepoByRepoId(sysRepo.getRepoId());
-        if(FileUtils.getFileExtension(sysRepo_old.getUrl()).equals(".docx")){
-
+        if(FileUtils.getFileExtension(sysRepo_old.getUrl()).equals(".docx") ||
+                FileUtils.getFileExtension(sysRepo_old.getUrl()).equals(".doc" )){
             return AjaxResult.success(OfficeCompareUtils.compare(FileUtils.getUploadPath(sysRepo_old.getUrl()),FileUtils.getUploadPath(sysRepo.getUrl()),"spire"));
         }
         return AjaxResult.error("对比失败");
     }
 
-
     /**
      * 获取文件版本
      */
@@ -164,25 +135,13 @@ public class SysRepoController extends BaseController
     public AjaxResult upload_file(@RequestBody SysRepoHistory sysRepoHistory)
     {
         SysRepo  sysRepo = sysRepoService.selectSysRepoByRepoId(sysRepoHistory.getRepoId());
-        SysRepoHistory sysRepoHistory_repo = new SysRepoHistory();
-        sysRepoHistory_repo.setRepoId(sysRepo.getRepoId());
-        sysRepoHistory_repo.setUrl(sysRepo.getUrl());
-        sysRepoHistory_repo.setUploadBy(sysRepo.getUpdateBy());
-        sysRepoHistory_repo.setFileName(sysRepo.getFileName());
-        sysRepoHistory_repo.setVersion(sysRepo.getVersion());
-        sysRepoHistory_repo.setRemark(sysRepo.getRemark());
+        SysRepoHistory sysRepoHistory_repo = sysRepoHistoryService.createSysRepoHistory(sysRepo);
         sysRepo.setUpdateBy(getUsername());
         sysRepo.setUrl(sysRepoHistory.getUrl());
         sysRepo.setVersion(VersionUtils.incrementVersion(sysRepo.getVersion()));
         sysRepo.setFileName(sysRepoHistory.getFileName());
         sysRepo.setRemark("回滚版本"+sysRepoHistory.getVersion());
-        if(sysRepoHistoryService.insertSysRepoHistory(sysRepoHistory_repo)<1){
-            return AjaxResult.error("文件插入失败");
-        }
-        if(sysRepoService.updateSysRepo(sysRepo)<1){
-            return AjaxResult.error("文件插入失败");
-        }
-        return AjaxResult.success();
+        return toAjax(sysRepoService.insertSysRepoAndSysRepoHistory(sysRepo,sysRepoHistory_repo));
     }
 
     /**

+ 9 - 7
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRepoHistoryService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+
+import com.ruoyi.system.domain.SysRepo;
 import com.ruoyi.system.domain.SysRepoHistory;
 
 /**
@@ -68,11 +70,11 @@ public interface ISysRepoHistoryService
      */
     public int deleteSysRepoHistoryByHId(Long hId);
 
-//    /**
-//     * 获取仓库历史版本信息
-//     *
-//     * @param repoId 文件仓库ID
-//     * @return 结果
-//     */
-//    List<SysRepoHistory> selectSysRepoHistoryListbyRepoId(Long repoId);
+    /**
+     * 填充SysRepoHistory对象
+     *
+     * @param sysRepo 模板部分信息
+     * @return 字段填充后的对象
+     */
+    public SysRepoHistory createSysRepoHistory(SysRepo sysRepo);
 }

+ 20 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRepoService.java

@@ -2,6 +2,8 @@ package com.ruoyi.system.service;
 
 import java.util.List;
 import com.ruoyi.system.domain.SysRepo;
+import com.ruoyi.system.domain.SysRepoHistory;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 仓库文件Service接口
@@ -67,4 +69,22 @@ public interface ISysRepoService
      * @return 结果
      */
     public int deleteSysRepoByRepoId(Long repoId);
+
+
+    /**
+     * 填充Sysrepo对象
+     *
+     * @param sysRepo 模板部分信息
+     * @return 字段填充后的对象
+     */
+    public SysRepo createSysRepo(SysRepo sysRepo);
+
+    /**
+     * 插入仓库文件信息
+     *
+     * @param sysRepo 仓库文件信息
+     * @param sysRepoHistory 仓库文件历史信息
+     * @return 插入结果
+     */
+    public int insertSysRepoAndSysRepoHistory(SysRepo sysRepo, SysRepoHistory sysRepoHistory);
 }

+ 18 - 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRepoHistoryServiceImpl.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
+import com.ruoyi.system.domain.SysRepo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.SysRepoHistoryMapper;
@@ -103,8 +105,20 @@ public class SysRepoHistoryServiceImpl implements ISysRepoHistoryService
         return sysRepoHistoryMapper.deleteSysRepoHistoryByHId(hId);
     }
 
-//    @Override
-//    public List<SysRepoHistory> selectSysRepoHistoryListbyRepoId(Long repoId) {
-//        return sysRepoHistoryMapper.selectSysRepoHistoryByRepoId(repoId);
-//    }
+    /**
+     * 填充SysRepoHistory对象
+     *
+     * @param sysRepo 模板部分信息
+     * @return 字段填充后的对象
+     */
+    public SysRepoHistory createSysRepoHistory(SysRepo sysRepo){
+        SysRepoHistory sysRepoHistory = new SysRepoHistory();
+        sysRepoHistory.setRepoId(sysRepo.getRepoId());
+        sysRepoHistory.setUrl(sysRepo.getUrl());
+        sysRepoHistory.setUploadBy(sysRepo.getUpdateBy());
+        sysRepoHistory.setFileName(sysRepo.getFileName());
+        sysRepoHistory.setVersion(sysRepo.getVersion());
+        sysRepoHistory.setRemark(sysRepo.getRemark());
+        return sysRepoHistory;
+    }
 }

+ 45 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRepoServiceImpl.java

@@ -1,12 +1,18 @@
 package com.ruoyi.system.service.impl;
 
+import java.beans.Transient;
 import java.util.List;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.VersionUtils;
+import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.system.domain.SysRepoHistory;
+import com.ruoyi.system.mapper.SysRepoHistoryMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.SysRepoMapper;
 import com.ruoyi.system.domain.SysRepo;
 import com.ruoyi.system.service.ISysRepoService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 仓库文件Service业务层处理
@@ -19,6 +25,8 @@ public class SysRepoServiceImpl implements ISysRepoService
 {
     @Autowired
     private SysRepoMapper sysRepoMapper;
+    @Autowired
+    private SysRepoHistoryMapper sysRepoHistoryMapper;
 
     /**
      * 查询仓库文件
@@ -103,4 +111,41 @@ public class SysRepoServiceImpl implements ISysRepoService
     {
         return sysRepoMapper.deleteSysRepoByRepoId(repoId);
     }
+
+    /**
+     * 填充Sysrepo对象
+     *
+     * @param sysRepo 模板部分信息
+     * @return 字段填充后的对象
+     */
+    public SysRepo createSysRepo(SysRepo sysRepo){
+        String filename = FileUtils.getNameNotExtract(sysRepo.getUrl());
+        sysRepo.setFileName(filename);
+        sysRepo.setRepoType(FileUtils.getFileExtension(filename));
+        sysRepo.setVersion(VersionUtils.incrementVersion(sysRepo.getVersion()));
+        return sysRepo;
+    }
+
+    /**
+     * 插入仓库文件信息
+     *
+     * @param sysRepo 仓库文件信息
+     * @param sysRepoHistory 仓库文件历史信息
+     * @return 插入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public int insertSysRepoAndSysRepoHistory(SysRepo sysRepo, SysRepoHistory sysRepoHistory)
+    {
+       int result =sysRepoMapper.updateSysRepo(sysRepo);
+        if(result!=1){
+            throw new RuntimeException("更新失败");
+        }
+       result = sysRepoHistoryMapper.insertSysRepoHistory(sysRepoHistory);
+       if(result!=1){
+           throw new RuntimeException("插入失败");
+       }
+       return 1;
+    }
+
 }