Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/wheng' into superb

superb 1 anno fa
parent
commit
a2fedf54dc

+ 31 - 0
common/src/main/java/com/koobietech/eas/common/constant/FileType.java

@@ -0,0 +1,31 @@
+package com.koobietech.eas.common.constant;
+
+public enum FileType {
+    IMAGE("20"),
+    VIDEO("30"),
+    AUDIO("40"),
+    XLSX("50"),
+    DOCX("51"),
+    PNG("21"),
+    JPEG("22"),
+    ZIP("60"),
+    RAR("61"),
+    MP4("41"),
+    MP3("42"),
+    PDF("80"),
+    FILE("70");
+
+    private String value;
+
+    FileType(String value) {
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 31 - 0
common/src/main/java/com/koobietech/eas/common/constant/FileTypeExt.java

@@ -0,0 +1,31 @@
+package com.koobietech.eas.common.constant;
+
+public enum FileTypeExt {
+    IMAGE(".jpeg"),
+    VIDEO(".mp4"),
+    AUDIO(".mp3"),
+    XLSX(".xlsx"),
+    DOCX(".docx"),
+    PNG(".png"),
+    JPEG(".jpeg"),
+    ZIP(".zip"),
+    RAR(".rar"),
+    MP4(".mp4"),
+    MP3(".mp3"),
+    PDF(".pdf"),
+    FILE(".file");
+
+    private String value;
+
+    FileTypeExt(String value) {
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 3 - 1
common/src/main/java/com/koobietech/eas/common/utils/FileManager.java

@@ -11,6 +11,8 @@ import java.text.DecimalFormat;
 @Component
 public class FileManager {
 
+    String separator = File.separator ;
+
     /**********************************
      * 文件夹 操作 工具类
      ***********************************/
@@ -104,7 +106,7 @@ public class FileManager {
                 if (file.isFile()) {
                     copyFile(file.getPath(), new File(newPath, file.getName()).getPath(), replaceFile);
                 } else if (file.isDirectory()) {
-                    copyFolder(file.getPath(), new File(newPath + "/" + file.getName()).getPath(), replaceFile);
+                    copyFolder(file.getPath(), new File(newPath + separator + file.getName()).getPath(), replaceFile);
                 }
             }
         }

+ 4 - 7
common/src/test/java/com/koobietech/eas/common/utils/PasswordManagerTest.java

@@ -1,19 +1,16 @@
 package com.koobietech.eas.common.utils;
 
 
+import java.util.Date;
+
 class PasswordManagerTest {
 
 
 
     public static void main(String[] args) {
 
-//        String newPath = "C:\\Users\\lc\\Desktop\\new\\2.xlsx";
-//
-//        FileManager fileManager = new FileManager();
-//
-//
-//        Double folderSize = fileManager.getFileSize(newPath);
-//        System.out.println( folderSize );
+        String property = System.getProperty("user.dir");
+        System.out.println( property );
 
     }
 

+ 3 - 1
controller/src/main/resources/application-dev.yaml

@@ -27,4 +27,6 @@ knife4j:
     language: zh_cn
 logging:
   level:
-    com.koobietech.eas.*: TRACE
+    com.koobietech.eas.*: TRACE
+project:
+  path: ${user.home}/archivesFiles

+ 2 - 0
controller/src/main/resources/application-local.yaml

@@ -28,3 +28,5 @@ knife4j:
 logging:
   level:
     com.koobietech.eas.*: TRACE
+project:
+  path: ${user.home}/archivesFiles

+ 2 - 0
controller/src/main/resources/application-wheng.yaml

@@ -28,3 +28,5 @@ knife4j:
 logging:
   level:
     com.koobietech.eas.*: TRACE
+project:
+  path: ${user.home}/archivesFiles

+ 2 - 0
controller/src/main/resources/application.yaml

@@ -51,3 +51,5 @@ aj:
     req-get-minute-limit: 30
     req-check-minute-limit: 60
     req-verify-minute-limit: 60
+project:
+  path: ${user.home}/archivesFiles

+ 15 - 8
controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java

@@ -31,19 +31,26 @@ import java.util.*;
 @SpringBootTest
 class ControllerApplicationTests {
 
+    @Value("${project.path}")
+    String archivesSavePath;
 
     @Test
     void test() {
-        System.out.println(StudentArchiveGenerator.generateStudentCode(
-                "2211",
-                "232126198703194770", "12016", "2020"
-        ));
+
         System.out.println(
-                StudentArchiveGenerator.generateArchiveCode(
-                        "ST2211XE6EE36M202412016",
-                        "20"
-                )
+                archivesSavePath
         );
+
+//        System.out.println(StudentArchiveGenerator.generateStudentCode(
+//                "2211",
+//                "232126198703194770", "12016", "2020"
+//        ));
+//        System.out.println(
+//                StudentArchiveGenerator.generateArchiveCode(
+//                        "ST2211XE6EE36M202412016",
+//                        "20"
+//                )
+//        );
     }
 
 

+ 16 - 0
dao/src/main/java/com/koobietech/eas/dao/dto/ArchivesDto.java

@@ -0,0 +1,16 @@
+package com.koobietech.eas.dao.dto;
+
+import lombok.Data;
+
+@Data
+public class ArchivesDto {
+    private String archiveCode;
+    private String path;
+    private boolean status;
+
+    public ArchivesDto(String path, boolean status, String archiveCode) {
+        this.archiveCode = archiveCode;
+        this.path = path;
+        this.status = status;
+    }
+}

+ 62 - 0
service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java

@@ -0,0 +1,62 @@
+package com.koobietech.eas.service;
+
+import com.koobietech.eas.dao.dto.ArchivesDto;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public interface EasArchivesFilesService {
+    /**
+     * 获取学生档案文件
+     * @param studentNumber 学号
+     * @return 学生档案文件
+     */
+    ArchivesDto getArchiveStudentsFile(String studentNumber);
+
+    /**
+     * 保存学生考勤文件
+     * @param studentNumber
+     * @param document
+     * @return
+     */
+    ArchivesDto saveArchiveAttendanceFile(String studentNumber, XWPFDocument document);
+    /**
+     * 保存学生评测文件
+     * @param studentNumber
+     * @param document
+     * @return
+     */
+    ArchivesDto saveArchiveScoresFile(String studentNumber, XWPFDocument document);
+
+    /**
+     * 保存学生档案文件
+     * @param studentNumber
+     * @param document
+     * @return
+     */
+    ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document);
+
+    /**
+     * 保存其他档案文件
+     * @param studentNumber
+     * @param stream
+     * @param type
+     * @return
+     */
+    ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type);
+
+    /**
+     * 获取文件
+     * @param filePath
+     * @return
+     */
+    OutputStream getArchiveFile(String filePath);
+
+    /**
+     * 删除文件
+     * @param filePath
+     * @return
+     */
+    boolean deleteArchiveFile(String filePath);
+}

+ 78 - 0
service/src/main/java/com/koobietech/eas/service/impl/EasArchivesFilesServiceImpl.java

@@ -0,0 +1,78 @@
+package com.koobietech.eas.service.impl;
+
+import com.koobietech.eas.common.constant.FileType;
+import com.koobietech.eas.common.constant.FileTypeExt;
+import com.koobietech.eas.common.utils.FileManager;
+import com.koobietech.eas.common.utils.StudentArchiveGenerator;
+import com.koobietech.eas.dao.dto.ArchivesDto;
+import com.koobietech.eas.service.EasArchivesFilesService;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Date;
+
+@Service
+public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
+
+    @Value("${project.path}")
+    String archivesSavePath;
+
+    @Resource
+    FileManager fileManager;
+
+    String separator = File.separator;
+
+    @Override
+    public ArchivesDto getArchiveStudentsFile(String studentNumber) {
+        return null;
+    }
+
+    @Override
+    public ArchivesDto saveArchiveAttendanceFile(String studentNumber, XWPFDocument document) {
+        String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, FileType.XLSX.getValue());
+        String path = getArchivePath(studentNumber, archiveCode);
+        if ( fileManager.isFileExists(path) ) {
+            fileManager.moveFile( path,  path + (new Date()).getTime() + ".back", true );
+        }
+        boolean status = fileManager.saveDocument(document, path);
+        return new ArchivesDto(path, status, archiveCode);
+    }
+
+    private String getArchivePath(String studentNumber, String archiveCode) {
+        return archivesSavePath + separator + studentNumber
+                + separator + archiveCode + FileTypeExt.XLSX.getValue();
+    }
+
+    @Override
+    public ArchivesDto saveArchiveScoresFile(String studentNumber, XWPFDocument document) {
+        return null;
+    }
+
+    @Override
+    public ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document) {
+        String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, FileType.DOCX.getValue());
+        String path = getArchivePath(studentNumber, archiveCode);
+        boolean status = fileManager.saveDocument(document, path);
+        return new ArchivesDto(path, status, archiveCode);
+    }
+
+    @Override
+    public ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type) {
+        return null;
+    }
+
+    @Override
+    public OutputStream getArchiveFile(String filePath) {
+        return null;
+    }
+
+    @Override
+    public boolean deleteArchiveFile(String filePath) {
+        return false;
+    }
+}