浏览代码

Merge branch 'wheng' of wuheng/eas-system into master

wuheng 1 年之前
父节点
当前提交
b49229f3e7
共有 100 个文件被更改,包括 2506 次插入1647 次删除
  1. 4 0
      common/pom.xml
  2. 1 0
      common/src/main/java/com/koobietech/eas/common/constant/ArchiveFileType.java
  3. 1 0
      common/src/main/java/com/koobietech/eas/common/constant/FileType.java
  4. 3 1
      common/src/main/java/com/koobietech/eas/common/pojo/JwtUserPojo.java
  5. 1 1
      common/src/main/java/com/koobietech/eas/common/result/JsonResult.java
  6. 5 3
      common/src/main/java/com/koobietech/eas/common/result/PageDataResult.java
  7. 16 5
      common/src/main/java/com/koobietech/eas/common/utils/ArchiveManager.java
  8. 29 22
      common/src/main/java/com/koobietech/eas/common/utils/FileManager.java
  9. 4 0
      common/src/main/java/com/koobietech/eas/common/utils/JwtManager.java
  10. 24 0
      common/src/main/java/com/koobietech/eas/common/utils/ResponseManager.java
  11. 43 8
      common/src/main/java/com/koobietech/eas/common/utils/SecurityManager.java
  12. 61 0
      common/src/main/java/com/koobietech/eas/common/utils/SnowflakeManager.java
  13. 0 3
      common/src/test/java/com/koobietech/eas/common/utils/PasswordManagerTest.java
  14. 4 0
      controller/pom.xml
  15. 21 10
      controller/src/main/java/com/koobietech/eas/config/ExceptionAdviceConfiguration.java
  16. 27 3
      controller/src/main/java/com/koobietech/eas/controller/EasArcTlsAttendanceController.java
  17. 47 9
      controller/src/main/java/com/koobietech/eas/controller/EasArcTlsFileDownloadController.java
  18. 25 2
      controller/src/main/java/com/koobietech/eas/controller/EasArcTlsScoresController.java
  19. 2 3
      controller/src/main/java/com/koobietech/eas/controller/EasEduCategoryController.java
  20. 58 0
      controller/src/main/java/com/koobietech/eas/controller/EasEduClassController.java
  21. 2 2
      controller/src/main/java/com/koobietech/eas/controller/EasEduClassroomController.java
  22. 20 5
      controller/src/main/java/com/koobietech/eas/controller/EasEduScheduleController.java
  23. 6 6
      controller/src/main/java/com/koobietech/eas/controller/EasEduSubjectsController.java
  24. 14 4
      controller/src/main/java/com/koobietech/eas/controller/EasSysDepartmentController.java
  25. 0 71
      controller/src/main/java/com/koobietech/eas/controller/EasSysStuProfileController.java
  26. 142 0
      controller/src/main/java/com/koobietech/eas/controller/EasSysStudentController.java
  27. 40 3
      controller/src/main/java/com/koobietech/eas/controller/EasSysUserInfoController.java
  28. 19 0
      controller/src/main/java/com/koobietech/eas/controller/EasSysUsersLoginController.java
  29. 19 1
      controller/src/main/resources/application-dev.yaml
  30. 18 0
      controller/src/main/resources/application-local.yaml
  31. 18 0
      controller/src/main/resources/application-wheng.yaml
  32. 20 3
      controller/src/main/resources/application.yaml
  33. 二进制
      controller/src/main/resources/temp/StuRegistTemp.docx
  34. 二进制
      controller/src/main/resources/temp/avatar.jpeg
  35. 二进制
      controller/src/main/resources/temp/kun.jpeg
  36. 0 112
      controller/src/test/java/com/koobietech/eas/controller/ChatClient.java
  37. 8 49
      controller/src/test/java/com/koobietech/eas/controller/ControllerApplicationTests.java
  38. 9 0
      dao/src/main/java/com/koobietech/eas/dao/constant/JwtType.java
  39. 1 1
      dao/src/main/java/com/koobietech/eas/dao/constant/UserType.java
  40. 25 0
      dao/src/main/java/com/koobietech/eas/dao/dto/AttendanceDto.java
  41. 3 3
      dao/src/main/java/com/koobietech/eas/dao/dto/EasArcTlsStudentsDto.java
  42. 21 0
      dao/src/main/java/com/koobietech/eas/dao/dto/GroupStudentsDto.java
  43. 17 0
      dao/src/main/java/com/koobietech/eas/dao/dto/ScheduleDto.java
  44. 20 0
      dao/src/main/java/com/koobietech/eas/dao/dto/ScoresDto.java
  45. 14 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/AttendanceMapper.java
  46. 10 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/GroupStudentsMapper.java
  47. 11 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/RoleMapper.java
  48. 12 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/ScheduleMapper.java
  49. 27 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/ScoresMapper.java
  50. 14 0
      dao/src/main/java/com/koobietech/eas/dao/mapper/UserProFileMapper.java
  51. 32 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/AttendancePojo.java
  52. 1 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/DepartmentPojo.java
  53. 10 10
      dao/src/main/java/com/koobietech/eas/dao/pojo/EasArcTlsAttendancePojo.java
  54. 11 4
      dao/src/main/java/com/koobietech/eas/dao/pojo/EasArcTlsScoresPojo.java
  55. 34 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/GroupStudentsPojo.java
  56. 13 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/RolePojo.java
  57. 75 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/SchedulePojo.java
  58. 31 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/ScoresPojo.java
  59. 2 1
      dao/src/main/java/com/koobietech/eas/dao/pojo/UserDetailPojo.java
  60. 12 0
      dao/src/main/java/com/koobietech/eas/dao/pojo/UserProFilePojo.java
  61. 57 22
      dao/src/main/resources/com/koobietech/eas/dao/mapper/AdminLoginMapper.xml
  62. 129 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/AttendanceMapper.xml
  63. 80 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/GroupStudentsMapper.xml
  64. 30 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/RoleMapper.xml
  65. 91 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/ScheduleMapper.xml
  66. 133 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/ScoresMapper.xml
  67. 49 0
      dao/src/main/resources/com/koobietech/eas/dao/mapper/UserProFileMapper.xml
  68. 6 0
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.java
  69. 0 32
      mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.java
  70. 35 1
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java
  71. 140 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchivesExample.java
  72. 0 70
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScoresExample.java
  73. 11 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudents.java
  74. 70 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudentsExample.java
  75. 0 153
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelation.java
  76. 0 680
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelationExample.java
  77. 17 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelation.java
  78. 70 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelationExample.java
  79. 17 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartment.java
  80. 70 0
      mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartmentExample.java
  81. 40 8
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.xml
  82. 65 11
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.xml
  83. 22 5
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsStudentsMapper.xml
  84. 0 258
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.xml
  85. 22 5
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasEduCltRelationMapper.xml
  86. 25 10
      mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasSysDepartmentMapper.xml
  87. 6 1
      pom.xml
  88. 23 2
      security/src/main/java/com/koobietech/eas/security/config/SecurityConfig.java
  89. 21 0
      security/src/main/java/com/koobietech/eas/security/exception/EasAuthenticationEntryPoint.java
  90. 20 0
      security/src/main/java/com/koobietech/eas/security/exception/EasAuthenticationFailureHandler.java
  91. 34 37
      security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java
  92. 12 0
      security/src/main/java/com/koobietech/eas/security/service/SecurityAccessService.java
  93. 36 0
      security/src/main/java/com/koobietech/eas/security/service/impl/SecurityAccessServiceImpl.java
  94. 5 0
      service/pom.xml
  95. 12 0
      service/src/main/java/com/koobietech/eas/service/EasArcArchivesService.java
  96. 7 1
      service/src/main/java/com/koobietech/eas/service/EasArcTlsAttendanceService.java
  97. 5 0
      service/src/main/java/com/koobietech/eas/service/EasArcTlsScoresService.java
  98. 5 1
      service/src/main/java/com/koobietech/eas/service/EasArchiveFileDownloadService.java
  99. 22 5
      service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java
  100. 12 0
      service/src/main/java/com/koobietech/eas/service/EasEduClassService.java

+ 4 - 0
common/pom.xml

@@ -14,6 +14,10 @@
     </parent>
 
     <dependencies>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>javax.annotation</groupId>
             <artifactId>javax.annotation-api</artifactId>

+ 1 - 0
common/src/main/java/com/koobietech/eas/common/constant/ArchiveFileType.java

@@ -6,6 +6,7 @@ public enum ArchiveFileType {
     DOC(".doc", 11, "application/msword"),
     XLS(".xls", 12, "application/vnd.ms-excel"),
     PPT(".ppt", 13, "application/vnd.ms-powerpoint"),
+    PPTX(".pptx", 13, "application/vnd.ms-powerpoint"),
     XLSX(".xlsx", 14, "application/vnd.openxmlformats-office, document.spreadsheetml.sheet"),
     DOCX(".docx", 15, "application/vnd.openxmlformats-office, document.wordprocessingml.document"),
     PDF(".pdf", 16, "application/pdf"),

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

@@ -9,6 +9,7 @@ public enum FileType {
     DOC(".doc", 11),
     XLS(".xls", 12),
     PPT(".ppt", 13),
+    PPTX(".pptx", 13),
     XLSX(".xlsx", 14),
     DOCX(".docx", 15),
     PDF(".pdf", 16),

+ 3 - 1
common/src/main/java/com/koobietech/eas/common/pojo/JwtUserPojo.java

@@ -10,11 +10,13 @@ public class JwtUserPojo {
     String username;
     Long id;
     Enum type;
+    Enum jwtType;
 
-    public JwtUserPojo(String username, Long id, Enum type) {
+    public JwtUserPojo(String username, Long id, Enum type, Enum jwtType) {
         this.username = username;
         this.id = id;
         this.type = type;
+        this.jwtType = jwtType;
     }
 
     public JwtUserPojo() {

+ 1 - 1
common/src/main/java/com/koobietech/eas/common/result/JsonResult.java

@@ -8,7 +8,7 @@ import java.io.Serializable;
 public class JsonResult implements Serializable {
     private boolean status = false;
     private String msg = "";
-    private Object data = null;
+    private Object data = new String[]{};
 
     private Integer code = 200;
 

+ 5 - 3
common/src/main/java/com/koobietech/eas/common/result/PageDataResult.java

@@ -2,14 +2,16 @@ package com.koobietech.eas.common.result;
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author lc
  */
 @Data
-public class PageDataResult {
+public class PageDataResult<T> {
     private long total = 0;
-    private Object data = null;
-    public static PageDataResult init(Object data, long total){
+    private List<T> data = null;
+    public static PageDataResult init(List data, long total){
         PageDataResult ret = new PageDataResult();
         ret.setData(data);
         ret.setTotal(total);

+ 16 - 5
common/src/main/java/com/koobietech/eas/common/utils/ArchiveManager.java

@@ -8,10 +8,10 @@ import com.koobietech.eas.common.pojo.StudentNumberInfoPojo;
 import org.springframework.util.StringUtils;
 
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.time.Period;
 import java.time.format.DateTimeFormatter;
 import java.util.Locale;
+import java.util.Random;
 import java.util.UUID;
 
 /**
@@ -34,7 +34,7 @@ public class ArchiveManager {
      */
     public static String generateArchiveCode(String generateStudentCode, String fileTypeCode) {
         String studentNum = generateStudentCode.substring(2, STUDENT_NUM_LENGTH + 3);
-        String nowDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHhmmss", Locale.CHINA));
+        String nowDate = String.valueOf(new SnowflakeManager( Long.valueOf(RandomInt(22)) , 1L).nextId()).substring(0, 12);
         String archiveCode = ARCHIVE_CODE_PREFIX + studentNum + nowDate + fileTypeCode;
         if (archiveCode.length() < ARCHIVE_CODE_LENGTH) {
             archiveCode += UUID.randomUUID().toString()
@@ -43,6 +43,17 @@ public class ArchiveManager {
         return archiveCode;
     }
 
+    /**
+     * 返回随机数
+     */
+    private static int RandomInt(int end){
+        int i = new Random().nextInt(end);
+        if ( i == 0 ) {
+            return RandomInt(end);
+        }
+        return i;
+    }
+
     /**
      *解析档案编号信息
      *
@@ -90,7 +101,7 @@ public class ArchiveManager {
 
         // 如果生成的档案编码长度不足,用UUID填充
         if (studentCode.length() < STUDENT_CODE_LENGTH) {
-            studentCode += UUID.randomUUID().toString()
+            studentCode += String.valueOf(new SnowflakeManager( Long.valueOf(RandomInt(22)) , 1L).nextId())
                     .substring(0, STUDENT_CODE_LENGTH - studentCode.length());
         }
         return studentCode;
@@ -167,7 +178,7 @@ public class ArchiveManager {
      */
     private static LocalDate getStudentGraduationDate(LocalDate enrollmentDate) {
         // 假设毕业时间为入学时间的四年后
-        return enrollmentDate.plusYears(4);
+        return enrollmentDate.plusYears(2);
     }
 
     /**
@@ -175,7 +186,7 @@ public class ArchiveManager {
      * @param idCard
      * @return
      */
-    private static LocalDate extractBirthDate(String idCard) {
+    public static LocalDate extractBirthDate(String idCard) {
         // 提取身份证号码中的出生日期部分
         String birthdate = idCard.substring(6, 14);
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

+ 29 - 22
common/src/main/java/com/koobietech/eas/common/utils/FileManager.java

@@ -39,8 +39,9 @@ public class FileManager {
             }
         } catch (IOException e) {}finally {
             try {
-                if (Objects.nonNull(stream))
+                if (Objects.nonNull(stream)){
                     stream.close();
+                }
             } catch (IOException e) {}
         }
         if ( size > 0  ) {
@@ -294,14 +295,15 @@ public class FileManager {
             int bytesRead;
             byte[] buffer = new byte[1024];
             while ((bytesRead = stream.read(buffer)) != -1){
-                fileOutputStream.write(bytesRead);
+                fileOutputStream.write(buffer, 0, bytesRead);
             }
         } catch (IOException e) {
             return  false;
         } finally {
             try {
-                if (Objects.nonNull(fileOutputStream))
-                fileOutputStream.close();
+                if (Objects.nonNull(fileOutputStream)) {
+                    fileOutputStream.close();
+                }
             }catch (IOException e){}
         }
         return true;
@@ -391,7 +393,7 @@ public class FileManager {
         FileInputStream fileOutputStream = null;
         try {
             fileOutputStream = new FileInputStream(filePath);
-        } catch (FileNotFoundException e) {}
+        } catch (FileNotFoundException ignored) {}
         return fileOutputStream;
     }
 
@@ -432,60 +434,65 @@ public class FileManager {
         if ( !isFolderExists(folderToCompress)) {
             return false;
         }
-        if (isFolderExists( tempZipFilePath )) {
-            return false;
+        if ( isFolderExists( tempZipFilePath )) {
+            deleteFolder(tempZipFilePath);
         }
         FileOutputStream fileOutputStream = null;
         ZipOutputStream zipOutputStream = null;
         try {
             fileOutputStream = new FileOutputStream(tempZipFilePath);
             zipOutputStream = new ZipOutputStream(fileOutputStream);
-            compressFolder(folderToCompress, zipOutputStream);
+            compressFolder(folderToCompress, zipOutputStream,  "");
         } catch (IOException e) {
             result = false;
         } finally {
             try {
-                if ( Objects.nonNull(fileOutputStream) ) {
-                    fileOutputStream.close();
-                }
                 if ( Objects.nonNull(zipOutputStream)) {
+                    zipOutputStream.finish();
+                    zipOutputStream.flush();
                     zipOutputStream.close();
                 }
+                if ( Objects.nonNull(fileOutputStream) ) {
+                    fileOutputStream.close();
+                }
             } catch (Exception ignored) {}
         }
         return result;
     }
 
-    private void compressFolder(String sourceFolder, ZipOutputStream zipOutputStream) {
+    private void compressFolder(String sourceFolder, ZipOutputStream zipOutputStream,  String folderLevel) {
         File folder = new File(sourceFolder);
         File[] files = folder.listFiles();
         if (files != null) {
             for (File file : files) {
+                String folderLevelZipEntry = file.getName();
+                if ( !"".equals(folderLevel) ) {
+                    folderLevelZipEntry = folderLevel + File.separator  + file.getName();
+                }
                 if (file.isDirectory()) {
-                    compressFolder( sourceFolder + separator + file.getName(), zipOutputStream);
-                } else {
-                    addToZipFile(file.getName(), sourceFolder + File.separator + file.getName(), zipOutputStream);
+                    compressFolder( file.getAbsolutePath(), zipOutputStream, folderLevelZipEntry );
+                } else if (file.isFile()) {
+                    addToZipFile(file.getAbsolutePath(), zipOutputStream, folderLevelZipEntry);
                 }
             }
         }
     }
 
-    private void addToZipFile(String fileName, String fileAbsolutePath, ZipOutputStream zipOutputStream) {
+    private void addToZipFile(String fileAbsolutePath, ZipOutputStream zipOutputStream, String folderLevel) {
         FileInputStream fileInputStream = null;
-        ZipEntry entry = new ZipEntry(fileName);
+        ZipEntry entry = new ZipEntry(folderLevel);
         try {
-            zipOutputStream.putNextEntry(entry);
             fileInputStream = new FileInputStream(fileAbsolutePath);
-            byte[] buffer = new byte[1024];
+            zipOutputStream.putNextEntry(entry);
+            zipOutputStream.setComment("爱扣钉 档案系统");
+            byte[] buffer = new byte[4096];
             int bytesRead;
             while ((bytesRead = fileInputStream.read(buffer)) != -1) {
                 zipOutputStream.write(buffer, 0, bytesRead);
             }
+            zipOutputStream.closeEntry();
         } catch (Exception ignored) {}finally {
             try {
-                if ( Objects.nonNull(zipOutputStream )) {
-                    zipOutputStream.closeEntry();
-                }
                 if ( Objects.nonNull(fileInputStream)) {
                     fileInputStream.close();
                 }

+ 4 - 0
common/src/main/java/com/koobietech/eas/common/utils/JwtManager.java

@@ -5,6 +5,7 @@ import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.exceptions.JWTVerificationException;
 import com.auth0.jwt.interfaces.DecodedJWT;
 import com.auth0.jwt.interfaces.JWTVerifier;
+import com.koobietech.eas.dao.constant.JwtType;
 import com.koobietech.eas.dao.constant.UserType;
 import com.koobietech.eas.common.exception.EasException;
 import com.koobietech.eas.common.pojo.JwtUserPojo;
@@ -34,6 +35,7 @@ public class JwtManager {
                 .withClaim("user", userDto.getUsername())
                 .withClaim("id", userDto.getId())
                 .withClaim("type", userDto.getType().toString())
+                .withClaim("jwtType", userDto.getJwtType().toString())
                 .withExpiresAt( calendar.getTime() )
                 .sign(Algorithm.HMAC256(SECRET));
         return sign;
@@ -51,6 +53,7 @@ public class JwtManager {
                 .withClaim("user", userDto.getUsername())
                 .withClaim("id", userDto.getId())
                 .withClaim("type", userDto.getType().toString())
+                .withClaim("jwtType", userDto.getJwtType().toString())
                 .withExpiresAt( calendar.getTime() )
                 .sign(Algorithm.HMAC256(SECRET));
         return sign;
@@ -69,6 +72,7 @@ public class JwtManager {
             jwtUserPojo.setId(verify.getClaim("id").asLong());
             jwtUserPojo.setUsername(verify.getClaim("user").asString());
             jwtUserPojo.setType(UserType.valueOf(verify.getClaim("type").asString()));
+            jwtUserPojo.setJwtType(JwtType.valueOf(verify.getClaim("jwtType").asString()));
         } catch ( JWTVerificationException e){
             throw new EasException("token 不正确!");
         }

+ 24 - 0
common/src/main/java/com/koobietech/eas/common/utils/ResponseManager.java

@@ -0,0 +1,24 @@
+package com.koobietech.eas.common.utils;
+
+import cn.hutool.json.JSONUtil;
+import com.koobietech.eas.common.result.JsonResult;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @author lc
+ */
+public class ResponseManager {
+    public static void printResponse(HttpServletResponse response, String message, int code) {
+        response.setHeader("Cache-Control","no-cache");
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("application/json");
+        try {
+            response.getWriter().println(JSONUtil.parse(JsonResult.fail(message, code)));
+            response.getWriter().flush();
+            response.getWriter().close();
+            response.flushBuffer();
+        } catch (IOException ignored) {}
+    }
+}

+ 43 - 8
common/src/main/java/com/koobietech/eas/common/utils/SecurityManager.java

@@ -2,6 +2,7 @@ package com.koobietech.eas.common.utils;
 
 import com.koobietech.eas.dao.constant.UserType;
 import com.koobietech.eas.dao.pojo.UserDetailPojo;
+import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 import java.util.Objects;
@@ -45,13 +46,23 @@ public class SecurityManager {
         boolean isStudent = false;
         UserDetailPojo principal = getPrincipal();
         if (Objects.nonNull(principal)) {
-            if ( principal.getUserType().equals(UserType.MEMBER) ) {
+            if ( principal.getUserType().equals(UserType.member) ) {
                 isStudent = true;
             }
         }
         return isStudent;
     }
 
+    public static String getStudentNumber() {
+        UserDetailPojo principal = getPrincipal();
+        if (Objects.nonNull(principal)) {
+            if ( isStudentUser() ) {
+                return principal.getStudentNumber();
+            }
+        }
+        return "";
+    }
+
     /**
      * 取学员登录ID
      * @return
@@ -75,14 +86,38 @@ public class SecurityManager {
         return Objects.nonNull(principal);
     }
 
-    private static UserDetailPojo getPrincipal() {
-        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-        if (Objects.nonNull(principal)) {
-            if (principal instanceof UserDetailPojo) {
-                return (UserDetailPojo) principal;
-            } else {
-                return null;
+    /**
+     * 是否登录
+     * @return
+     */
+    public static UserType getUserType() {
+        UserDetailPojo principal = getPrincipal();
+        if ( Objects.nonNull(principal) ) {
+            return principal.getUserType();
+        }
+        return null;
+    }
+
+    public static Authentication getAuthentication() {
+        try {
+        return SecurityContextHolder.getContext().getAuthentication();
+        } catch (Exception ignored) {
+            return null;
+        }
+    }
+
+    public static UserDetailPojo getPrincipal() {
+        try {
+            Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+            if (Objects.nonNull(principal)) {
+                if (principal instanceof UserDetailPojo) {
+                    return (UserDetailPojo) principal;
+                } else {
+                    return null;
+                }
             }
+        } catch (Exception e) {
+            return null;
         }
         return null;
     }

+ 61 - 0
common/src/main/java/com/koobietech/eas/common/utils/SnowflakeManager.java

@@ -0,0 +1,61 @@
+package com.koobietech.eas.common.utils;
+public class SnowflakeManager {
+
+    private final long twepoch = 1288834974657L;
+    private final long workerIdBits = 5L;
+    private final long datacenterIdBits = 5L;
+    private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
+    private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
+    private final long sequenceBits = 12L;
+    private final long workerIdShift = sequenceBits;
+    private final long datacenterIdShift = sequenceBits + workerIdBits;
+    private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
+    private final long sequenceMask = -1L ^ (-1L << sequenceBits);
+    private final long workerIdMask = -1L ^ (-1L << workerIdBits);
+    private final long datacenterIdMask = -1L ^ (-1L << datacenterIdBits);
+
+    private final long workerId;
+    private final long datacenterId;
+    private volatile long sequence = 0L;
+    private volatile long lastTimestamp = -1L;
+
+    public SnowflakeManager(long workerId, long datacenterId) {
+        if (workerId > maxWorkerId || workerId < 0) {
+            throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
+        }
+        if (datacenterId > maxDatacenterId || datacenterId < 0) {
+            throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
+        }
+        this.workerId = workerId;
+        this.datacenterId = datacenterId;
+    }
+
+    public synchronized long nextId() {
+        long timestamp = timeGen();
+        if (timestamp < lastTimestamp) {
+            throw new RuntimeException(String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
+        }
+        if (lastTimestamp == timestamp) {
+            sequence = (sequence + 1) & sequenceMask;
+            if (sequence == 0) { // sequence overflow, wait next tick
+                timestamp = tilNextMillis(lastTimestamp);
+            }
+        } else {
+            sequence = 0L;
+        }
+        lastTimestamp = timestamp;
+        return ((timestamp - twepoch) << timestampLeftShift) | (datacenterId << datacenterIdShift) | (workerId << workerIdShift) | sequence;
+    }
+
+    private long tilNextMillis(long lastTimestamp) {
+        long timestamp = timeGen();
+        while (timestamp <= lastTimestamp) {
+            timestamp = timeGen();
+        }
+        return timestamp;
+    }
+
+    private long timeGen() {
+        return System.currentTimeMillis();
+    }
+}

+ 0 - 3
common/src/test/java/com/koobietech/eas/common/utils/PasswordManagerTest.java

@@ -6,8 +6,5 @@ class PasswordManagerTest {
 
     public static void main(String[] args) {
 
-
-
     }
-
 }

+ 4 - 0
controller/pom.xml

@@ -58,6 +58,10 @@
             <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 21 - 10
controller/src/main/java/com/koobietech/eas/config/ExceptionAdviceConfiguration.java

@@ -5,6 +5,7 @@ import com.koobietech.eas.common.result.JsonResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.AuthenticationException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseStatus;
@@ -18,16 +19,25 @@ public class ExceptionAdviceConfiguration {
 
     private static final Logger logger = LoggerFactory.getLogger(ExceptionAdviceConfiguration.class);
 
+    @ResponseBody
+    @ResponseStatus(HttpStatus.OK)
+    @ExceptionHandler(AuthenticationException.class)
+    public JsonResult handleAuthenticationException(AuthenticationException ex) {
+        System.out.println( ex.getMessage() );
+        return JsonResult.fail(ex.getMessage(), 1000);
+    }
+
     @ResponseBody
     @ResponseStatus(HttpStatus.OK)
     @ExceptionHandler(Exception.class)
     public JsonResult exceptionHandler(Exception e){
         StackTraceElement[] stackTrace = e.getStackTrace();
-        logger.error("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
-        for (StackTraceElement element : stackTrace) {
-            logger.error(element.toString());
-        }
-        logger.error(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
+        //logger.error("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
+//        for (StackTraceElement element : stackTrace) {
+//            logger.error(element.toString());
+//        }
+        e.printStackTrace();
+        //logger.error(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
         return JsonResult.fail(e.getMessage(), 500);
     }
 
@@ -36,11 +46,12 @@ public class ExceptionAdviceConfiguration {
     @ExceptionHandler(EasException.class)
     public JsonResult exceptionHandler(EasException e){
         StackTraceElement[] stackTrace = e.getStackTrace();
-        logger.error("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
-        for (StackTraceElement element : stackTrace) {
-            logger.error(element.toString());
-        }
-        logger.error("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
+//        logger.error("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||");
+//        for (StackTraceElement element : stackTrace) {
+//            logger.error(element.toString());
+//        }
+        e.printStackTrace();
+//        logger.error("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
         return JsonResult.fail(e.getMessage(), e.getCode());
     }
 }

+ 27 - 3
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsAttendanceController.java

@@ -4,6 +4,8 @@ import com.github.pagehelper.PageHelper;
 import com.koobietech.eas.common.result.JsonPageResult;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.common.utils.SecurityManager;
+import com.koobietech.eas.dao.dto.AttendanceDto;
 import com.koobietech.eas.mbg.model.EasArcTlsAttendance;
 import com.koobietech.eas.service.EasArcTlsAttendanceService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -12,6 +14,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
+/**
+ * @author lc
+ */
 @Tag(name = "签到模块")
 @RestController
 @RequestMapping("/attendance")
@@ -20,10 +25,29 @@ public class EasArcTlsAttendanceController {
     @Resource
     private EasArcTlsAttendanceService easArcTlsAttendanceService;
 
-    @GetMapping("/getStudentList")
+    @PostMapping("/queryAttendance")
+    @Operation(summary = "综合查询签到打卡信息", description = "综合查询签到打卡信息")
+    public JsonPageResult queryAttendance(@RequestBody AttendanceDto dto,
+                                         @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+
+        if ( SecurityManager.isStudentUser() ) {
+            dto.setStudentId(SecurityManager.getLoginSid().intValue());
+        }
+
+        PageDataResult res =  easArcTlsAttendanceService.queryAttendance(dto);
+        return JsonPageResult.data(res);
+    }
+
+    @PostMapping("/getStudentList")
     @Operation(summary = "获取学生列表", description = "签到的时候会根据课表ID来获取学生列表(scheduleId)")
-    public JsonResult getStudentList(@RequestParam Long scheduleId) {
-        return JsonResult.data(easArcTlsAttendanceService.getStudentList(scheduleId));
+    public JsonResult getStudentList(@RequestBody AttendanceDto dto) {
+
+        if ( SecurityManager.isStudentUser() ) {
+            dto.setStudentId(SecurityManager.getLoginSid().intValue());
+        }
+
+        return JsonResult.data(easArcTlsAttendanceService.getStudentList(dto));
     }
 
     @PostMapping("/query")

+ 47 - 9
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsFileDownloadController.java

@@ -1,33 +1,63 @@
 package com.koobietech.eas.controller;
 
 import com.koobietech.eas.common.result.JsonResult;
+import com.koobietech.eas.common.utils.SecurityManager;
+import com.koobietech.eas.mbg.model.EasArcArchives;
+import com.koobietech.eas.service.EasArcArchivesService;
 import com.koobietech.eas.service.EasArchiveFileDownloadService;
+import com.koobietech.eas.service.EasArchivesFilesService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * @author lc
  */
 @Tag(name = "下载文件模块")
 @RestController
-@RequestMapping("/file")
+@RequestMapping("/archive")
 public class EasArcTlsFileDownloadController {
 
     @Resource
     EasArchiveFileDownloadService easArchiveFileDownloadService;
 
-    @GetMapping("/getTokenById")
+    @Resource
+    EasArcArchivesService easArcArchivesService;
+
+    @Resource
+    EasArchivesFilesService easArchivesFilesService;;
+
+
+    @GetMapping("/refreshArchive")
+    @Operation(summary = "刷新档案", description = "刷新档案")
+    public JsonResult refreshArchive(@RequestParam(required = false) String studentNumber) {
+
+        if ( SecurityManager.isStudentUser() ) {
+            easArchivesFilesService.refreshProfile(SecurityManager.getStudentNumber());
+            return JsonResult.ok();
+        }
+
+        easArchivesFilesService.refreshProfile(studentNumber);
+
+        return JsonResult.ok();
+    }
+
+    @GetMapping("/getTokenByArchiveNumber")
     @Operation(summary = "获取下载token", description = "前端传入archiveId,后端返回下载token")
-    public JsonResult getFile(Integer archiveId) {
+    public JsonResult getFile(@RequestParam String archiveNumber) {
 
-        String archiveToken = easArchiveFileDownloadService.getArchiveToken(archiveId);
+        if ( SecurityManager.isStudentUser() ) {
+            if ( ! easArchiveFileDownloadService.
+                    validateArchiveNumberByUser(archiveNumber,  SecurityManager.getStudentNumber() ) ) {
+                return JsonResult.fail("非法访问");
+            }
+        }
+
+        String archiveToken = easArchiveFileDownloadService.getArchiveToken(archiveNumber);
 
         return JsonResult.data(archiveToken);
     }
@@ -40,7 +70,15 @@ public class EasArcTlsFileDownloadController {
         easArchiveFileDownloadService.downloadFileByToken(archiveToken, response);
     }
 
-
+    @PostMapping("/getArchives")
+    @Operation(summary = "获取档案", description = "获取档案")
+    public JsonResult getArchives(@RequestBody EasArcArchives easArcArchives){
+        if ( SecurityManager.isStudentUser() ) {
+            easArcArchives.setStudentNumber(SecurityManager.getStudentNumber() );
+        }
+        List<EasArcArchives> res = easArcArchivesService.getArchives(easArcArchives);
+        return JsonResult.data(res);
+    }
 
 
 }

+ 25 - 2
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsScoresController.java

@@ -4,6 +4,8 @@ import com.github.pagehelper.PageHelper;
 import com.koobietech.eas.common.result.JsonPageResult;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.common.utils.SecurityManager;
+import com.koobietech.eas.dao.dto.ScoresDto;
 import com.koobietech.eas.mbg.model.EasArcTlsScores;
 import com.koobietech.eas.service.EasArcTlsScoresService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -69,13 +71,34 @@ public class EasArcTlsScoresController {
         return JsonPageResult.data(pageDataResult);
     }
 
+    /**
+     * 条件查询学生成绩信息
+     * @param scoresDto
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @PostMapping(value = "/queryScores")
+    @Operation(summary = "综合查询分数接口",description = "综合查询分数接口")
+    public JsonPageResult queryStudentScores(@RequestBody ScoresDto scoresDto,
+                                               @RequestParam Integer pageNum,@RequestParam Integer pageSize){
+        PageHelper.startPage(pageNum,pageSize);
+
+        if ( SecurityManager.isStudentUser() ) {
+            scoresDto.setStudentId(SecurityManager.getLoginSid().intValue());
+        }
+
+        PageDataResult pageDataResult = easArcTlsScoresService.queryStudentScores(scoresDto);
+        return JsonPageResult.data(pageDataResult);
+    }
+
     @PostMapping(value = "/import")
     @Operation(summary = "Excel导入学生成绩信息",description = "用于Excel导入学生成绩信息")
-    public JsonResult importExcelScores(MultipartFile excelFile) {
+    public JsonResult importExcelScores(MultipartFile file) {
         InputStream inputStream = null;
         Boolean ret;
         try {
-            inputStream = excelFile.getInputStream();
+            inputStream = file.getInputStream();
             ret = easArcTlsScoresService.importExcelScores(inputStream);
         } catch (IOException e) {
             ret = false;

+ 2 - 3
controller/src/main/java/com/koobietech/eas/controller/EasEduCategoryController.java

@@ -30,8 +30,7 @@ public class EasEduCategoryController {
     @Operation(summary = "添加课程类别" , description = "用于添加课程类别")
     public JsonResult addEasEduCategory(@RequestBody EasEduCategory easEduCategory ){
         int add = easEduCategoryService.addEasEduCategory( easEduCategory );
-        System.out.println( add );
-        return JsonResult.ok("添加成功");
+        return JsonResult.bool(add > 0);
     }
 
     /**
@@ -39,7 +38,7 @@ public class EasEduCategoryController {
      * @param easEduCategory
      * @return
      */
-    @PostMapping(value = "/update")
+    @PutMapping(value = "/update")
     @Operation(summary = "课程类别更新" , description = "用于课程类别更新")
     public JsonResult updateEasEduCategory(@RequestBody EasEduCategory easEduCategory){
         int i = easEduCategoryService.updateEasEduCategory( easEduCategory );

+ 58 - 0
controller/src/main/java/com/koobietech/eas/controller/EasEduClassController.java

@@ -6,7 +6,9 @@ import com.koobietech.eas.common.constant.Disabled;
 import com.koobietech.eas.common.result.JsonPageResult;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.dto.GroupStudentsDto;
 import com.koobietech.eas.mbg.model.EasEduClass;
+import com.koobietech.eas.mbg.model.EasEduCltRelation;
 import com.koobietech.eas.service.EasEduClassService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -112,4 +114,60 @@ public class EasEduClassController {
         PageDataResult data = easEduClassService.selectCondition(easEduClass);
         return JsonPageResult.data(data);
     }
+
+    /**
+     * 查询班级学员
+     * @return
+     */
+    @GetMapping(value = "/queryClassStudentByGroupId/{groupId}")
+    @Operation(summary = "查询所有的班级类根据Id",description = "查询所有的班级类")
+    public JsonResult queryClassStudentByGroupId(@PathVariable Integer groupId){;
+        return JsonResult.data(easEduClassService.queryClassStudentById(groupId));
+    }
+
+    /**
+     * 查询班级学员
+     * @return
+     */
+    @PostMapping(value = "/groupStudent")
+    @Operation(summary = "查询所有的班级类",description = "查询所有的班级类")
+    public JsonResult queryClassStudent(@RequestBody GroupStudentsDto dto){;
+        return JsonResult.data(easEduClassService.queryClassStudent(dto));
+    }
+
+
+    /**
+     * 通过条件查询班级类
+     * @return
+     */
+    @PostMapping(value = "/groupStudent/{groupId}")
+    @Operation(summary = "更新班级学员", description = "更新班级学员")
+    public JsonResult groupStudent(@RequestBody Integer[] studentIds,
+                                          @PathVariable Integer groupId) {
+        boolean success =  easEduClassService.updateGroupStudentForm(groupId, studentIds);
+        return JsonResult.bool(success);
+    }
+
+    /**
+     * 删除学员
+     * @return
+     */
+    @DeleteMapping(value = "/groupStudent/{rowId}")
+    @Operation(summary = "删除班级学员", description = "删除班级学员")
+    public JsonResult groupStudent( @PathVariable Integer rowId) {
+        boolean success =  easEduClassService.groupStudentDelete(rowId);
+        return JsonResult.bool(success);
+    }
+
+    /**
+     * 删除学员
+     * @return
+     */
+    @PutMapping(value = "/groupStudent")
+    @Operation(summary = "班级班级学员", description = "班级班级学员")
+    public JsonResult groupStudent(@RequestBody EasEduCltRelation easEduCltRelation) {
+        boolean success =  easEduClassService.groupStudentUpdate(easEduCltRelation);
+        return JsonResult.bool(success);
+    }
+
 }

+ 2 - 2
controller/src/main/java/com/koobietech/eas/controller/EasEduClassroomController.java

@@ -40,9 +40,9 @@ public class EasEduClassroomController {
     }
 
 
-    @DeleteMapping("/delete")
+    @DeleteMapping("/delete/{id}")
     @Operation(summary = "删除教室", description = "删除教室信息表数据根据ID")
-    public JsonResult delete(@RequestParam Integer id) {
+    public JsonResult delete(@PathVariable Integer id) {
         Boolean ret = easEduClassroomService.delete(id);
         if (ret) {
             return JsonResult.ok();

+ 20 - 5
controller/src/main/java/com/koobietech/eas/controller/EasEduScheduleController.java

@@ -1,9 +1,13 @@
 package com.koobietech.eas.controller;
 
 import com.github.pagehelper.PageHelper;
+import com.koobietech.eas.common.result.JsonPageResult;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.common.utils.SecurityManager;
 import com.koobietech.eas.dao.dto.ConflictDto;
+import com.koobietech.eas.dao.dto.ScheduleDto;
+import com.koobietech.eas.dao.pojo.SchedulePojo;
 import com.koobietech.eas.mbg.model.EasEduSchedule;
 import com.koobietech.eas.service.EasEduScheduleService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -11,6 +15,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @RestController
 @Tag(name = "课程表模块")
@@ -53,13 +58,23 @@ public class EasEduScheduleController {
 
     @PostMapping("/query")
     @Operation(summary = "查询课程表", description = "根据参数查询课程表信息")
-    public JsonResult query(@RequestBody(required = false) EasEduSchedule schedule,
-                            @RequestParam Long pageNum, @RequestParam Long pageSize) {
-
-
+    public JsonPageResult query(@RequestBody(required = false) EasEduSchedule schedule,
+                                @RequestParam Long pageNum, @RequestParam Long pageSize) {
         PageHelper.startPage(Math.toIntExact(pageNum), Math.toIntExact(pageSize));
         PageDataResult ret = easEduScheduleService.query(schedule);
-        System.out.println(ret.toString());
+        return JsonPageResult.data(ret);
+    }
+
+    @PostMapping("/querySchedule")
+    @Operation(summary = "查询课程表", description = "根据参数查询课程表信息")
+    public JsonResult querySchedule(@RequestBody(required = false) ScheduleDto schedule) {
+
+        if ( SecurityManager.isStudentUser() ) {
+            // 如果是学生用户,则只查询自己的课程表
+            schedule.setStudentId(SecurityManager.getLoginSid().intValue());
+        }
+
+        List<SchedulePojo> ret = easEduScheduleService.querySchedule(schedule);
         return JsonResult.data(ret);
     }
 

+ 6 - 6
controller/src/main/java/com/koobietech/eas/controller/EasEduSubjectsController.java

@@ -28,7 +28,7 @@ public class EasEduSubjectsController {
      * @param easEduSubjects
      * @return
      */
-    @PostMapping(value = "/addSubject")
+    @PostMapping(value = "/add")
     @Operation(summary = "添加课程" , description = "用于添加课程")
     public JsonResult addSubject( @RequestBody EasEduSubjects easEduSubjects){
         int addSubject = easEduSubjectsService.addSubject(easEduSubjects);
@@ -41,7 +41,7 @@ public class EasEduSubjectsController {
      * @param easEduSubjects
      * @return
      */
-    @PostMapping(value = "/updateSubjects")
+    @PostMapping(value = "/update")
     @Operation(summary = "修改课程" , description = "用于修改课程")
     public JsonResult updateSubjects( @RequestBody EasEduSubjects easEduSubjects){
         int update_i = easEduSubjectsService.updateSubjects(easEduSubjects);
@@ -57,7 +57,7 @@ public class EasEduSubjectsController {
      * @param id
      * @return
      */
-    @DeleteMapping(value = "/deleteSubjects/{id}")
+    @DeleteMapping(value = "/delete/{id}")
     @Operation(summary = "删除课程",description = "用于删除课程")
     public JsonResult deleteSubjects(@PathVariable Integer id){
         int delete_i = easEduSubjectsService.deleteSubjects(id);
@@ -73,7 +73,7 @@ public class EasEduSubjectsController {
      * @param id
      * @return
      */
-    @GetMapping(value = "/selectById")
+    @GetMapping(value = "/queryById")
     @Operation(summary = "id查询课程" ,description = "根据id查询课程")
     public JsonResult selectById(Integer id){
         EasEduSubjects easEduSubjects = easEduSubjectsService.selectById(id);
@@ -87,7 +87,7 @@ public class EasEduSubjectsController {
      * 查询所有课程及其信息
      * @return
      */
-    @GetMapping(value = "/selectAll")
+    @GetMapping(value = "/queryAll")
     @Operation(summary = "查询所有课程",description = "用于查询所有课程")
     public JsonResult selectAll(){
         List<EasEduSubjects> easEduSubjects = easEduSubjectsService.selectAll();
@@ -101,7 +101,7 @@ public class EasEduSubjectsController {
      * @param pageSize
      * @return
      */
-    @PostMapping(value = "/selectByCondition")
+    @PostMapping(value = "/query")
     @Operation(summary = "根据条件进行查询课程", description = "用于根据条件查询课程")
     public JsonPageResult selectByCondition(@RequestBody EasEduSubjects easEduSubjects,
                                             @RequestParam Integer pageNum, @RequestParam Integer pageSize) {

+ 14 - 4
controller/src/main/java/com/koobietech/eas/controller/EasSysDepartmentController.java

@@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 
 @RestController
@@ -45,11 +46,13 @@ public class EasSysDepartmentController {
     @DeleteMapping("/delete")
     @Operation(summary = "删除部门", description = "删除部门表数据根据ID")
     public JsonResult delete(@RequestParam Long id) {
-        Boolean ret = easSysDepartmentService.delete(id);
-        if (ret) {
-            return JsonResult.ok();
-        }
+        //部门禁止编辑
         return JsonResult.fail();
+//        Boolean ret = easSysDepartmentService.delete(id);
+//        if (ret) {
+//            return JsonResult.ok();
+//        }
+//        return JsonResult.fail();
     }
 
 
@@ -63,5 +66,12 @@ public class EasSysDepartmentController {
         return JsonResult.fail();
     }
 
+    @PutMapping("/updateDepartmentUsers/{departmentId}")
+    @Operation(summary = "更新部门用户", description = "更新部门用户")
+    public JsonResult updateDepartmentUsers(
+            @RequestBody List<String> departmentUsers, @PathVariable  Long departmentId) {
+        Boolean ret = easSysDepartmentService.updateDepartmentUsers(departmentId, departmentUsers);
+        return JsonResult.bool(ret);
+    }
 
 }

+ 0 - 71
controller/src/main/java/com/koobietech/eas/controller/EasSysStuProfileController.java

@@ -1,71 +0,0 @@
-package com.koobietech.eas.controller;
-
-
-import com.koobietech.eas.common.result.JsonResult;
-import com.koobietech.eas.mbg.model.EasArcTlsStudents;
-import com.koobietech.eas.service.EasStuProfileService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
-/**
- * @author lc
- */
-@Tag(name = "学生档案下载模块")
-@RestController
-public class EasSysStuProfileController {
-
-    @Resource
-    private EasStuProfileService easStuProfileService;
-
-    @PostMapping("/add")
-    @Operation(summary = "添加学员", description = "添加学员")
-    public JsonResult add(@RequestBody EasArcTlsStudents easArcTlsStudents) {
-        return JsonResult.bool(easStuProfileService.add(easArcTlsStudents));
-    }
-
-    @PostMapping("/del/{id}")
-    @Operation(summary = "更新学员信息", description = "更新学员信息")
-    public JsonResult delete(@PathVariable int id){
-        boolean result = easStuProfileService.delete(id);
-        return JsonResult.bool(result);
-    }
-
-    @PostMapping("/update")
-    @Operation(summary = "更新学员信息", description = "更新学员信息")
-    public JsonResult update(@RequestBody EasArcTlsStudents studentDto){
-        boolean result = easStuProfileService.update(studentDto);
-        return JsonResult.bool(result);
-    }
-    @PostMapping("/query")
-    @Operation(summary = "查询学员信息", description = "查询学员信息")
-    public JsonResult query(@RequestBody(required = false) EasArcTlsStudents studentDto,
-                            @RequestParam Integer pageNum, @RequestParam Integer pageSize){
-        List<EasArcTlsStudents> res = easStuProfileService.query(studentDto, pageNum, pageSize);
-        return JsonResult.data(res);
-    }
-
-    @PostMapping("/importExcel")
-    @Operation(summary = "导入学员信息", description = "导入学员信息")
-    public JsonResult importExcel( MultipartFile file ){
-        InputStream inputStream = null;
-        boolean result = false;
-        try {
-            inputStream = file.getInputStream();
-            result = easStuProfileService.importExcel(inputStream);
-        } catch (IOException e) {}finally {
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (IOException e) {}
-            }
-        }
-        return JsonResult.bool(result);
-    }
-}

+ 142 - 0
controller/src/main/java/com/koobietech/eas/controller/EasSysStudentController.java

@@ -0,0 +1,142 @@
+package com.koobietech.eas.controller;
+
+
+import com.github.pagehelper.PageHelper;
+import com.koobietech.eas.common.result.JsonPageResult;
+import com.koobietech.eas.common.result.JsonResult;
+import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.common.utils.SecurityManager;
+import com.koobietech.eas.dao.dto.ArchivesDto;
+import com.koobietech.eas.dao.dto.EasArcTlsStudentsDto;
+import com.koobietech.eas.mbg.model.EasArcArchives;
+import com.koobietech.eas.mbg.model.EasArcTlsStudents;
+import com.koobietech.eas.mbg.model.EasSysStudent;
+import com.koobietech.eas.service.EasStuProfileService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @author lc
+ */
+@Tag(name = "学生档案下载模块")
+@RestController
+@RequestMapping("/student")
+public class EasSysStudentController {
+
+    @Resource
+    private EasStuProfileService easStuProfileService;
+
+    @PostMapping("/add")
+    @Operation(summary = "添加学员", description = "添加学员")
+    public JsonResult add(@RequestBody EasArcTlsStudentsDto easArcTlsStudentsDto) {
+        EasArcTlsStudents easArcTlsStudents = new EasArcTlsStudents();
+        BeanUtils.copyProperties(easArcTlsStudentsDto, easArcTlsStudents);
+        return JsonResult.bool(easStuProfileService.add(easArcTlsStudents));
+    }
+
+    @PostMapping("/del/{id}")
+    @Operation(summary = "更新学员信息", description = "更新学员信息")
+    public JsonResult delete(@PathVariable int id){
+        boolean result = easStuProfileService.delete(id);
+        return JsonResult.bool(result);
+    }
+
+    @PostMapping("/update")
+    @Operation(summary = "更新学员信息", description = "更新学员信息")
+    public JsonResult update(@RequestBody EasArcTlsStudents studentDto){
+        boolean result = easStuProfileService.update(studentDto);
+        return JsonResult.bool(result);
+    }
+
+    @PostMapping("/upload")
+    @Operation(summary = "上传档案", description = "上传档案")
+    public JsonResult upload(MultipartFile file,
+                             @RequestParam String fileType,
+                             @RequestParam String studentNumber){
+        ArchivesDto upload = easStuProfileService.upload(file, studentNumber, fileType);
+        return JsonResult.data(upload.getPath());
+    }
+
+    @PostMapping("/addArchives")
+    @Operation(summary = "添加学员档案", description = "添加学员档案")
+    public JsonResult addArchives(@RequestBody EasArcArchives arc){
+        boolean res =  easStuProfileService.addArchives(arc);
+        return JsonResult.bool(res);
+    }
+
+    @DeleteMapping("/delArchives/{id}")
+    @Operation(summary = "删除档案", description = "删除档案")
+    public JsonResult addArchives(@PathVariable Integer id){
+        boolean res =  easStuProfileService.delArchives(id);
+        return JsonResult.bool(res);
+    }
+
+    @PostMapping("/downloadArchives")
+    @Operation(summary = "下载学员档案", description = "下载学员档案")
+    public JsonResult downloadArchives(@RequestParam(required = true) String studentNumber){
+        if ( !StringUtils.hasText(studentNumber) ||  "".equals(studentNumber) ) {
+            return JsonResult.fail("学生学号不能为空");
+        }
+        if ( studentNumber.isBlank() || studentNumber.isEmpty() )  {
+            return JsonResult.fail("学生学号格式错误");
+        }
+        // 下载
+        String res = easStuProfileService.downloadArchives(studentNumber);
+        return JsonResult.data(res);
+    }
+
+    @PostMapping("/query")
+    @Operation(summary = "查询学员信息", description = "查询学员信息")
+    public JsonPageResult query(@RequestBody(required = false) EasArcTlsStudents studentDto,
+                                @RequestParam Integer pageNum, @RequestParam Integer pageSize){
+        PageHelper.startPage(pageNum, pageSize);
+        PageDataResult res = easStuProfileService.query(studentDto);
+        return JsonPageResult.data(res);
+    }
+
+    @PostMapping("/importExcel")
+    @Operation(summary = "导入学员信息", description = "导入学员信息")
+    public JsonResult importExcel( MultipartFile file ){
+        InputStream inputStream = null;
+        boolean result = false;
+        try {
+            inputStream = file.getInputStream();
+            result = easStuProfileService.importExcel(inputStream);
+        } catch (IOException e) {}finally {
+            if (inputStream != null) {
+                try {
+                    inputStream.close();
+                } catch (IOException e) {}
+            }
+        }
+        return JsonResult.bool(result);
+    }
+
+    @GetMapping("/getAll")
+    @Operation(summary = "查询所有学员信息", description = "查询所有学员信息")
+    public JsonResult getAll(){
+        List<EasSysStudent> res = easStuProfileService.getAll();
+        return JsonResult.data(res);
+    }
+
+    @GetMapping("/getStudentByKeyword")
+    @Operation(summary = "查询所有学员信息", description = "查询所有学员信息根据关键词")
+    public JsonResult getStudentByKeyword(@RequestParam(value = "", required = true) String keyword){
+        //限制学员搜索功能
+        if ( SecurityManager.isStudentUser() ) {
+            keyword = SecurityManager.getLoginUserName();
+        }
+        List<EasSysStudent> res = easStuProfileService.getStudentByKeyword(keyword);
+        return JsonResult.data(res);
+    }
+
+}

+ 40 - 3
controller/src/main/java/com/koobietech/eas/controller/EasSysUserInfoController.java

@@ -1,8 +1,10 @@
 package com.koobietech.eas.controller;
 
 import com.github.pagehelper.PageHelper;
+import com.koobietech.eas.common.result.JsonPageResult;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.pojo.RolePojo;
 import com.koobietech.eas.mbg.model.EasSysUserinfo;
 import com.koobietech.eas.service.EasSysUserInfoService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -10,6 +12,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @RestController
 @Tag(name = "用户信息模块")
@@ -19,6 +22,20 @@ public class EasSysUserInfoController {
     @Resource
     EasSysUserInfoService easSysUserInfoService;
 
+    @PostMapping("/queryUserByRoleId/{departmentId}")
+    @Operation(summary = "查询用户信息根据角色ID", description = "查询用户信息根据角色ID")
+    public JsonResult queryUserByRoleId(@PathVariable int departmentId) {
+        List<RolePojo> ret = easSysUserInfoService.queryUserByRoleId(departmentId);
+        return JsonResult.data(ret);
+    }
+
+    @PostMapping("/getAllUsers")
+    @Operation(summary = "查询用户信息所有", description = "查询用户信息所有")
+    public JsonResult getAllUser() {
+        List<RolePojo> ret = easSysUserInfoService.getAllUsers();
+        return JsonResult.data(ret);
+    }
+
     @PostMapping("/add")
     @Operation(summary = "添加用户信息", description = "录入基本用户信息")
     public JsonResult add(@RequestBody EasSysUserinfo userinfo) {
@@ -51,10 +68,30 @@ public class EasSysUserInfoController {
 
     @PostMapping("/query")
     @Operation(summary = "查询用户信息", description = "根据参数查询用户信息表信息")
-    public JsonResult query(@RequestBody(required = false) EasSysUserinfo userinfo,
-                            @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
+    public JsonPageResult query(@RequestBody(required = false) EasSysUserinfo userinfo,
+                                @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         PageDataResult ret = easSysUserInfoService.query(userinfo);
-        return JsonResult.data(ret);
+        return JsonPageResult.data(ret);
+    }
+
+    @GetMapping("/queryUserById/{uid}")
+    @Operation(summary = "查询用户信息根据ID", description = "根据参数查询用户信息表信息")
+    public JsonResult queryByUid(@PathVariable Long uid ) {
+        EasSysUserinfo userinfo = easSysUserInfoService.queryByUid(uid);
+        return JsonResult.data(userinfo);
+    }
+
+    @GetMapping("/queryUserByRealname/{realname}")
+    @Operation(summary = "查询用户信息根据用户名", description = "根据参数查询用户信息表信息")
+    public JsonResult queryByRealname(@PathVariable String realname ) {
+        return JsonResult.data(easSysUserInfoService.queryByRealname(realname));
+    }
+
+    @GetMapping("/queryAll")
+    @Operation(summary = "查询用户信息", description = "查询用户字典表所有信息")
+    public JsonResult queryAll() {
+        List<EasSysUserinfo> list = easSysUserInfoService.queryAll();
+        return JsonResult.data(list);
     }
 }

+ 19 - 0
controller/src/main/java/com/koobietech/eas/controller/EasSysUsersLoginController.java

@@ -8,6 +8,7 @@ import com.koobietech.eas.common.exception.EasException;
 import com.koobietech.eas.common.result.JsonResult;
 import com.koobietech.eas.dao.pojo.AdminPojo;
 import com.koobietech.eas.dao.dto.LoginTokenDto;
+import com.koobietech.eas.dao.pojo.UserProFilePojo;
 import com.koobietech.eas.service.EasSysAdminLoginService;
 import com.koobietech.eas.service.EasSysStudentLoginService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -89,4 +90,22 @@ public class EasSysUsersLoginController {
         return adminLoginService.verifyToJsonResult(captchaService.check(captchaVO));
     }
 
+    @GetMapping("/getUserProFile")
+    @Operation(summary = "获取用户信息可修改信息", description = "获取用户信息可修改信息")
+    public JsonResult getUserProFile() {
+        return JsonResult.data(adminLoginService.getUserProFile());
+    }
+
+    @PutMapping("/userProFile")
+    @Operation(summary = "更新用户信息", description = "更新用户信息")
+    public JsonResult userProFile(@RequestBody UserProFilePojo  userProFilePojo) {
+        return JsonResult.data(adminLoginService.uploadUserProFile(userProFilePojo));
+    }
+
+    @PutMapping("/logout")
+    @Operation(summary = "注销", description = "注销")
+    public JsonResult logout() {
+        return JsonResult.bool(adminLoginService.logout());
+    }
+
 }

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

@@ -25,8 +25,26 @@ knife4j:
   enable: true
   setting:
     language: zh_cn
+
+security:
+  url:
+    ignored:
+      - /swagger-ui/*
+      - /v3/api-docs/**
+      - /doc.html
+      - /webjars/**
+      - /login/adminLogin
+      - /login/studentLogin
+      - /login/verify/get
+      - /login/verify/check
+      - /favicon.ico
+
 logging:
   level:
     com.koobietech.eas.*: TRACE
 project:
-  path: ${user.home}/archivesFiles
+  path: ${user.home}/archivesFiles
+  cache:
+    path: ${user.home}/archivesCache
+authority:
+  path: ${user.home}/authorityFile/authority.json

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

@@ -25,8 +25,26 @@ knife4j:
   enable: true
   setting:
     language: zh_cn
+
+security:
+  url:
+    ignored:
+      - /swagger-ui/*
+      - /v3/api-docs/**
+      - /doc.html
+      - /webjars/**
+      - /login/adminLogin
+      - /login/studentLogin
+      - /login/verify/get
+      - /login/verify/check
+      - /favicon.ico
+
 logging:
   level:
     com.koobietech.eas.*: TRACE
 project:
   path: ${user.home}/archivesFiles
+  cache:
+    path: ${user.home}/archivesCache
+authority:
+  path: ${user.home}/authorityFile/authority.json

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

@@ -25,8 +25,26 @@ knife4j:
   enable: true
   setting:
     language: zh_cn
+
+security:
+  url:
+    ignored:
+      - /swagger-ui/*
+      - /v3/api-docs/**
+      - /doc.html
+      - /webjars/**
+      - /login/adminLogin
+      - /login/studentLogin
+      - /login/verify/get
+      - /login/verify/check
+      - /favicon.ico
+
 logging:
   level:
     com.koobietech.eas.*: TRACE
 project:
   path: ${user.home}/archivesFiles
+  cache:
+    path: ${user.home}/archivesCache
+authority:
+  path: ${user.home}/authorityFile/authority.json

+ 20 - 3
controller/src/main/resources/application.yaml

@@ -2,7 +2,7 @@ server:
   port: 8081
 spring:
   profiles:
-    active: local
+    active: wheng
   main:
     allow-circular-references: true
   servlet:
@@ -29,10 +29,27 @@ knife4j:
 security:
   url:
     ignored:
-      - /**
+      - /login/adminLogin
+      - /login/studentLogin
+      - /login/verify/get
+      - /login/verify/check
+      - /archive/getFileByToken
+      - /favicon.ico
+
+pagehelper:
+  helperDialect: mysql
+  reasonable: true
+  supportMethodsArguments: true
+  params: count=countSql
+
 eas:
   jwt-secret-key: 123456
   jwt-expires-date: 2
   password-sign-key: eas-key-password
+
 project:
-  path: ${user.home}/archivesFiles
+  path: ${user.home}/archivesFiles
+  cache:
+    path: ${user.home}/archivesCache
+authority:
+  path: ${user.home}/authorityFile/authority.json

二进制
controller/src/main/resources/temp/StuRegistTemp.docx


二进制
controller/src/main/resources/temp/avatar.jpeg


二进制
controller/src/main/resources/temp/kun.jpeg


+ 0 - 112
controller/src/test/java/com/koobietech/eas/controller/ChatClient.java

@@ -1,112 +0,0 @@
-package com.koobietech.eas.controller;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.util.Scanner;
-
-/**
- * ClassName: ChatClient
- * Package: com.lc.chat
- * Description:
- *
- * @Author 爱扣钉-陈晨
- * @Create 2023/8/18 9:00
- * @Version 1.0
- */
-public class ChatClient {
-    public static void main(String[] args) throws Exception {
-        Scanner scanner = new Scanner(System.in);
-        //请输入链接地址
-        //创建网络链接对象Socket
-        Socket socket = new Socket("192.168.18.32",9999);
-        System.out.println("链接系统成功,请输入个人昵称,bye退出");
-        String nickname = scanner.nextLine();
-        //发送线程
-        SendThread send = new SendThread(socket,nickname);
-        send.start();
-
-        //接收线程
-        ReceiveThread receive = new ReceiveThread(socket);
-        receive.start();
-        //插队
-        send.join();
-
-    }
-}
-class ReceiveThread extends Thread{
-    Socket socket;
-
-    public ReceiveThread(Socket socket) {
-        this.socket = socket;
-    }
-
-    @Override
-    public void run() {
-        try {
-            //获取输入字节流
-            InputStream is = socket.getInputStream();
-            Scanner scanner = new Scanner(is);
-            //循环
-            while (scanner.hasNextLine()){
-                String s1 = socket.getInetAddress().toString().substring(1);
-                String s2 = InetAddress.getLocalHost().getHostAddress();
-                if (!s1.equals(s2)){
-                    String s = scanner.nextLine();
-                    System.out.println(s);
-                }
-
-            }
-            socket.close();
-
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
-class SendThread extends Thread {
-    private Socket socket;
-
-    private String nickname;
-
-    public SendThread(Socket socket , String nickname ) throws IOException {
-        this.socket = socket;
-        this.nickname = nickname;
-
-        //获取输出字节流
-        OutputStream os = socket.getOutputStream();
-        PrintStream ps = new PrintStream(os);
-        //发送名称
-        ps.println( nickname);
-    }
-
-    @Override
-    public void run() {
-        try {
-            //获取输出字节流
-            OutputStream os = socket.getOutputStream();
-            PrintStream ps = new PrintStream(os);
-            //键盘输入
-            Scanner scanner = new Scanner(System.in);
-            //循环
-            while (true){
-
-                String str = scanner.nextLine();
-                if (str.equals("bye")){
-                    break;
-                }
-                ps.println( nickname+":"+ str);
-
-            }
-            socket.shutdownOutput();
-            socket.close();
-
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
-

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

@@ -1,68 +1,27 @@
 package com.koobietech.eas.controller;
 
+import com.koobietech.eas.service.EasArchivesFilesService;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import javax.annotation.Resource;
+
 
 @SpringBootTest
 class ControllerApplicationTests {
 
-    @Value("${project.path}")
-    String archivesSavePath;
+
+    @Resource
+    EasArchivesFilesService  easArchivesFilesService;
 
     @Test
     void test() {
 
-        System.out.println(
-                archivesSavePath
-        );
+//        boolean b = easArchivesFilesService.refreshProfile();
+//        System.out.println( b );
 
-//        System.out.println(ArchiveManager.generateStudentCode(
-//                "2211",
-//                "232126198703194770", "12016", "2020"
-//        ));
-//        System.out.println(
-//                ArchiveManager.generateArchiveCode(
-//                        "ST2211XE6EE36M202412016",
-//                        "20"
-//                )
-//        );
     }
 
 
-//        List<Map> list = new ArrayList<>();
-//        Workbook workbook = null;
-//        ExportParams params = new ExportParams("大数据测试", "测试");
-//
-//        List<ExcelExportEntity> entity = new ArrayList<ExcelExportEntity>();
-//        entity.add(new ExcelExportEntity("ID", "id"));
-//        entity.add(new ExcelExportEntity("级别", "level"));
-//        entity.add(new ExcelExportEntity("日志", "logger"));
-//        entity.add(new ExcelExportEntity("消息", "message"));
-//        entity.add(new ExcelExportEntity("时间", "timestamp"));
-//        entity.add(new ExcelExportEntity("异常", "exception"));
-//
-//        Map<String, Object> map = new HashMap<>();
-//        for (int i = 0; i < 10000; i++) {
-//            map.put("id", i);
-//            map.put("level", "ERROR");
-//            map.put("logger", "发生错误" + i);
-//            map.put("message", "这里是消息");
-//            map.put("timestamp", new Date());
-//            map.put("exception", "异常信息");
-//            list.add(map);
-//        }
-//        workbook = ExcelExportUtil.exportExcel(params, entity, list);
-//        list.clear();
-//        File savefile = new File("C:/Users/lc/Desktop");
-//        if (!savefile.exists()) {
-//            savefile.mkdirs();
-//        }
-//        FileOutputStream fos = new FileOutputStream("C:/Users/lc/Desktop/bigDataExport.xlsx");
-//        workbook.write(fos);
-//        fos.close();
-
-
 
 }

+ 9 - 0
dao/src/main/java/com/koobietech/eas/dao/constant/JwtType.java

@@ -0,0 +1,9 @@
+package com.koobietech.eas.dao.constant;
+
+/**
+ * @author lc
+ */
+
+public enum JwtType {
+    TOKEN, REF_TOKEN
+}

+ 1 - 1
dao/src/main/java/com/koobietech/eas/dao/constant/UserType.java

@@ -5,5 +5,5 @@ package com.koobietech.eas.dao.constant;
  */
 
 public enum UserType {
-    TEACHER, MEMBER, ADMIN
+    teacher, member, admin
 }

+ 25 - 0
dao/src/main/java/com/koobietech/eas/dao/dto/AttendanceDto.java

@@ -0,0 +1,25 @@
+package com.koobietech.eas.dao.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lc
+ */
+@Data
+public class AttendanceDto {
+    private Integer id;
+    private Integer studentId;
+    private Integer month;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date endTime;
+    private Integer teacherId;
+    private Integer classId;
+    private String studentName;
+    private Integer roomName;
+    private Integer className;
+}

+ 3 - 3
dao/src/main/java/com/koobietech/eas/dao/dto/EasArcTlsStudentsDto.java

@@ -32,7 +32,7 @@ public class EasArcTlsStudentsDto {
 
     @Excel(name = "出生日期")
     @Schema(description = "学生出生日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthdate;
 
     @Excel(name = "学生居住地")
@@ -49,12 +49,12 @@ public class EasArcTlsStudentsDto {
 
     @Excel(name = "学生入学进入培训班日期", importFormat = "yyyy-MM-dd" )
     @Schema(description = "学生入学进入培训班日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date enrollmentDate;
 
     @Schema(description = "学生在培训班毕业日期")
     @Excel(name = "学生在培训班毕业日期", importFormat = "yyyy-MM-dd" )
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date graduationDate;
 
     @Excel(name = "学生培训时年级")

+ 21 - 0
dao/src/main/java/com/koobietech/eas/dao/dto/GroupStudentsDto.java

@@ -0,0 +1,21 @@
+package com.koobietech.eas.dao.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class GroupStudentsDto {
+    private String avatar;
+    private Date enrollmentDate;
+    private String gender;
+    private Integer managerId;
+    private String phone;
+    private String studentName;
+    private Integer studentId;
+    private Integer admissionsId;
+    private String type;
+    private String admissionsName;
+    private String managerName;
+    private Integer classId;
+}

+ 17 - 0
dao/src/main/java/com/koobietech/eas/dao/dto/ScheduleDto.java

@@ -0,0 +1,17 @@
+package com.koobietech.eas.dao.dto;
+
+import lombok.Data;
+
+@Data
+public class ScheduleDto {
+    Integer studentId;
+    Integer classId;
+    Integer subjectId;
+    Integer teacherId;
+    String startTime;
+    String endTime;
+    Integer week;
+    Integer roomId;
+    Integer assistantId;
+    Integer categoryId;
+}

+ 20 - 0
dao/src/main/java/com/koobietech/eas/dao/dto/ScoresDto.java

@@ -0,0 +1,20 @@
+package com.koobietech.eas.dao.dto;
+
+import lombok.Data;
+
+/**
+ * @author lc
+ */
+@Data
+public class ScoresDto {
+    private Integer groupId;
+    private Integer studentId;
+    private Integer subjectId;
+    private Integer categoryId;
+    private String studentName;
+    private String categoryName;
+    private String subjectsName;
+    private String groupName;
+    private String studentNumber;
+    private Double score;
+}

+ 14 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/AttendanceMapper.java

@@ -0,0 +1,14 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.dto.AttendanceDto;
+import com.koobietech.eas.dao.pojo.AttendancePojo;
+
+import java.util.List;
+
+/**
+ * @author lc
+ */
+public interface AttendanceMapper {
+    List<AttendancePojo> queryAttendance(AttendanceDto dto);
+    Long queryAttendanceCount(AttendanceDto dto);
+}

+ 10 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/GroupStudentsMapper.java

@@ -0,0 +1,10 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.dto.GroupStudentsDto;
+import com.koobietech.eas.dao.pojo.GroupStudentsPojo;
+
+import java.util.List;
+
+public interface GroupStudentsMapper {
+    List<GroupStudentsPojo> getStudents(GroupStudentsDto dto);
+}

+ 11 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/RoleMapper.java

@@ -0,0 +1,11 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.pojo.RolePojo;
+
+import java.util.List;
+
+public interface RoleMapper {
+
+    List<RolePojo> getAllUsers();
+    List<RolePojo> queryUserByRoleId(int departmentId);
+}

+ 12 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/ScheduleMapper.java

@@ -0,0 +1,12 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.dto.ScheduleDto;
+import com.koobietech.eas.dao.pojo.SchedulePojo;
+
+import java.util.List;
+
+public interface ScheduleMapper {
+
+    List<SchedulePojo> getSchedules(ScheduleDto scheduleDto);
+
+}

+ 27 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/ScoresMapper.java

@@ -0,0 +1,27 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.dto.ScoresDto;
+import com.koobietech.eas.dao.pojo.ScoresPojo;
+
+import java.util.List;
+
+/**
+ * @author lc
+ */
+public interface ScoresMapper {
+
+    /**
+     * 查询分数
+     * @param scoresDto
+     * @return
+     */
+    List<ScoresPojo> queryStudentScores(ScoresDto  scoresDto);
+
+    /**
+     * 分页
+     * @param scoresDto
+     * @return
+     */
+    Integer queryStudentScoresCount(ScoresDto scoresDto);
+
+}

+ 14 - 0
dao/src/main/java/com/koobietech/eas/dao/mapper/UserProFileMapper.java

@@ -0,0 +1,14 @@
+package com.koobietech.eas.dao.mapper;
+
+import com.koobietech.eas.dao.pojo.UserProFilePojo;
+
+public interface UserProFileMapper {
+
+    UserProFilePojo getUserProFile(Integer uid);
+
+    UserProFilePojo getStudentProFile(Integer uid);
+
+    int  updateUserProFile(UserProFilePojo userProFile);
+
+    int  updateStudentProFile(UserProFilePojo userProFile);
+}

+ 32 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/AttendancePojo.java

@@ -0,0 +1,32 @@
+package com.koobietech.eas.dao.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lc
+ */
+@Data
+public class AttendancePojo {
+    private Integer id;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date checkinDate;
+    private String morning;
+    private String afternoon;
+    private Integer month;
+    private Integer studentId;
+    private String type;
+    private String className;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date endTime;
+    private String categoryName;
+    private String subjectsName;
+    private String studentName;
+    private String studentNumber;
+    private String teacherName;
+    private String roomName;
+}

+ 1 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/DepartmentPojo.java

@@ -7,6 +7,7 @@ import java.util.Date;
 public class DepartmentPojo {
     private Long id;
     private String depname;
+    private String authority;
     private String address;
     private String phone;
     private String email;

+ 10 - 10
dao/src/main/java/com/koobietech/eas/dao/pojo/EasArcTlsAttendancePojo.java

@@ -12,30 +12,30 @@ import java.util.Date;
 @Data
 public class EasArcTlsAttendancePojo implements Serializable {
 
-    @Excel(name = "签到日期")
+    @Excel(name = "签到日期", format = "yyyy-MM-dd HH:mm:ss", width = 20)
     private Date checkinDate;
 
-    @Excel(name = "学员档案号")
+    @Excel(name = "学员档案号", width = 30)
     private String studentNumber;
 
     //a表示正常出勤, b表示迟到、早退, c表示旷课, d表示请假, e表示无效
-    @Excel(name = "上午出勤状态")
+    @Excel(name = "上午出勤状态", replace = { "正常_a", "迟到、早退_b", "旷课_c", "请假_d", "无效_e"}, width = 15 )
     private String morning;
 
     //a表示正常出勤,   b表示迟到、早退, c 表示旷课, d 表示请假, e表示无效"
-    @Excel(name = "下午出勤状态")
+    @Excel(name = "下午出勤状态", replace = { "正常_a", "迟到、早退_b", "旷课_c", "请假_d", "无效_e" }, width = 15 )
     private String afternoon;
 
-    @Excel(name = "学员姓名")
+    @Excel(name = "学员姓名", width = 20)
     private String studentName;
 
-    @Excel(name = "类别" )
-    private Integer category;
+    @Excel(name = "类别", width = 20 )
+    private String category;
 
-    @Excel(name = "科目" )
-    private Integer subject;
+    @Excel(name = "科目", width = 20 )
+    private String subject;
 
-    @Excel(name = "创建时间" )
+    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss", width = 20 )
     private Date createTime;
 
     private static final long serialVersionUID = 1L;

+ 11 - 4
dao/src/main/java/com/koobietech/eas/dao/pojo/EasArcTlsScoresPojo.java

@@ -1,6 +1,7 @@
 package com.koobietech.eas.dao.pojo;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelIgnore;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -12,13 +13,19 @@ public class EasArcTlsScoresPojo implements Serializable {
     @Excel(name = "学员档案")
     private String studentNumber;
 
-    @Excel(name = "类目ID" )
+    @ExcelIgnore
     private Integer categoryId;
 
-    @Excel(name = "科目ID" )
+    @ExcelIgnore
     private Integer subjectId;
 
-    @Excel(name = "考试时间" )
+    @Excel(name = "类目" )
+    private String categoryName;
+
+    @Excel(name = "科目" )
+    private String subjectsName;
+
+    @Excel(name = "考试时间", format = "yyyy-MM-dd HH:mm", width = 20 )
     private Date testDate;
 
     @Excel(name = "分数")
@@ -30,7 +37,7 @@ public class EasArcTlsScoresPojo implements Serializable {
     @Excel(name = "及格率")
     private BigDecimal excelRate;
 
-    @Excel(name = "创建时间", format = "yyyy-MM-dd")
+    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm")
     private Date createTime;
 
     @Excel(name = "考试备注信息")

+ 34 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/GroupStudentsPojo.java

@@ -0,0 +1,34 @@
+package com.koobietech.eas.dao.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class GroupStudentsPojo {
+    private Long studentId;
+    private String studentName;
+    private String avatar;
+    private String studentNumber;
+    private String managerName;
+    private String phone;
+    private String email;
+    private String gender;
+    private String enrollmentDate;
+    private String morning;
+    private String afternoon;
+    private Date checkinDate;
+    private String admissionsName;
+    private Integer scheduleId;
+    private String category;
+    private String subject;
+    private String teacher;
+    private String teacherPhone;
+    private String groupId;
+    private String groupName;
+    private Integer managerId;
+    private Integer admissionsId;
+    private String type;
+    private Integer id;
+    private Integer classId;
+}

+ 13 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/RolePojo.java

@@ -0,0 +1,13 @@
+package com.koobietech.eas.dao.pojo;
+
+import lombok.Data;
+
+/**
+ * @author lc
+ */
+@Data
+public class RolePojo {
+    private int id;
+    private String type;
+    private String username;
+}

+ 75 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/SchedulePojo.java

@@ -0,0 +1,75 @@
+package com.koobietech.eas.dao.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SchedulePojo {
+
+    private Long id;
+
+    @Schema(description = "当周周几")
+    private Integer week;
+
+    @Schema(description = "起始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date startTime;
+
+    @Schema(description = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date endTime;
+
+    @Schema(description = "教室ID")
+    private Integer roomId;
+
+    @Schema(description = "教室")
+    private String classroom;
+
+    @Schema(description = "班级ID")
+    private Integer classId;
+
+    @Schema(description = "班级")
+    private String className;
+
+    @Schema(description = "助教ID")
+    private Integer assistantId;
+
+    @Schema(description = "助教")
+    private String assistantName;
+
+    @Schema(description = "教师ID")
+    private Integer teacherId;
+
+    @Schema(description = "教师")
+    private String teacherName;
+
+    @Schema(description = "授课类别")
+    private Integer categoryId;
+
+    @Schema(description = "授课")
+    private String category;
+
+    @Schema(description = "授课内容")
+    private Integer subjectsId;
+
+    @Schema(description = "内容")
+    private String subjects;
+
+    @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createTime;
+
+    @Schema(description = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date modifyTime;
+
+    @Schema(description = "创建用户ID")
+    private Integer createUid;
+
+    @Schema(description = "状态")
+    private String disabled;
+
+}

+ 31 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/ScoresPojo.java

@@ -0,0 +1,31 @@
+package com.koobietech.eas.dao.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lc
+ */
+@Data
+public class ScoresPojo {
+    private int id;
+    private int groupId;
+    private int categoryId;
+    private int subjectId;
+    private Date testDate;
+    private String type;
+    private int studentId;
+    private String groupName;
+    private String studentName;
+    private double score;
+    private double passRate;
+    private double excelRate;
+    private String comment;
+    private String categoryName;
+    private String subjectsName;
+    private String studentNumber;
+    private Date createTime;
+    private Date modifyTime;
+    private int scheduleId;
+}

+ 2 - 1
dao/src/main/java/com/koobietech/eas/dao/pojo/UserDetailPojo.java

@@ -10,11 +10,12 @@ import java.util.List;
 @Data
 public class UserDetailPojo {
     private Long id;
+    private String studentNumber;
     private String username;
     private String phone;
     private String email;
     private UserType userType;
-    private List<PermissionPojo> permissionPojos;
+    private List<String> permissionPojos;
     private List<DepartmentPojo> departments;
 
 }

+ 12 - 0
dao/src/main/java/com/koobietech/eas/dao/pojo/UserProFilePojo.java

@@ -0,0 +1,12 @@
+package com.koobietech.eas.dao.pojo;
+
+import lombok.Data;
+
+@Data
+public class UserProFilePojo {
+    private Integer id;
+    private String name;
+    private String email;
+    private String phone;
+    private String passwd;
+}

+ 57 - 22
dao/src/main/resources/com/koobietech/eas/dao/mapper/AdminLoginMapper.xml

@@ -20,6 +20,7 @@
         <result column="phone" property="phone"/>
         <result column="email" property="email"/>
         <result column="manager" property="manager"/>
+        <result column="authority" property="authority" />
         <result column="create_time" property="createTime"/>
         <result column="modify_time" property="modifyTime"/>
         <result column="create_uid" property="createUid"/>
@@ -63,26 +64,43 @@
         <result column="student_name" property="username"/>
         <result column="phone" property="phone"/>
         <result column="email" property="email"/>
+        <result column="student_number" property="studentNumber"/>
     </resultMap>
 
     <select id="getUserPermissionsById" resultMap="permissionResultMap">
-        SELECT p.id, p.name, p.is_active, p.create_time, p.modify_time, p.create_uid, p.description
-        FROM eas_sys_userinfo u
-                 JOIN eas_sys_pes_relation pr ON u.id = pr.department_id
-                 JOIN eas_sys_permission p ON pr.permission_id = p.id
-        WHERE u.id = #{adminId};
+        SELECT
+            p.id,
+            p.`name`,
+            p.is_active,
+            p.create_time,
+            p.modify_time,
+            p.create_uid,
+            p.description
+        FROM eas_sys_pes_relation AS r
+                 LEFT JOIN eas_sys_permission AS p ON p.id = r.permission_id
+                 LEFT JOIN eas_sys_dep_relation AS d ON d.id = ( SELECT id FROM eas_sys_dep_relation WHERE department_id = r.department_id LIMIT 1  )
+        WHERE d.user_id = #{adminId};
     </select>
 
     <select id="getUserDepartmentsById" resultMap="departmentResultMap">
-        SELECT DISTINCT d.id, d.depname, d.address, d.phone, d.email, d.manager, d.create_time, d.modify_time, d.create_uid
-        FROM eas_sys_userinfo u
-                 JOIN eas_sys_pes_relation pr ON u.id = pr.department_id
-                 JOIN eas_sys_department d ON pr.department_id = d.id
-        WHERE u.id = #{adminId}
+        SELECT
+            d.id,
+            d.depname,
+            d.authority,
+            d.address,
+            d.phone,
+            d.email,
+            d.manager,
+            d.create_time,
+            d.modify_time,
+            d.create_uid
+        FROM eas_sys_dep_relation  AS r
+                 LEFT JOIN eas_sys_department AS d ON d.id = r.department_id
+        WHERE r.user_id = #{admin}
     </select>
 
     <select id="getUserDetailById" resultMap="userDetailResultMap">
-        SELECT id, username, phone, email
+        SELECT id, username, phone, email, '' AS student_number
         FROM eas_sys_userinfo
         WHERE id = #{adminId}
     </select>
@@ -92,7 +110,8 @@
             id,
             student_name,
             phone,
-            email
+            email,
+            student_number
         FROM
             eas_sys_student
         WHERE
@@ -100,19 +119,35 @@
     </select>
 
     <select id="getStudentPermissionsById" resultMap="permissionResult">
-        SELECT p.id, p.name, p.is_active, p.create_time, p.modify_time, p.create_uid, p.description
-        FROM eas_sys_student s
-                 JOIN eas_sys_pes_relation pr ON s.id = pr.department_id
-                 JOIN eas_sys_permission p ON pr.permission_id = p.id
-        WHERE s.id = #{adminId};
+        SELECT
+            p.id,
+            p.`name`,
+            p.is_active,
+            p.create_time,
+            p.modify_time,
+            p.create_uid,
+            p.description
+        FROM eas_sys_pes_relation AS r
+                 LEFT JOIN eas_sys_permission AS p ON p.id = r.permission_id
+                 LEFT JOIN eas_sys_dep_relation AS d ON d.id = ( SELECT id FROM eas_sys_dep_relation WHERE department_id = r.department_id LIMIT 1  )
+        WHERE d.student_id = #{adminId};
     </select>
 
     <select id="getStudentDepartmentsById" resultMap="departmentResult">
-        SELECT DISTINCT d.id, d.depname, d.address, d.phone, d.email, d.manager, d.create_time, d.modify_time, d.create_uid
-        FROM eas_sys_student s
-                 JOIN eas_sys_pes_relation pr ON s.id = pr.department_id
-                 JOIN eas_sys_department d ON pr.department_id = d.id
-        WHERE s.id = #{adminId}
+        SELECT
+            d.id,
+            d.depname,
+            d.authority,
+            d.address,
+            d.phone,
+            d.email,
+            d.manager,
+            d.create_time,
+            d.modify_time,
+            d.create_uid
+        FROM eas_sys_dep_relation  AS r
+                 LEFT JOIN eas_sys_department AS d ON d.id = r.department_id
+        WHERE r.student_id = #{admin}
     </select>
 
 </mapper>

+ 129 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/AttendanceMapper.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.AttendanceMapper">
+    <resultMap id="camelCaseResultMap" type="com.koobietech.eas.dao.pojo.AttendancePojo">
+        <result property="id" column="id"/>
+        <result property="checkinDate" column="checkin_date"/>
+        <result property="morning" column="morning"/>
+        <result property="afternoon" column="afternoon"/>
+        <result property="month" column="month"/>
+        <result property="studentId" column="student_id"/>
+        <result property="type" column="type"/>
+        <result property="className" column="class_name"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="subjectsName" column="subjects_name"/>
+        <result property="studentName" column="student_name"/>
+        <result property="studentNumber" column="student_number"/>
+        <result property="teacherName" column="teacher_name"/>
+        <result property="roomName" column="room_name"/>
+    </resultMap>
+    <select id="queryAttendance" resultMap="camelCaseResultMap">
+        SELECT
+            eas_edu_schedule.id,
+            eas_arc_tls_attendance.checkin_date,
+            eas_arc_tls_attendance.morning,
+            eas_arc_tls_attendance.afternoon,
+            eas_arc_tls_attendance.`month`,
+            eas_edu_clt_relation.student_id,
+            eas_edu_clt_relation.type,
+            eas_edu_class.`name` AS class_name,
+            eas_edu_schedule.start_time,
+            eas_edu_schedule.end_time,
+            eas_edu_category.`name` AS category_name,
+            eas_edu_subjects.`name` AS subjects_name,
+            eas_sys_student.student_name,
+            eas_sys_student.student_number,
+            eas_sys_userinfo.relname AS teacher_name,
+            eas_edu_classroom.`name` AS room_name
+        FROM
+            eas_edu_clt_relation
+            LEFT JOIN eas_edu_class ON eas_edu_class.id = eas_edu_clt_relation.class_id
+            LEFT JOIN eas_edu_schedule ON eas_edu_schedule.class_id = eas_edu_class.id
+            LEFT JOIN eas_edu_category ON eas_edu_category.id = eas_edu_schedule.category_id
+            LEFT JOIN eas_edu_subjects ON eas_edu_subjects.id = eas_edu_schedule.subjects_id
+            LEFT JOIN eas_edu_classroom ON eas_edu_classroom.id = eas_edu_schedule.room_id
+            LEFT JOIN eas_sys_userinfo ON eas_sys_userinfo.id = eas_edu_schedule.teacher_id
+            LEFT JOIN eas_sys_student ON eas_sys_student.id = eas_edu_clt_relation.student_id
+            LEFT JOIN eas_arc_tls_attendance ON eas_arc_tls_attendance.schedule_id = eas_edu_schedule.id AND eas_arc_tls_attendance.student_number = eas_sys_student.student_number
+        WHERE 1 = 1
+        <if test="id != null and id > 0">
+            AND eas_edu_schedule.id = #{id}
+        </if>
+        <if test="studentId != null and studentId > 0">
+            AND eas_sys_student.id = #{studentId}
+        </if>
+        <if test="month != null and month > 0">
+            AND eas_arc_tls_attendance.`month` = #{month}
+        </if>
+        <if test="startTime != null">
+            AND eas_edu_schedule.start_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND eas_edu_schedule.end_time &lt;= #{endTime}
+        </if>
+        <if test="teacherId != null and teacherId > 0">
+            AND eas_sys_userinfo.id = #{teacherId}
+        </if>
+        <if test="classId != null and classId > 0">
+            AND eas_edu_class.id = #{classId}
+        </if>
+        <if test="studentName != null and studentName != ''">
+            AND eas_sys_student.student_name = #{studentName}
+        </if>
+        <if test="roomName != null and roomName > 0">
+            AND eas_edu_classroom.id = #{roomName}
+        </if>
+        <if test="className != null and className > 0">
+            AND eas_edu_class.id = #{className}
+        </if>
+    </select>
+
+    <select id="queryAttendanceCount" resultType="long" >
+        SELECT
+            count(*) AS total
+        FROM
+        eas_edu_clt_relation
+        LEFT JOIN eas_edu_class ON eas_edu_class.id = eas_edu_clt_relation.class_id
+        LEFT JOIN eas_edu_schedule ON eas_edu_schedule.class_id = eas_edu_class.id
+        LEFT JOIN eas_edu_category ON eas_edu_category.id = eas_edu_schedule.category_id
+        LEFT JOIN eas_edu_subjects ON eas_edu_subjects.id = eas_edu_schedule.subjects_id
+        LEFT JOIN eas_edu_classroom ON eas_edu_classroom.id = eas_edu_schedule.room_id
+        LEFT JOIN eas_sys_userinfo ON eas_sys_userinfo.id = eas_edu_schedule.teacher_id
+        LEFT JOIN eas_sys_student ON eas_sys_student.id = eas_edu_clt_relation.student_id
+        LEFT JOIN eas_arc_tls_attendance ON eas_arc_tls_attendance.schedule_id = eas_edu_schedule.id AND eas_arc_tls_attendance.student_number = eas_sys_student.student_number
+        WHERE 1 = 1
+        <if test="id != null and id > 0">
+            AND eas_edu_schedule.id = #{id}
+        </if>
+        <if test="studentId != null and studentId > 0">
+            AND eas_sys_student.id = #{studentId}
+        </if>
+        <if test="month != null and month > 0">
+            AND eas_arc_tls_attendance.`month` = #{month}
+        </if>
+        <if test="startTime != null">
+            AND eas_edu_schedule.start_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND eas_edu_schedule.end_time &lt;= #{endTime}
+        </if>
+        <if test="teacherId != null and teacherId > 0">
+            AND eas_sys_userinfo.id = #{teacherId}
+        </if>
+        <if test="classId != null and classId > 0">
+            AND eas_edu_class.id = #{classId}
+        </if>
+        <if test="studentName != null and studentName != ''">
+            AND eas_sys_student.student_name = #{studentName}
+        </if>
+        <if test="roomName != null and roomName > 0">
+            AND eas_edu_classroom.id = #{roomName}
+        </if>
+        <if test="className != null and className > 0">
+            AND eas_edu_class.id = #{className}
+        </if>
+    </select>
+
+</mapper>

+ 80 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/GroupStudentsMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.GroupStudentsMapper">
+    <resultMap id="groupStudentResultMap" type="com.koobietech.eas.dao.pojo.GroupStudentsPojo">
+        <result column="avatar" property="avatar"/>
+        <result column="id" property="id"/>
+        <result column="enrollment_date" property="enrollmentDate"/>
+        <result column="gender" property="gender"/>
+        <result column="manager_id" property="managerId"/>
+        <result column="phone" property="phone"/>
+        <result column="email" property="email"/>
+        <result column="student_name" property="studentName"/>
+        <result column="student_number" property="studentNumber"/>
+        <result column="student_id" property="studentId"/>
+        <result column="admissions_id" property="admissionsId"/>
+        <result column="type" property="type"/>
+        <result column="admissions_name" property="admissionsName"/>
+        <result column="manager_name" property="managerName"/>
+        <result column="class_id" property="classId" />
+    </resultMap>
+    <select id="getStudents" resultType="com.koobietech.eas.dao.dto.GroupStudentsDto" resultMap="groupStudentResultMap">
+        SELECT
+            re.id,
+            ss.avatar,
+            ss.enrollment_date,
+            ss.gender,
+            ss.manager_id,
+            ss.phone,
+            ss.email,
+            ss.student_name,
+            ss.id AS student_id,
+            ss.admissions_id,
+            ss.student_number,
+            re.type,
+            re.class_id,
+            su.relname AS admissions_name,
+            suu.relname AS  manager_name
+        FROM
+            eas_edu_clt_relation AS re
+                INNER JOIN eas_sys_student AS ss ON ss.id = re.student_id
+                INNER JOIN eas_edu_class AS ec ON ec.id = re.class_id
+                LEFT JOIN eas_sys_userinfo AS su ON su.id = ss.admissions_id
+                LEFT JOIN eas_sys_userinfo AS suu ON suu.id = ss.manager_id
+        WHERE ec.disabled = 'N'
+        <if test="enrollmentDate != null">
+            AND ss.enrollment_date = #{enrollmentDate}
+        </if>
+        <if test="gender != null and gender != ''">
+            AND ss.gender = #{gender}
+        </if>
+        <if test="managerId != null and managerId != 0">
+            AND ss.manager_id = #{managerId}
+        </if>
+        <if test="phone != null and phone != ''">
+            AND ss.phone LIKE CONCAT('%', #{phone}, '%')
+        </if>
+        <if test="studentName != null and studentName != ''">
+            AND ss.student_name LIKE CONCAT('%', #{studentName}, '%')
+        </if>
+        <if test="studentId != null  and studentId != 0">
+            AND ss.id = #{studentId}
+        </if>
+        <if test="admissionsId != null and admissionsId != 0">
+            AND ss.admissions_id = #{admissionsId}
+        </if>
+        <if test="type != null and type != ''">
+            AND re.type = #{type}
+        </if>
+        <if test="admissionsName != null and admissionsName != ''">
+            AND su.relname = #{admissionsName}
+        </if>
+        <if test="managerName != null and managerName != ''">
+            AND suu.relname = #{managerName}
+        </if>
+        <if test="classId != null and classId > 0">
+            AND re.class_id = #{classId}
+        </if>
+
+    </select>
+</mapper>

+ 30 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/RoleMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.RoleMapper">
+
+
+    <select id="getAllUsers" resultType="com.koobietech.eas.dao.pojo.RolePojo">
+        SELECT
+            id, '用户' AS type, relname AS username
+        FROM
+            eas_sys_userinfo  WHERE disabled = 'N'
+        UNION ALL
+        SELECT
+            id, '学生' AS type, student_name AS username
+        FROM
+            eas_sys_student WHERE disabled = 'N'
+    </select>
+
+    <select id="queryUserByRoleId" resultType="com.koobietech.eas.dao.pojo.RolePojo">
+        SELECT
+            eas_sys_roleusers.*
+        FROM
+            eas_sys_dep_relation
+        JOIN eas_sys_roleusers ON eas_sys_roleusers.id =
+                   IF( eas_sys_dep_relation.user_id > 0,
+                       eas_sys_dep_relation.user_id, eas_sys_dep_relation.student_id )
+        WHERE
+            eas_sys_dep_relation.department_id = #{departmentId}
+    </select>
+
+</mapper>

+ 91 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/ScheduleMapper.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.ScheduleMapper">
+
+    <resultMap id="scheduleResultMap" type="com.koobietech.eas.dao.pojo.SchedulePojo">
+        <result property="id" column="id"/>
+        <result property="week" column="week"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="roomId" column="room_id"/>
+        <result property="classId" column="class_id"/>
+        <result property="assistantId" column="assistant_id"/>
+        <result property="teacherId" column="teacher_id"/>
+        <result property="categoryId" column="category_id"/>
+        <result property="subjectsId" column="subjects_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="modifyTime" column="modify_time"/>
+        <result property="createUid" column="create_uid"/>
+        <result property="disabled" column="disabled"/>
+        <result property="assistantName" column="assistantName" />
+        <result property="teacherName" column="teacherName" />
+        <result property="category" column="category" />
+        <result property="subjects" column="subjects" />
+        <result property="className" column="className" />
+        <result property="classroom" column="classroomName" />
+    </resultMap>
+
+    <select id="getSchedules" parameterType="com.koobietech.eas.dao.dto.ScheduleDto"
+        resultMap="scheduleResultMap"  >
+        SELECT
+            s.id,
+            s.`week`,
+            s.start_time,
+            s.end_time,
+            s.room_id,
+            s.class_id,
+            s.assistant_id,
+            s.teacher_id,
+            s.category_id,
+            s.subjects_id,
+            s.create_time,
+            s.modify_time,
+            s.create_uid,
+            s.disabled,
+            uu.relname AS assistantName,
+            u.relname AS teacherName,
+            c.`name` AS category,
+            su.`name` AS subjects ,
+            cl.`name` AS classroomName,
+            cc.`name` AS className
+        FROM
+            eas_edu_schedule AS s
+            LEFT JOIN eas_sys_userinfo AS u ON u.id = s.teacher_id
+            LEFT JOIN eas_sys_userinfo AS uu ON uu.id = s.assistant_id
+            LEFT JOIN eas_edu_category AS c ON c.id = s.category_id
+            LEFT JOIN eas_edu_subjects AS su ON su.id = s.subjects_id
+            LEFT JOIN eas_edu_classroom AS cl ON cl.id = s.room_id
+            LEFT JOIN eas_edu_class AS cc ON cc.id = s.class_id
+        WHERE s.disabled = 'N'
+        <if test="week != null and week != ''">
+            AND s.week = #{week}
+        </if>
+        <if test="startTime != null and startTime != ''">
+            AND s.start_time &gt;= #{startTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND s.end_time &lt;= #{endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="roomId != null and roomId != 0">
+            AND s.room_id = #{roomId}
+        </if>
+        <if test="classId != null and classId != 0">
+            AND s.class_id = #{classId}
+        </if>
+        <if test="teacherId != null and teacherId != 0">
+            AND s.teacher_id = #{teacherId}
+        </if>
+        <if test="assistantId != null and assistantId != 0">
+            AND s.assistant_id = #{assistantId}
+        </if>
+        <if test="categoryId != null and categoryId != 0">
+            AND s.category_id = #{categoryId}
+        </if>
+        <if test="subjectId != null and subjectId != 0">
+            AND s.subjects_id = #{subjectId}
+        </if>
+        <if test="studentId != null and studentId != 0">
+            AND s.class_id IN ( SELECT class_id FROM eas_edu_clt_relation WHERE student_id = #{studentId} )
+        </if>
+    </select>
+</mapper>

+ 133 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/ScoresMapper.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.ScoresMapper">
+
+    <resultMap id="scoreMap" type="com.koobietech.eas.dao.pojo.ScoresPojo">
+        <id property="id" column="id"/>
+        <result property="groupId" column="group_id"/>
+        <result property="categoryId" column="category_id"/>
+        <result property="subjectId" column="subject_id"/>
+        <result property="testDate" column="test_date"/>
+        <result property="type" column="type"/>
+        <result property="studentId" column="student_id"/>
+        <result property="groupName" column="group_name"/>
+        <result property="studentName" column="student_name"/>
+        <result property="score" column="score"/>
+        <result property="passRate" column="pass_rate"/>
+        <result property="excelRate" column="excel_rate"/>
+        <result property="comment" column="comment"/>
+        <result property="categoryName" column="category_name"/>
+        <result property="subjectsName" column="subjects_name"/>
+        <result property="studentNumber" column="student_number"/>
+        <result property="createTime" column="create_time"/>
+        <result property="modifyTime" column="modify_time"/>
+        <result property="scheduleId" column="schedule_id"/>
+    </resultMap>
+
+    <select id="queryStudentScores" parameterType="com.koobietech.eas.dao.dto.ScoresDto" resultMap="scoreMap">
+        SELECT
+            eas_arc_tls_scores.id,
+            eas_edu_class.id AS group_id,
+            eas_edu_category.id AS category_id,
+            eas_edu_subjects.id AS subject_id,
+            eas_arc_tls_scores.test_date,
+            eas_edu_clt_relation.type,
+            eas_edu_clt_relation.student_id,
+            eas_edu_class.`name` AS group_name,
+            eas_sys_student.student_name,
+            eas_arc_tls_scores.score,
+            eas_arc_tls_scores.pass_rate,
+            eas_arc_tls_scores.excel_rate,
+            eas_arc_tls_scores.`comment`,
+            eas_edu_category.`name` AS category_name,
+            eas_edu_subjects.`name` AS subjects_name,
+            eas_edu_schedule.id AS schedule_id,
+            eas_sys_student.student_number,
+            eas_arc_tls_scores.create_time,
+            eas_arc_tls_scores.modify_time
+        FROM
+            eas_edu_clt_relation
+        LEFT JOIN eas_sys_student ON eas_sys_student.id = eas_edu_clt_relation.student_id
+        LEFT JOIN eas_edu_class ON eas_edu_class.id = eas_edu_clt_relation.class_id
+        LEFT JOIN eas_edu_schedule ON eas_edu_schedule.id IN (SELECT MIN(id) AS id FROM eas_edu_schedule  WHERE class_id = eas_edu_class.id GROUP BY subjects_id)
+        LEFT JOIN eas_edu_category ON eas_edu_category.id = eas_edu_schedule.category_id
+        LEFT JOIN eas_edu_subjects ON  eas_edu_subjects.id = eas_edu_schedule.subjects_id
+        LEFT JOIN eas_arc_tls_scores ON eas_arc_tls_scores.subject_id = eas_edu_schedule.subjects_id AND eas_arc_tls_scores.student_number = eas_sys_student.student_number
+        WHERE 1 = 1
+            <if test="groupId != null and groupId > 0" >
+                AND eas_edu_clt_relation.class_id = #{groupId}
+            </if>
+            <if test="studentId != null and studentId > 0" >
+                AND eas_edu_clt_relation.student_id = #{studentId}
+            </if>
+            <if test="studentNumber != null and studentNumber != ''" >
+                AND eas_sys_student.student_number =  #{studentNumber}
+            </if>
+            <if test="studentName != null and studentName != ''" >
+                AND eas_sys_student.student_name LIKE  CONCAT('%', #{studentName},'%')
+            </if>
+            <if test="score != null and score > 0" >
+                AND eas_arc_tls_scores.score > #{score}
+            </if>
+            <if test="subjectId != null and subjectId > 0" >
+                AND eas_edu_subjects.id = #{subjectId}
+            </if>
+            <if test="categoryId != null and categoryId > 0" >
+                AND eas_edu_category.id = #{categoryId}
+            </if>
+            <if test="categoryName != null and categoryName != ''" >
+                AND eas_edu_category.name = #{categoryName}
+            </if>
+            <if test="subjectsName != null and subjectsName != ''" >
+                AND eas_edu_subjects.name = #{subjectsName}
+            </if>
+            <if test="groupName != null and groupName != ''" >
+                AND eas_edu_class.name = #{groupName}
+            </if>
+    </select>
+
+    <select id="queryStudentScoresCount" parameterType="com.koobietech.eas.dao.dto.ScoresDto"  resultType="integer"  >
+        SELECT
+            count(*) AS total
+        FROM
+        eas_edu_clt_relation
+        LEFT JOIN eas_sys_student ON eas_sys_student.id = eas_edu_clt_relation.student_id
+        LEFT JOIN eas_edu_class ON eas_edu_class.id = eas_edu_clt_relation.class_id
+        LEFT JOIN eas_edu_schedule ON eas_edu_schedule.id IN (SELECT MIN(id) AS id FROM eas_edu_schedule  WHERE class_id = eas_edu_class.id GROUP BY subjects_id)
+        LEFT JOIN eas_edu_category ON eas_edu_category.id = eas_edu_schedule.category_id
+        LEFT JOIN eas_edu_subjects ON  eas_edu_subjects.id = eas_edu_schedule.subjects_id
+        LEFT JOIN eas_arc_tls_scores ON eas_arc_tls_scores.subject_id = eas_edu_schedule.subjects_id AND eas_arc_tls_scores.student_number = eas_sys_student.student_number
+        WHERE 1 = 1
+            <if test="groupId != null and groupId > 0" >
+                AND eas_edu_clt_relation.class_id = #{groupId}
+            </if>
+            <if test="studentId != null and studentId > 0" >
+                AND eas_edu_clt_relation.student_id = #{studentId}
+            </if>
+            <if test="studentName != null and studentName != ''" >
+                AND eas_sys_student.student_name =  CONCAT('%', #{studentName},'%')
+            </if>
+            <if test="studentNumber != null and studentNumber != ''" >
+                AND eas_sys_student.student_number =  #{studentNumber}
+            </if>
+            <if test="score != null and score > 0" >
+                AND eas_arc_tls_scores.score > #{score}
+            </if>
+            <if test="subjectId != null and subjectId > 0" >
+                AND eas_edu_subjects.id = #{subjectId}
+            </if>
+            <if test="categoryId != null and categoryId > 0" >
+                AND eas_edu_category.id = #{categoryId}
+            </if>
+            <if test="categoryName != null and categoryName != ''" >
+                AND eas_edu_category.name = #{categoryName}
+            </if>
+            <if test="subjectsName != null and subjectsName != ''" >
+                AND eas_edu_subjects.name = #{subjectsName}
+            </if>
+            <if test="groupName != null and groupName != ''" >
+                AND eas_edu_class.name = #{groupName}
+            </if>
+    </select>
+
+</mapper>

+ 49 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/UserProFileMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.koobietech.eas.dao.mapper.UserProFileMapper">
+
+    <update id="updateUserProFile" parameterType="com.koobietech.eas.dao.pojo.UserProFilePojo">
+        UPDATE eas_sys_userinfo SET
+            relname = #{name},
+            email = #{email},
+        <if test="passwd != null">
+            passwd = #{passwd},
+        </if>
+            phone = #{phone}
+        WHERE id = #{id}
+    </update>
+
+    <select id="getUserProFile" resultType="com.koobietech.eas.dao.pojo.UserProFilePojo">
+        SELECT
+            id,
+            relname AS `name`,
+            email,
+            phone
+        FROM
+            eas_sys_userinfo
+        WHERE id = #{uid}
+    </select>
+
+    <select id="getStudentProFile" resultType="com.koobietech.eas.dao.pojo.UserProFilePojo">
+        SELECT
+            id,
+            student_name AS `name`,
+            email,
+            phone
+        FROM
+            eas_sys_student
+        WHERE id = #{uid}
+    </select>
+
+    <update id="updateStudentProFile" parameterType="com.koobietech.eas.dao.pojo.UserProFilePojo">
+        UPDATE eas_sys_student SET
+            student_name = #{name},
+            email = #{email},
+        <if test="passwd != null">
+            passwd = #{passwd},
+        </if>
+            phone = #{phone}
+        WHERE id = #{id}
+    </update>
+
+</mapper>

+ 6 - 0
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.java

@@ -18,15 +18,21 @@ public interface EasArcTlsScoresMapper {
 
     int insertSelective(EasArcTlsScores record);
 
+    List<EasArcTlsScores> selectByExampleWithBLOBs(EasArcTlsScoresExample example);
+
     List<EasArcTlsScores> selectByExample(EasArcTlsScoresExample example);
 
     EasArcTlsScores selectByPrimaryKey(Integer id);
 
     int updateByExampleSelective(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
 
+    int updateByExampleWithBLOBs(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
+
     int updateByExample(@Param("record") EasArcTlsScores record, @Param("example") EasArcTlsScoresExample example);
 
     int updateByPrimaryKeySelective(EasArcTlsScores record);
 
+    int updateByPrimaryKeyWithBLOBs(EasArcTlsScores record);
+
     int updateByPrimaryKey(EasArcTlsScores record);
 }

+ 0 - 32
mbg/src/main/java/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.java

@@ -1,32 +0,0 @@
-package com.koobietech.eas.mbg.mapper;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.koobietech.eas.mbg.model.EasEduClaRelation;
-import com.koobietech.eas.mbg.model.EasEduClaRelationExample;
-import io.swagger.v3.oas.annotations.media.Schema;
-import java.util.List;
-import org.apache.ibatis.annotations.Param;
-
-public interface EasEduClaRelationMapper {
-    long countByExample(EasEduClaRelationExample example);
-
-    int deleteByExample(EasEduClaRelationExample example);
-
-    int deleteByPrimaryKey(Integer id);
-
-    int insert(EasEduClaRelation record);
-
-    int insertSelective(EasEduClaRelation record);
-
-    List<EasEduClaRelation> selectByExample(EasEduClaRelationExample example);
-
-    EasEduClaRelation selectByPrimaryKey(Integer id);
-
-    int updateByExampleSelective(@Param("record") EasEduClaRelation record, @Param("example") EasEduClaRelationExample example);
-
-    int updateByExample(@Param("record") EasEduClaRelation record, @Param("example") EasEduClaRelationExample example);
-
-    int updateByPrimaryKeySelective(EasEduClaRelation record);
-
-    int updateByPrimaryKey(EasEduClaRelation record);
-}

+ 35 - 1
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchives.java

@@ -32,13 +32,29 @@ public class EasArcArchives implements Serializable {
     @Schema(description = "文件存储的路径")
     private String filePath;
 
+    /**
+     * 档案类型
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "档案类型")
+    private String arctype;
+
+    /**
+     * 文件备注
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "文件备注")
+    private String remarks;
+
     /**
      * 文件类型
      *
      * @mbg.generated
      */
     @Schema(description = "文件类型")
-    private String arctype;
+    private String filetype;
 
     /**
      * 创建时间
@@ -134,6 +150,22 @@ public class EasArcArchives implements Serializable {
         this.arctype = arctype == null ? null : arctype.trim();
     }
 
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks == null ? null : remarks.trim();
+    }
+
+    public String getFiletype() {
+        return filetype;
+    }
+
+    public void setFiletype(String filetype) {
+        this.filetype = filetype == null ? null : filetype.trim();
+    }
+
     public Date getCreateTime() {
         return createTime;
     }
@@ -193,6 +225,8 @@ public class EasArcArchives implements Serializable {
         sb.append(", studentNumber=").append(studentNumber);
         sb.append(", filePath=").append(filePath);
         sb.append(", arctype=").append(arctype);
+        sb.append(", remarks=").append(remarks);
+        sb.append(", filetype=").append(filetype);
         sb.append(", createTime=").append(createTime);
         sb.append(", modifyTime=").append(modifyTime);
         sb.append(", validityTime=").append(validityTime);

+ 140 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcArchivesExample.java

@@ -472,6 +472,146 @@ public class EasArcArchivesExample {
             return (Criteria) this;
         }
 
+        public Criteria andRemarksIsNull() {
+            addCriterion("remarks is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIsNotNull() {
+            addCriterion("remarks is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksEqualTo(String value) {
+            addCriterion("remarks =", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotEqualTo(String value) {
+            addCriterion("remarks <>", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThan(String value) {
+            addCriterion("remarks >", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
+            addCriterion("remarks >=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThan(String value) {
+            addCriterion("remarks <", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLessThanOrEqualTo(String value) {
+            addCriterion("remarks <=", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksLike(String value) {
+            addCriterion("remarks like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotLike(String value) {
+            addCriterion("remarks not like", value, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksIn(List<String> values) {
+            addCriterion("remarks in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotIn(List<String> values) {
+            addCriterion("remarks not in", values, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksBetween(String value1, String value2) {
+            addCriterion("remarks between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andRemarksNotBetween(String value1, String value2) {
+            addCriterion("remarks not between", value1, value2, "remarks");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIsNull() {
+            addCriterion("filetype is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIsNotNull() {
+            addCriterion("filetype is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeEqualTo(String value) {
+            addCriterion("filetype =", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotEqualTo(String value) {
+            addCriterion("filetype <>", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeGreaterThan(String value) {
+            addCriterion("filetype >", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeGreaterThanOrEqualTo(String value) {
+            addCriterion("filetype >=", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLessThan(String value) {
+            addCriterion("filetype <", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLessThanOrEqualTo(String value) {
+            addCriterion("filetype <=", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeLike(String value) {
+            addCriterion("filetype like", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotLike(String value) {
+            addCriterion("filetype not like", value, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeIn(List<String> values) {
+            addCriterion("filetype in", values, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotIn(List<String> values) {
+            addCriterion("filetype not in", values, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeBetween(String value1, String value2) {
+            addCriterion("filetype between", value1, value2, "filetype");
+            return (Criteria) this;
+        }
+
+        public Criteria andFiletypeNotBetween(String value1, String value2) {
+            addCriterion("filetype not between", value1, value2, "filetype");
+            return (Criteria) this;
+        }
+
         public Criteria andCreateTimeIsNull() {
             addCriterion("create_time is null");
             return (Criteria) this;

+ 0 - 70
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsScoresExample.java

@@ -775,76 +775,6 @@ public class EasArcTlsScoresExample {
             addCriterion("create_uid not between", value1, value2, "createUid");
             return (Criteria) this;
         }
-
-        public Criteria andCommentIsNull() {
-            addCriterion("comment is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentIsNotNull() {
-            addCriterion("comment is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentEqualTo(String value) {
-            addCriterion("comment =", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotEqualTo(String value) {
-            addCriterion("comment <>", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentGreaterThan(String value) {
-            addCriterion("comment >", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentGreaterThanOrEqualTo(String value) {
-            addCriterion("comment >=", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLessThan(String value) {
-            addCriterion("comment <", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLessThanOrEqualTo(String value) {
-            addCriterion("comment <=", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentLike(String value) {
-            addCriterion("comment like", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotLike(String value) {
-            addCriterion("comment not like", value, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentIn(List<String> values) {
-            addCriterion("comment in", values, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotIn(List<String> values) {
-            addCriterion("comment not in", values, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentBetween(String value1, String value2) {
-            addCriterion("comment between", value1, value2, "comment");
-            return (Criteria) this;
-        }
-
-        public Criteria andCommentNotBetween(String value1, String value2) {
-            addCriterion("comment not between", value1, value2, "comment");
-            return (Criteria) this;
-        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 11 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudents.java

@@ -179,6 +179,8 @@ public class EasArcTlsStudents implements Serializable {
     @Schema(description = "学生身份证号")
     private String studentIdnumber;
 
+    private String graduation;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -349,6 +351,14 @@ public class EasArcTlsStudents implements Serializable {
         this.studentIdnumber = studentIdnumber == null ? null : studentIdnumber.trim();
     }
 
+    public String getGraduation() {
+        return graduation;
+    }
+
+    public void setGraduation(String graduation) {
+        this.graduation = graduation == null ? null : graduation.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -376,6 +386,7 @@ public class EasArcTlsStudents implements Serializable {
         sb.append(", managerId=").append(managerId);
         sb.append(", createUid=").append(createUid);
         sb.append(", studentIdnumber=").append(studentIdnumber);
+        sb.append(", graduation=").append(graduation);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 70 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasArcTlsStudentsExample.java

@@ -1501,6 +1501,76 @@ public class EasArcTlsStudentsExample {
             addCriterion("student_idnumber not between", value1, value2, "studentIdnumber");
             return (Criteria) this;
         }
+
+        public Criteria andGraduationIsNull() {
+            addCriterion("graduation is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationIsNotNull() {
+            addCriterion("graduation is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationEqualTo(String value) {
+            addCriterion("graduation =", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationNotEqualTo(String value) {
+            addCriterion("graduation <>", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationGreaterThan(String value) {
+            addCriterion("graduation >", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationGreaterThanOrEqualTo(String value) {
+            addCriterion("graduation >=", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationLessThan(String value) {
+            addCriterion("graduation <", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationLessThanOrEqualTo(String value) {
+            addCriterion("graduation <=", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationLike(String value) {
+            addCriterion("graduation like", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationNotLike(String value) {
+            addCriterion("graduation not like", value, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationIn(List<String> values) {
+            addCriterion("graduation in", values, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationNotIn(List<String> values) {
+            addCriterion("graduation not in", values, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationBetween(String value1, String value2) {
+            addCriterion("graduation between", value1, value2, "graduation");
+            return (Criteria) this;
+        }
+
+        public Criteria andGraduationNotBetween(String value1, String value2) {
+            addCriterion("graduation not between", value1, value2, "graduation");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 0 - 153
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelation.java

@@ -1,153 +0,0 @@
-package com.koobietech.eas.mbg.model;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import java.io.Serializable;
-import java.util.Date;
-
-public class EasEduClaRelation implements Serializable {
-    private Integer id;
-
-    /**
-     * 班级ID
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "班级ID")
-    private Long classId;
-
-    /**
-     * 学习的课程
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "学习的课程")
-    private Long categoryId;
-
-    /**
-     * 学习到当前课程的科目
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "学习到当前课程的科目")
-    private Long subjectsId;
-
-    /**
-     * 学习进度百分比
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "学习进度百分比")
-    private Integer progress;
-
-    /**
-     * 创建时间
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
-    private Date createTime;
-
-    /**
-     * 修改时间
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "修改时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
-    private Date modifyTime;
-
-    /**
-     * 创建用户ID
-     *
-     * @mbg.generated
-     */
-    @Schema(description = "创建用户ID")
-    private Integer createUid;
-
-    private static final long serialVersionUID = 1L;
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Long getClassId() {
-        return classId;
-    }
-
-    public void setClassId(Long classId) {
-        this.classId = classId;
-    }
-
-    public Long getCategoryId() {
-        return categoryId;
-    }
-
-    public void setCategoryId(Long categoryId) {
-        this.categoryId = categoryId;
-    }
-
-    public Long getSubjectsId() {
-        return subjectsId;
-    }
-
-    public void setSubjectsId(Long subjectsId) {
-        this.subjectsId = subjectsId;
-    }
-
-    public Integer getProgress() {
-        return progress;
-    }
-
-    public void setProgress(Integer progress) {
-        this.progress = progress;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getModifyTime() {
-        return modifyTime;
-    }
-
-    public void setModifyTime(Date modifyTime) {
-        this.modifyTime = modifyTime;
-    }
-
-    public Integer getCreateUid() {
-        return createUid;
-    }
-
-    public void setCreateUid(Integer createUid) {
-        this.createUid = createUid;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append(getClass().getSimpleName());
-        sb.append(" [");
-        sb.append("Hash = ").append(hashCode());
-        sb.append(", id=").append(id);
-        sb.append(", classId=").append(classId);
-        sb.append(", categoryId=").append(categoryId);
-        sb.append(", subjectsId=").append(subjectsId);
-        sb.append(", progress=").append(progress);
-        sb.append(", createTime=").append(createTime);
-        sb.append(", modifyTime=").append(modifyTime);
-        sb.append(", createUid=").append(createUid);
-        sb.append(", serialVersionUID=").append(serialVersionUID);
-        sb.append("]");
-        return sb.toString();
-    }
-}

+ 0 - 680
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduClaRelationExample.java

@@ -1,680 +0,0 @@
-package com.koobietech.eas.mbg.model;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-public class EasEduClaRelationExample {
-    protected String orderByClause;
-
-    protected boolean distinct;
-
-    protected List<Criteria> oredCriteria;
-
-    public EasEduClaRelationExample() {
-        oredCriteria = new ArrayList<>();
-    }
-
-    public void setOrderByClause(String orderByClause) {
-        this.orderByClause = orderByClause;
-    }
-
-    public String getOrderByClause() {
-        return orderByClause;
-    }
-
-    public void setDistinct(boolean distinct) {
-        this.distinct = distinct;
-    }
-
-    public boolean isDistinct() {
-        return distinct;
-    }
-
-    public List<Criteria> getOredCriteria() {
-        return oredCriteria;
-    }
-
-    public void or(Criteria criteria) {
-        oredCriteria.add(criteria);
-    }
-
-    public Criteria or() {
-        Criteria criteria = createCriteriaInternal();
-        oredCriteria.add(criteria);
-        return criteria;
-    }
-
-    public Criteria createCriteria() {
-        Criteria criteria = createCriteriaInternal();
-        if (oredCriteria.size() == 0) {
-            oredCriteria.add(criteria);
-        }
-        return criteria;
-    }
-
-    protected Criteria createCriteriaInternal() {
-        Criteria criteria = new Criteria();
-        return criteria;
-    }
-
-    public void clear() {
-        oredCriteria.clear();
-        orderByClause = null;
-        distinct = false;
-    }
-
-    protected abstract static class GeneratedCriteria {
-        protected List<Criterion> criteria;
-
-        protected GeneratedCriteria() {
-            super();
-            criteria = new ArrayList<>();
-        }
-
-        public boolean isValid() {
-            return criteria.size() > 0;
-        }
-
-        public List<Criterion> getAllCriteria() {
-            return criteria;
-        }
-
-        public List<Criterion> getCriteria() {
-            return criteria;
-        }
-
-        protected void addCriterion(String condition) {
-            if (condition == null) {
-                throw new RuntimeException("Value for condition cannot be null");
-            }
-            criteria.add(new Criterion(condition));
-        }
-
-        protected void addCriterion(String condition, Object value, String property) {
-            if (value == null) {
-                throw new RuntimeException("Value for " + property + " cannot be null");
-            }
-            criteria.add(new Criterion(condition, value));
-        }
-
-        protected void addCriterion(String condition, Object value1, Object value2, String property) {
-            if (value1 == null || value2 == null) {
-                throw new RuntimeException("Between values for " + property + " cannot be null");
-            }
-            criteria.add(new Criterion(condition, value1, value2));
-        }
-
-        public Criteria andIdIsNull() {
-            addCriterion("id is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdIsNotNull() {
-            addCriterion("id is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdEqualTo(Integer value) {
-            addCriterion("id =", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotEqualTo(Integer value) {
-            addCriterion("id <>", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThan(Integer value) {
-            addCriterion("id >", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
-            addCriterion("id >=", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThan(Integer value) {
-            addCriterion("id <", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdLessThanOrEqualTo(Integer value) {
-            addCriterion("id <=", value, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdIn(List<Integer> values) {
-            addCriterion("id in", values, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotIn(List<Integer> values) {
-            addCriterion("id not in", values, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdBetween(Integer value1, Integer value2) {
-            addCriterion("id between", value1, value2, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andIdNotBetween(Integer value1, Integer value2) {
-            addCriterion("id not between", value1, value2, "id");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdIsNull() {
-            addCriterion("class_id is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdIsNotNull() {
-            addCriterion("class_id is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdEqualTo(Long value) {
-            addCriterion("class_id =", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdNotEqualTo(Long value) {
-            addCriterion("class_id <>", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdGreaterThan(Long value) {
-            addCriterion("class_id >", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdGreaterThanOrEqualTo(Long value) {
-            addCriterion("class_id >=", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdLessThan(Long value) {
-            addCriterion("class_id <", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdLessThanOrEqualTo(Long value) {
-            addCriterion("class_id <=", value, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdIn(List<Long> values) {
-            addCriterion("class_id in", values, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdNotIn(List<Long> values) {
-            addCriterion("class_id not in", values, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdBetween(Long value1, Long value2) {
-            addCriterion("class_id between", value1, value2, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassIdNotBetween(Long value1, Long value2) {
-            addCriterion("class_id not between", value1, value2, "classId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdIsNull() {
-            addCriterion("category_id is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdIsNotNull() {
-            addCriterion("category_id is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdEqualTo(Long value) {
-            addCriterion("category_id =", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdNotEqualTo(Long value) {
-            addCriterion("category_id <>", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdGreaterThan(Long value) {
-            addCriterion("category_id >", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {
-            addCriterion("category_id >=", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdLessThan(Long value) {
-            addCriterion("category_id <", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {
-            addCriterion("category_id <=", value, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdIn(List<Long> values) {
-            addCriterion("category_id in", values, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdNotIn(List<Long> values) {
-            addCriterion("category_id not in", values, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdBetween(Long value1, Long value2) {
-            addCriterion("category_id between", value1, value2, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {
-            addCriterion("category_id not between", value1, value2, "categoryId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdIsNull() {
-            addCriterion("subjects_id is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdIsNotNull() {
-            addCriterion("subjects_id is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdEqualTo(Long value) {
-            addCriterion("subjects_id =", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdNotEqualTo(Long value) {
-            addCriterion("subjects_id <>", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdGreaterThan(Long value) {
-            addCriterion("subjects_id >", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdGreaterThanOrEqualTo(Long value) {
-            addCriterion("subjects_id >=", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdLessThan(Long value) {
-            addCriterion("subjects_id <", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdLessThanOrEqualTo(Long value) {
-            addCriterion("subjects_id <=", value, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdIn(List<Long> values) {
-            addCriterion("subjects_id in", values, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdNotIn(List<Long> values) {
-            addCriterion("subjects_id not in", values, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdBetween(Long value1, Long value2) {
-            addCriterion("subjects_id between", value1, value2, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andSubjectsIdNotBetween(Long value1, Long value2) {
-            addCriterion("subjects_id not between", value1, value2, "subjectsId");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressIsNull() {
-            addCriterion("progress is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressIsNotNull() {
-            addCriterion("progress is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressEqualTo(Integer value) {
-            addCriterion("progress =", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressNotEqualTo(Integer value) {
-            addCriterion("progress <>", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressGreaterThan(Integer value) {
-            addCriterion("progress >", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressGreaterThanOrEqualTo(Integer value) {
-            addCriterion("progress >=", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressLessThan(Integer value) {
-            addCriterion("progress <", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressLessThanOrEqualTo(Integer value) {
-            addCriterion("progress <=", value, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressIn(List<Integer> values) {
-            addCriterion("progress in", values, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressNotIn(List<Integer> values) {
-            addCriterion("progress not in", values, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressBetween(Integer value1, Integer value2) {
-            addCriterion("progress between", value1, value2, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andProgressNotBetween(Integer value1, Integer value2) {
-            addCriterion("progress not between", value1, value2, "progress");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeIsNull() {
-            addCriterion("create_time is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeIsNotNull() {
-            addCriterion("create_time is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeEqualTo(Date value) {
-            addCriterion("create_time =", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeNotEqualTo(Date value) {
-            addCriterion("create_time <>", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeGreaterThan(Date value) {
-            addCriterion("create_time >", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
-            addCriterion("create_time >=", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeLessThan(Date value) {
-            addCriterion("create_time <", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
-            addCriterion("create_time <=", value, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeIn(List<Date> values) {
-            addCriterion("create_time in", values, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeNotIn(List<Date> values) {
-            addCriterion("create_time not in", values, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeBetween(Date value1, Date value2) {
-            addCriterion("create_time between", value1, value2, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
-            addCriterion("create_time not between", value1, value2, "createTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeIsNull() {
-            addCriterion("modify_time is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeIsNotNull() {
-            addCriterion("modify_time is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeEqualTo(Date value) {
-            addCriterion("modify_time =", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeNotEqualTo(Date value) {
-            addCriterion("modify_time <>", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeGreaterThan(Date value) {
-            addCriterion("modify_time >", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeGreaterThanOrEqualTo(Date value) {
-            addCriterion("modify_time >=", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeLessThan(Date value) {
-            addCriterion("modify_time <", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeLessThanOrEqualTo(Date value) {
-            addCriterion("modify_time <=", value, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeIn(List<Date> values) {
-            addCriterion("modify_time in", values, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeNotIn(List<Date> values) {
-            addCriterion("modify_time not in", values, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeBetween(Date value1, Date value2) {
-            addCriterion("modify_time between", value1, value2, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andModifyTimeNotBetween(Date value1, Date value2) {
-            addCriterion("modify_time not between", value1, value2, "modifyTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidIsNull() {
-            addCriterion("create_uid is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidIsNotNull() {
-            addCriterion("create_uid is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidEqualTo(Integer value) {
-            addCriterion("create_uid =", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidNotEqualTo(Integer value) {
-            addCriterion("create_uid <>", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidGreaterThan(Integer value) {
-            addCriterion("create_uid >", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidGreaterThanOrEqualTo(Integer value) {
-            addCriterion("create_uid >=", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidLessThan(Integer value) {
-            addCriterion("create_uid <", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidLessThanOrEqualTo(Integer value) {
-            addCriterion("create_uid <=", value, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidIn(List<Integer> values) {
-            addCriterion("create_uid in", values, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidNotIn(List<Integer> values) {
-            addCriterion("create_uid not in", values, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidBetween(Integer value1, Integer value2) {
-            addCriterion("create_uid between", value1, value2, "createUid");
-            return (Criteria) this;
-        }
-
-        public Criteria andCreateUidNotBetween(Integer value1, Integer value2) {
-            addCriterion("create_uid not between", value1, value2, "createUid");
-            return (Criteria) this;
-        }
-    }
-
-    public static class Criteria extends GeneratedCriteria {
-        protected Criteria() {
-            super();
-        }
-    }
-
-    public static class Criterion {
-        private String condition;
-
-        private Object value;
-
-        private Object secondValue;
-
-        private boolean noValue;
-
-        private boolean singleValue;
-
-        private boolean betweenValue;
-
-        private boolean listValue;
-
-        private String typeHandler;
-
-        public String getCondition() {
-            return condition;
-        }
-
-        public Object getValue() {
-            return value;
-        }
-
-        public Object getSecondValue() {
-            return secondValue;
-        }
-
-        public boolean isNoValue() {
-            return noValue;
-        }
-
-        public boolean isSingleValue() {
-            return singleValue;
-        }
-
-        public boolean isBetweenValue() {
-            return betweenValue;
-        }
-
-        public boolean isListValue() {
-            return listValue;
-        }
-
-        public String getTypeHandler() {
-            return typeHandler;
-        }
-
-        protected Criterion(String condition) {
-            super();
-            this.condition = condition;
-            this.typeHandler = null;
-            this.noValue = true;
-        }
-
-        protected Criterion(String condition, Object value, String typeHandler) {
-            super();
-            this.condition = condition;
-            this.value = value;
-            this.typeHandler = typeHandler;
-            if (value instanceof List<?>) {
-                this.listValue = true;
-            } else {
-                this.singleValue = true;
-            }
-        }
-
-        protected Criterion(String condition, Object value) {
-            this(condition, value, null);
-        }
-
-        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
-            super();
-            this.condition = condition;
-            this.value = value;
-            this.secondValue = secondValue;
-            this.typeHandler = typeHandler;
-            this.betweenValue = true;
-        }
-
-        protected Criterion(String condition, Object value, Object secondValue) {
-            this(condition, value, secondValue, null);
-        }
-    }
-}

+ 17 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelation.java

@@ -50,6 +50,14 @@ public class EasEduCltRelation implements Serializable {
     @Schema(description = "创建用户ID")
     private Integer createUid;
 
+    /**
+     * 类别
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "类别")
+    private String type;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -100,6 +108,14 @@ public class EasEduCltRelation implements Serializable {
         this.createUid = createUid;
     }
 
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type == null ? null : type.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -112,6 +128,7 @@ public class EasEduCltRelation implements Serializable {
         sb.append(", createTime=").append(createTime);
         sb.append(", modifyTime=").append(modifyTime);
         sb.append(", createUid=").append(createUid);
+        sb.append(", type=").append(type);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 70 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasEduCltRelationExample.java

@@ -464,6 +464,76 @@ public class EasEduCltRelationExample {
             addCriterion("create_uid not between", value1, value2, "createUid");
             return (Criteria) this;
         }
+
+        public Criteria andTypeIsNull() {
+            addCriterion("type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNotNull() {
+            addCriterion("type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeEqualTo(String value) {
+            addCriterion("type =", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotEqualTo(String value) {
+            addCriterion("type <>", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThan(String value) {
+            addCriterion("type >", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("type >=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThan(String value) {
+            addCriterion("type <", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThanOrEqualTo(String value) {
+            addCriterion("type <=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLike(String value) {
+            addCriterion("type like", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotLike(String value) {
+            addCriterion("type not like", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIn(List<String> values) {
+            addCriterion("type in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotIn(List<String> values) {
+            addCriterion("type not in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeBetween(String value1, String value2) {
+            addCriterion("type between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotBetween(String value1, String value2) {
+            addCriterion("type not between", value1, value2, "type");
+            return (Criteria) this;
+        }
     }
 
     public static class Criteria extends GeneratedCriteria {

+ 17 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartment.java

@@ -16,6 +16,14 @@ public class EasSysDepartment implements Serializable {
     @Schema(description = "部门名称")
     private String depname;
 
+    /**
+     * 权限名
+     *
+     * @mbg.generated
+     */
+    @Schema(description = "权限名")
+    private String authority;
+
     /**
      * 部门地址
      *
@@ -100,6 +108,14 @@ public class EasSysDepartment implements Serializable {
         this.depname = depname == null ? null : depname.trim();
     }
 
+    public String getAuthority() {
+        return authority;
+    }
+
+    public void setAuthority(String authority) {
+        this.authority = authority == null ? null : authority.trim();
+    }
+
     public String getAddress() {
         return address;
     }
@@ -172,6 +188,7 @@ public class EasSysDepartment implements Serializable {
         sb.append("Hash = ").append(hashCode());
         sb.append(", id=").append(id);
         sb.append(", depname=").append(depname);
+        sb.append(", authority=").append(authority);
         sb.append(", address=").append(address);
         sb.append(", phone=").append(phone);
         sb.append(", email=").append(email);

+ 70 - 0
mbg/src/main/java/com/koobietech/eas/mbg/model/EasSysDepartmentExample.java

@@ -235,6 +235,76 @@ public class EasSysDepartmentExample {
             return (Criteria) this;
         }
 
+        public Criteria andAuthorityIsNull() {
+            addCriterion("authority is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityIsNotNull() {
+            addCriterion("authority is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityEqualTo(String value) {
+            addCriterion("authority =", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityNotEqualTo(String value) {
+            addCriterion("authority <>", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityGreaterThan(String value) {
+            addCriterion("authority >", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityGreaterThanOrEqualTo(String value) {
+            addCriterion("authority >=", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityLessThan(String value) {
+            addCriterion("authority <", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityLessThanOrEqualTo(String value) {
+            addCriterion("authority <=", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityLike(String value) {
+            addCriterion("authority like", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityNotLike(String value) {
+            addCriterion("authority not like", value, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityIn(List<String> values) {
+            addCriterion("authority in", values, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityNotIn(List<String> values) {
+            addCriterion("authority not in", values, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityBetween(String value1, String value2) {
+            addCriterion("authority between", value1, value2, "authority");
+            return (Criteria) this;
+        }
+
+        public Criteria andAuthorityNotBetween(String value1, String value2) {
+            addCriterion("authority not between", value1, value2, "authority");
+            return (Criteria) this;
+        }
+
         public Criteria andAddressIsNull() {
             addCriterion("address is null");
             return (Criteria) this;

+ 40 - 8
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcArchivesMapper.xml

@@ -7,6 +7,8 @@
     <result column="student_number" jdbcType="VARCHAR" property="studentNumber" />
     <result column="file_path" jdbcType="VARCHAR" property="filePath" />
     <result column="arctype" jdbcType="VARCHAR" property="arctype" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="filetype" jdbcType="CHAR" property="filetype" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="validity_time" jdbcType="TIMESTAMP" property="validityTime" />
@@ -73,8 +75,8 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, archive_number, student_number, file_path, arctype, create_time, modify_time, 
-    validity_time, manager_id, create_date, create_uid
+    id, archive_number, student_number, file_path, arctype, remarks, filetype, create_time, 
+    modify_time, validity_time, manager_id, create_date, create_uid
   </sql>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasArcArchivesExample" resultMap="BaseResultMap">
     select
@@ -111,13 +113,15 @@
       SELECT LAST_INSERT_ID()
     </selectKey>
     insert into eas_arc_archives (archive_number, student_number, file_path, 
-      arctype, create_time, modify_time, 
-      validity_time, manager_id, create_date, 
-      create_uid)
+      arctype, remarks, filetype, 
+      create_time, modify_time, validity_time, 
+      manager_id, create_date, create_uid
+      )
     values (#{archiveNumber,jdbcType=VARCHAR}, #{studentNumber,jdbcType=VARCHAR}, #{filePath,jdbcType=VARCHAR}, 
-      #{arctype,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{validityTime,jdbcType=TIMESTAMP}, #{managerId,jdbcType=INTEGER}, #{createDate,jdbcType=DATE}, 
-      #{createUid,jdbcType=INTEGER})
+      #{arctype,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{filetype,jdbcType=CHAR}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, #{validityTime,jdbcType=TIMESTAMP}, 
+      #{managerId,jdbcType=INTEGER}, #{createDate,jdbcType=DATE}, #{createUid,jdbcType=INTEGER}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasArcArchives">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -137,6 +141,12 @@
       <if test="arctype != null">
         arctype,
       </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="filetype != null">
+        filetype,
+      </if>
       <if test="createTime != null">
         create_time,
       </if>
@@ -169,6 +179,12 @@
       <if test="arctype != null">
         #{arctype,jdbcType=VARCHAR},
       </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="filetype != null">
+        #{filetype,jdbcType=CHAR},
+      </if>
       <if test="createTime != null">
         #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -213,6 +229,12 @@
       <if test="record.arctype != null">
         arctype = #{record.arctype,jdbcType=VARCHAR},
       </if>
+      <if test="record.remarks != null">
+        remarks = #{record.remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="record.filetype != null">
+        filetype = #{record.filetype,jdbcType=CHAR},
+      </if>
       <if test="record.createTime != null">
         create_time = #{record.createTime,jdbcType=TIMESTAMP},
       </if>
@@ -243,6 +265,8 @@
       student_number = #{record.studentNumber,jdbcType=VARCHAR},
       file_path = #{record.filePath,jdbcType=VARCHAR},
       arctype = #{record.arctype,jdbcType=VARCHAR},
+      remarks = #{record.remarks,jdbcType=VARCHAR},
+      filetype = #{record.filetype,jdbcType=CHAR},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
       validity_time = #{record.validityTime,jdbcType=TIMESTAMP},
@@ -268,6 +292,12 @@
       <if test="arctype != null">
         arctype = #{arctype,jdbcType=VARCHAR},
       </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="filetype != null">
+        filetype = #{filetype,jdbcType=CHAR},
+      </if>
       <if test="createTime != null">
         create_time = #{createTime,jdbcType=TIMESTAMP},
       </if>
@@ -295,6 +325,8 @@
       student_number = #{studentNumber,jdbcType=VARCHAR},
       file_path = #{filePath,jdbcType=VARCHAR},
       arctype = #{arctype,jdbcType=VARCHAR},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      filetype = #{filetype,jdbcType=CHAR},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP},
       validity_time = #{validityTime,jdbcType=TIMESTAMP},

+ 65 - 11
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsScoresMapper.xml

@@ -13,7 +13,9 @@
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="create_uid" jdbcType="INTEGER" property="createUid" />
-    <result column="comment" jdbcType="VARCHAR" property="comment" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.koobietech.eas.mbg.model.EasArcTlsScores">
+    <result column="comment" jdbcType="LONGVARCHAR" property="comment" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -75,8 +77,27 @@
   </sql>
   <sql id="Base_Column_List">
     id, student_number, category_id, subject_id, test_date, score, pass_rate, excel_rate, 
-    create_time, modify_time, create_uid, comment
+    create_time, modify_time, create_uid
+  </sql>
+  <sql id="Blob_Column_List">
+    comment
   </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScoresExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from eas_arc_tls_scores
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScoresExample" resultMap="BaseResultMap">
     select
     <if test="distinct">
@@ -91,9 +112,11 @@
       order by ${orderByClause}
     </if>
   </select>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
     select 
     <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
     from eas_arc_tls_scores
     where id = #{id,jdbcType=INTEGER}
   </select>
@@ -118,7 +141,7 @@
     values (#{studentNumber,jdbcType=VARCHAR}, #{categoryId,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, 
       #{testDate,jdbcType=TIMESTAMP}, #{score,jdbcType=DECIMAL}, #{passRate,jdbcType=DECIMAL}, 
       #{excelRate,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{createUid,jdbcType=INTEGER}, #{comment,jdbcType=VARCHAR})
+      #{createUid,jdbcType=INTEGER}, #{comment,jdbcType=LONGVARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -192,7 +215,7 @@
         #{createUid,jdbcType=INTEGER},
       </if>
       <if test="comment != null">
-        #{comment,jdbcType=VARCHAR},
+        #{comment,jdbcType=LONGVARCHAR},
       </if>
     </trim>
   </insert>
@@ -239,14 +262,14 @@
         create_uid = #{record.createUid,jdbcType=INTEGER},
       </if>
       <if test="record.comment != null">
-        comment = #{record.comment,jdbcType=VARCHAR},
+        comment = #{record.comment,jdbcType=LONGVARCHAR},
       </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
   </update>
-  <update id="updateByExample" parameterType="map">
+  <update id="updateByExampleWithBLOBs" parameterType="map">
     update eas_arc_tls_scores
     set id = #{record.id,jdbcType=INTEGER},
       student_number = #{record.studentNumber,jdbcType=VARCHAR},
@@ -259,7 +282,24 @@
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
       create_uid = #{record.createUid,jdbcType=INTEGER},
-      comment = #{record.comment,jdbcType=VARCHAR}
+      comment = #{record.comment,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update eas_arc_tls_scores
+    set id = #{record.id,jdbcType=INTEGER},
+      student_number = #{record.studentNumber,jdbcType=VARCHAR},
+      category_id = #{record.categoryId,jdbcType=INTEGER},
+      subject_id = #{record.subjectId,jdbcType=INTEGER},
+      test_date = #{record.testDate,jdbcType=TIMESTAMP},
+      score = #{record.score,jdbcType=DECIMAL},
+      pass_rate = #{record.passRate,jdbcType=DECIMAL},
+      excel_rate = #{record.excelRate,jdbcType=DECIMAL},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
+      create_uid = #{record.createUid,jdbcType=INTEGER}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -298,12 +338,12 @@
         create_uid = #{createUid,jdbcType=INTEGER},
       </if>
       <if test="comment != null">
-        comment = #{comment,jdbcType=VARCHAR},
+        comment = #{comment,jdbcType=LONGVARCHAR},
       </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
-  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
     update eas_arc_tls_scores
     set student_number = #{studentNumber,jdbcType=VARCHAR},
       category_id = #{categoryId,jdbcType=INTEGER},
@@ -315,7 +355,21 @@
       create_time = #{createTime,jdbcType=TIMESTAMP},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP},
       create_uid = #{createUid,jdbcType=INTEGER},
-      comment = #{comment,jdbcType=VARCHAR}
+      comment = #{comment,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasArcTlsScores">
+    update eas_arc_tls_scores
+    set student_number = #{studentNumber,jdbcType=VARCHAR},
+      category_id = #{categoryId,jdbcType=INTEGER},
+      subject_id = #{subjectId,jdbcType=INTEGER},
+      test_date = #{testDate,jdbcType=TIMESTAMP},
+      score = #{score,jdbcType=DECIMAL},
+      pass_rate = #{passRate,jdbcType=DECIMAL},
+      excel_rate = #{excelRate,jdbcType=DECIMAL},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+      create_uid = #{createUid,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
 </mapper>

+ 22 - 5
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasArcTlsStudentsMapper.xml

@@ -23,6 +23,7 @@
     <result column="manager_id" jdbcType="INTEGER" property="managerId" />
     <result column="create_uid" jdbcType="INTEGER" property="createUid" />
     <result column="student_idnumber" jdbcType="VARCHAR" property="studentIdnumber" />
+    <result column="graduation" jdbcType="CHAR" property="graduation" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -85,7 +86,7 @@
   <sql id="Base_Column_List">
     id, archive_number, student_number, student_name, gender, birthdate, address, phone, 
     email, enrollment_date, graduation_date, grade, major, minor, university, create_time, 
-    modify_time, admissions_id, manager_id, create_uid, student_idnumber
+    modify_time, admissions_id, manager_id, create_uid, student_idnumber, graduation
   </sql>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasArcTlsStudentsExample" resultMap="BaseResultMap">
     select
@@ -127,14 +128,16 @@
       graduation_date, grade, major, 
       minor, university, create_time, 
       modify_time, admissions_id, manager_id, 
-      create_uid, student_idnumber)
+      create_uid, student_idnumber, graduation
+      )
     values (#{archiveNumber,jdbcType=VARCHAR}, #{studentNumber,jdbcType=VARCHAR}, #{studentName,jdbcType=VARCHAR}, 
       #{gender,jdbcType=CHAR}, #{birthdate,jdbcType=DATE}, #{address,jdbcType=VARCHAR}, 
       #{phone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{enrollmentDate,jdbcType=DATE}, 
       #{graduationDate,jdbcType=DATE}, #{grade,jdbcType=INTEGER}, #{major,jdbcType=VARCHAR}, 
       #{minor,jdbcType=VARCHAR}, #{university,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
       #{modifyTime,jdbcType=TIMESTAMP}, #{admissionsId,jdbcType=INTEGER}, #{managerId,jdbcType=INTEGER}, 
-      #{createUid,jdbcType=INTEGER}, #{studentIdnumber,jdbcType=VARCHAR})
+      #{createUid,jdbcType=INTEGER}, #{studentIdnumber,jdbcType=VARCHAR}, #{graduation,jdbcType=CHAR}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasArcTlsStudents">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -202,6 +205,9 @@
       <if test="studentIdnumber != null">
         student_idnumber,
       </if>
+      <if test="graduation != null">
+        graduation,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="archiveNumber != null">
@@ -264,6 +270,9 @@
       <if test="studentIdnumber != null">
         #{studentIdnumber,jdbcType=VARCHAR},
       </if>
+      <if test="graduation != null">
+        #{graduation,jdbcType=CHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.koobietech.eas.mbg.model.EasArcTlsStudentsExample" resultType="java.lang.Long">
@@ -338,6 +347,9 @@
       <if test="record.studentIdnumber != null">
         student_idnumber = #{record.studentIdnumber,jdbcType=VARCHAR},
       </if>
+      <if test="record.graduation != null">
+        graduation = #{record.graduation,jdbcType=CHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -365,7 +377,8 @@
       admissions_id = #{record.admissionsId,jdbcType=INTEGER},
       manager_id = #{record.managerId,jdbcType=INTEGER},
       create_uid = #{record.createUid,jdbcType=INTEGER},
-      student_idnumber = #{record.studentIdnumber,jdbcType=VARCHAR}
+      student_idnumber = #{record.studentIdnumber,jdbcType=VARCHAR},
+      graduation = #{record.graduation,jdbcType=CHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -433,6 +446,9 @@
       <if test="studentIdnumber != null">
         student_idnumber = #{studentIdnumber,jdbcType=VARCHAR},
       </if>
+      <if test="graduation != null">
+        graduation = #{graduation,jdbcType=CHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -457,7 +473,8 @@
       admissions_id = #{admissionsId,jdbcType=INTEGER},
       manager_id = #{managerId,jdbcType=INTEGER},
       create_uid = #{createUid,jdbcType=INTEGER},
-      student_idnumber = #{studentIdnumber,jdbcType=VARCHAR}
+      student_idnumber = #{studentIdnumber,jdbcType=VARCHAR},
+      graduation = #{graduation,jdbcType=CHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
 </mapper>

+ 0 - 258
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasEduClaRelationMapper.xml

@@ -1,258 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.koobietech.eas.mbg.mapper.EasEduClaRelationMapper">
-  <resultMap id="BaseResultMap" type="com.koobietech.eas.mbg.model.EasEduClaRelation">
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <result column="class_id" jdbcType="BIGINT" property="classId" />
-    <result column="category_id" jdbcType="BIGINT" property="categoryId" />
-    <result column="subjects_id" jdbcType="BIGINT" property="subjectsId" />
-    <result column="progress" jdbcType="INTEGER" property="progress" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
-    <result column="create_uid" jdbcType="INTEGER" property="createUid" />
-  </resultMap>
-  <sql id="Example_Where_Clause">
-    <where>
-      <foreach collection="oredCriteria" item="criteria" separator="or">
-        <if test="criteria.valid">
-          <trim prefix="(" prefixOverrides="and" suffix=")">
-            <foreach collection="criteria.criteria" item="criterion">
-              <choose>
-                <when test="criterion.noValue">
-                  and ${criterion.condition}
-                </when>
-                <when test="criterion.singleValue">
-                  and ${criterion.condition} #{criterion.value}
-                </when>
-                <when test="criterion.betweenValue">
-                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
-                </when>
-                <when test="criterion.listValue">
-                  and ${criterion.condition}
-                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
-                    #{listItem}
-                  </foreach>
-                </when>
-              </choose>
-            </foreach>
-          </trim>
-        </if>
-      </foreach>
-    </where>
-  </sql>
-  <sql id="Update_By_Example_Where_Clause">
-    <where>
-      <foreach collection="example.oredCriteria" item="criteria" separator="or">
-        <if test="criteria.valid">
-          <trim prefix="(" prefixOverrides="and" suffix=")">
-            <foreach collection="criteria.criteria" item="criterion">
-              <choose>
-                <when test="criterion.noValue">
-                  and ${criterion.condition}
-                </when>
-                <when test="criterion.singleValue">
-                  and ${criterion.condition} #{criterion.value}
-                </when>
-                <when test="criterion.betweenValue">
-                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
-                </when>
-                <when test="criterion.listValue">
-                  and ${criterion.condition}
-                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
-                    #{listItem}
-                  </foreach>
-                </when>
-              </choose>
-            </foreach>
-          </trim>
-        </if>
-      </foreach>
-    </where>
-  </sql>
-  <sql id="Base_Column_List">
-    id, class_id, category_id, subjects_id, progress, create_time, modify_time, create_uid
-  </sql>
-  <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelationExample" resultMap="BaseResultMap">
-    select
-    <if test="distinct">
-      distinct
-    </if>
-    <include refid="Base_Column_List" />
-    from eas_edu_cla_relation
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-    <if test="orderByClause != null">
-      order by ${orderByClause}
-    </if>
-  </select>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
-    select 
-    <include refid="Base_Column_List" />
-    from eas_edu_cla_relation
-    where id = #{id,jdbcType=INTEGER}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-    delete from eas_edu_cla_relation
-    where id = #{id,jdbcType=INTEGER}
-  </delete>
-  <delete id="deleteByExample" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelationExample">
-    delete from eas_edu_cla_relation
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-  </delete>
-  <insert id="insert" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelation">
-    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
-      SELECT LAST_INSERT_ID()
-    </selectKey>
-    insert into eas_edu_cla_relation (class_id, category_id, subjects_id, 
-      progress, create_time, modify_time, 
-      create_uid)
-    values (#{classId,jdbcType=BIGINT}, #{categoryId,jdbcType=BIGINT}, #{subjectsId,jdbcType=BIGINT}, 
-      #{progress,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, 
-      #{createUid,jdbcType=INTEGER})
-  </insert>
-  <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelation">
-    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
-      SELECT LAST_INSERT_ID()
-    </selectKey>
-    insert into eas_edu_cla_relation
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="classId != null">
-        class_id,
-      </if>
-      <if test="categoryId != null">
-        category_id,
-      </if>
-      <if test="subjectsId != null">
-        subjects_id,
-      </if>
-      <if test="progress != null">
-        progress,
-      </if>
-      <if test="createTime != null">
-        create_time,
-      </if>
-      <if test="modifyTime != null">
-        modify_time,
-      </if>
-      <if test="createUid != null">
-        create_uid,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="classId != null">
-        #{classId,jdbcType=BIGINT},
-      </if>
-      <if test="categoryId != null">
-        #{categoryId,jdbcType=BIGINT},
-      </if>
-      <if test="subjectsId != null">
-        #{subjectsId,jdbcType=BIGINT},
-      </if>
-      <if test="progress != null">
-        #{progress,jdbcType=INTEGER},
-      </if>
-      <if test="createTime != null">
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="modifyTime != null">
-        #{modifyTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="createUid != null">
-        #{createUid,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <select id="countByExample" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelationExample" resultType="java.lang.Long">
-    select count(*) from eas_edu_cla_relation
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-  </select>
-  <update id="updateByExampleSelective" parameterType="map">
-    update eas_edu_cla_relation
-    <set>
-      <if test="record.id != null">
-        id = #{record.id,jdbcType=INTEGER},
-      </if>
-      <if test="record.classId != null">
-        class_id = #{record.classId,jdbcType=BIGINT},
-      </if>
-      <if test="record.categoryId != null">
-        category_id = #{record.categoryId,jdbcType=BIGINT},
-      </if>
-      <if test="record.subjectsId != null">
-        subjects_id = #{record.subjectsId,jdbcType=BIGINT},
-      </if>
-      <if test="record.progress != null">
-        progress = #{record.progress,jdbcType=INTEGER},
-      </if>
-      <if test="record.createTime != null">
-        create_time = #{record.createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="record.modifyTime != null">
-        modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="record.createUid != null">
-        create_uid = #{record.createUid,jdbcType=INTEGER},
-      </if>
-    </set>
-    <if test="_parameter != null">
-      <include refid="Update_By_Example_Where_Clause" />
-    </if>
-  </update>
-  <update id="updateByExample" parameterType="map">
-    update eas_edu_cla_relation
-    set id = #{record.id,jdbcType=INTEGER},
-      class_id = #{record.classId,jdbcType=BIGINT},
-      category_id = #{record.categoryId,jdbcType=BIGINT},
-      subjects_id = #{record.subjectsId,jdbcType=BIGINT},
-      progress = #{record.progress,jdbcType=INTEGER},
-      create_time = #{record.createTime,jdbcType=TIMESTAMP},
-      modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
-      create_uid = #{record.createUid,jdbcType=INTEGER}
-    <if test="_parameter != null">
-      <include refid="Update_By_Example_Where_Clause" />
-    </if>
-  </update>
-  <update id="updateByPrimaryKeySelective" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelation">
-    update eas_edu_cla_relation
-    <set>
-      <if test="classId != null">
-        class_id = #{classId,jdbcType=BIGINT},
-      </if>
-      <if test="categoryId != null">
-        category_id = #{categoryId,jdbcType=BIGINT},
-      </if>
-      <if test="subjectsId != null">
-        subjects_id = #{subjectsId,jdbcType=BIGINT},
-      </if>
-      <if test="progress != null">
-        progress = #{progress,jdbcType=INTEGER},
-      </if>
-      <if test="createTime != null">
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="modifyTime != null">
-        modify_time = #{modifyTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="createUid != null">
-        create_uid = #{createUid,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasEduClaRelation">
-    update eas_edu_cla_relation
-    set class_id = #{classId,jdbcType=BIGINT},
-      category_id = #{categoryId,jdbcType=BIGINT},
-      subjects_id = #{subjectsId,jdbcType=BIGINT},
-      progress = #{progress,jdbcType=INTEGER},
-      create_time = #{createTime,jdbcType=TIMESTAMP},
-      modify_time = #{modifyTime,jdbcType=TIMESTAMP},
-      create_uid = #{createUid,jdbcType=INTEGER}
-    where id = #{id,jdbcType=INTEGER}
-  </update>
-</mapper>

+ 22 - 5
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasEduCltRelationMapper.xml

@@ -8,6 +8,7 @@
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
     <result column="create_uid" jdbcType="INTEGER" property="createUid" />
+    <result column="type" jdbcType="CHAR" property="type" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -68,7 +69,7 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, class_id, student_id, create_time, modify_time, create_uid
+    id, class_id, student_id, create_time, modify_time, create_uid, type
   </sql>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasEduCltRelationExample" resultMap="BaseResultMap">
     select
@@ -105,9 +106,11 @@
       SELECT LAST_INSERT_ID()
     </selectKey>
     insert into eas_edu_clt_relation (class_id, student_id, create_time, 
-      modify_time, create_uid)
+      modify_time, create_uid, type
+      )
     values (#{classId,jdbcType=BIGINT}, #{studentId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{modifyTime,jdbcType=TIMESTAMP}, #{createUid,jdbcType=INTEGER})
+      #{modifyTime,jdbcType=TIMESTAMP}, #{createUid,jdbcType=INTEGER}, #{type,jdbcType=CHAR}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasEduCltRelation">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
@@ -130,6 +133,9 @@
       <if test="createUid != null">
         create_uid,
       </if>
+      <if test="type != null">
+        type,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="classId != null">
@@ -147,6 +153,9 @@
       <if test="createUid != null">
         #{createUid,jdbcType=INTEGER},
       </if>
+      <if test="type != null">
+        #{type,jdbcType=CHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.koobietech.eas.mbg.model.EasEduCltRelationExample" resultType="java.lang.Long">
@@ -176,6 +185,9 @@
       <if test="record.createUid != null">
         create_uid = #{record.createUid,jdbcType=INTEGER},
       </if>
+      <if test="record.type != null">
+        type = #{record.type,jdbcType=CHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -188,7 +200,8 @@
       student_id = #{record.studentId,jdbcType=INTEGER},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
-      create_uid = #{record.createUid,jdbcType=INTEGER}
+      create_uid = #{record.createUid,jdbcType=INTEGER},
+      type = #{record.type,jdbcType=CHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -211,6 +224,9 @@
       <if test="createUid != null">
         create_uid = #{createUid,jdbcType=INTEGER},
       </if>
+      <if test="type != null">
+        type = #{type,jdbcType=CHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -220,7 +236,8 @@
       student_id = #{studentId,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP},
-      create_uid = #{createUid,jdbcType=INTEGER}
+      create_uid = #{createUid,jdbcType=INTEGER},
+      type = #{type,jdbcType=CHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
 </mapper>

+ 25 - 10
mbg/src/main/resources/com/koobietech/eas/mbg/mapper/EasSysDepartmentMapper.xml

@@ -4,6 +4,7 @@
   <resultMap id="BaseResultMap" type="com.koobietech.eas.mbg.model.EasSysDepartment">
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="depname" jdbcType="VARCHAR" property="depname" />
+    <result column="authority" jdbcType="VARCHAR" property="authority" />
     <result column="address" jdbcType="VARCHAR" property="address" />
     <result column="phone" jdbcType="VARCHAR" property="phone" />
     <result column="email" jdbcType="VARCHAR" property="email" />
@@ -72,8 +73,8 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    id, depname, address, phone, email, manager, create_time, modify_time, create_uid, 
-    disabled
+    id, depname, authority, address, phone, email, manager, create_time, modify_time, 
+    create_uid, disabled
   </sql>
   <select id="selectByExample" parameterType="com.koobietech.eas.mbg.model.EasSysDepartmentExample" resultMap="BaseResultMap">
     select
@@ -109,14 +110,14 @@
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
       SELECT LAST_INSERT_ID()
     </selectKey>
-    insert into eas_sys_department (depname, address, phone, 
-      email, manager, create_time, 
-      modify_time, create_uid, disabled
-      )
-    values (#{depname,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, 
-      #{email,jdbcType=VARCHAR}, #{manager,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{modifyTime,jdbcType=TIMESTAMP}, #{createUid,jdbcType=INTEGER}, #{disabled,jdbcType=CHAR}
-      )
+    insert into eas_sys_department (depname, authority, address, 
+      phone, email, manager, 
+      create_time, modify_time, create_uid, 
+      disabled)
+    values (#{depname,jdbcType=VARCHAR}, #{authority,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, 
+      #{phone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{manager,jdbcType=VARCHAR}, 
+      #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, #{createUid,jdbcType=INTEGER}, 
+      #{disabled,jdbcType=CHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.koobietech.eas.mbg.model.EasSysDepartment">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -127,6 +128,9 @@
       <if test="depname != null">
         depname,
       </if>
+      <if test="authority != null">
+        authority,
+      </if>
       <if test="address != null">
         address,
       </if>
@@ -156,6 +160,9 @@
       <if test="depname != null">
         #{depname,jdbcType=VARCHAR},
       </if>
+      <if test="authority != null">
+        #{authority,jdbcType=VARCHAR},
+      </if>
       <if test="address != null">
         #{address,jdbcType=VARCHAR},
       </if>
@@ -197,6 +204,9 @@
       <if test="record.depname != null">
         depname = #{record.depname,jdbcType=VARCHAR},
       </if>
+      <if test="record.authority != null">
+        authority = #{record.authority,jdbcType=VARCHAR},
+      </if>
       <if test="record.address != null">
         address = #{record.address,jdbcType=VARCHAR},
       </if>
@@ -230,6 +240,7 @@
     update eas_sys_department
     set id = #{record.id,jdbcType=BIGINT},
       depname = #{record.depname,jdbcType=VARCHAR},
+      authority = #{record.authority,jdbcType=VARCHAR},
       address = #{record.address,jdbcType=VARCHAR},
       phone = #{record.phone,jdbcType=VARCHAR},
       email = #{record.email,jdbcType=VARCHAR},
@@ -248,6 +259,9 @@
       <if test="depname != null">
         depname = #{depname,jdbcType=VARCHAR},
       </if>
+      <if test="authority != null">
+        authority = #{authority,jdbcType=VARCHAR},
+      </if>
       <if test="address != null">
         address = #{address,jdbcType=VARCHAR},
       </if>
@@ -278,6 +292,7 @@
   <update id="updateByPrimaryKey" parameterType="com.koobietech.eas.mbg.model.EasSysDepartment">
     update eas_sys_department
     set depname = #{depname,jdbcType=VARCHAR},
+      authority = #{authority,jdbcType=VARCHAR},
       address = #{address,jdbcType=VARCHAR},
       phone = #{phone,jdbcType=VARCHAR},
       email = #{email,jdbcType=VARCHAR},

+ 6 - 1
pom.xml

@@ -35,7 +35,7 @@
         <knife4j.version>4.1.0</knife4j.version>
         <easypoi.version>4.4.0</easypoi.version>
         <poi.version>5.0.0</poi.version>
-        <pagehelper.starter.version>1.3.1</pagehelper.starter.version>
+        <pagehelper.starter.version>1.4.6</pagehelper.starter.version>
         <pagehelper.version>5.2.1</pagehelper.version>
         <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
         <captcha.version>1.3.0</captcha.version>
@@ -95,6 +95,11 @@
                 <artifactId>spring-boot-starter-security</artifactId>
                 <version>${spring-boot.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.github.pagehelper</groupId>
+                <artifactId>pagehelper-spring-boot-starter</artifactId>
+                <version>${pagehelper.starter.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper</artifactId>

+ 23 - 2
security/src/main/java/com/koobietech/eas/security/config/SecurityConfig.java

@@ -1,5 +1,7 @@
 package com.koobietech.eas.security.config;
 
+import com.koobietech.eas.security.exception.EasAuthenticationEntryPoint;
+import com.koobietech.eas.security.exception.EasAuthenticationFailureHandler;
 import com.koobietech.eas.security.filter.EasSecurityFilter;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -14,6 +16,9 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
 
 import javax.annotation.Resource;
 
+/**
+ * @author lc
+ */
 @Configuration
 @EnableWebSecurity
 public class SecurityConfig {
@@ -25,7 +30,7 @@ public class SecurityConfig {
     IgnoreUrlsConfig ignoreUrlsConfig;
 
     @Bean
-    public SecurityFilterChain t(HttpSecurity httpSecurity) throws Exception {
+    public SecurityFilterChain buildSecurityFilterChain(HttpSecurity httpSecurity) throws Exception {
 
         ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry
                 registry = httpSecurity.authorizeRequests();
@@ -33,19 +38,35 @@ public class SecurityConfig {
         for (String url : ignoreUrlsConfig.getIgnored()) {
             registry.antMatchers(url).permitAll();
         }
-        registry.anyRequest().authenticated();
+        registry.anyRequest()
+                .access("@SecurityAccessService.hasPermission(request, authentication)");
 
         HttpSecurity and = httpSecurity
                 .csrf()
                 .disable()
                 .sessionManagement()
                 .sessionCreationPolicy(SessionCreationPolicy.NEVER)
+                .and()
+                //处理异常信息
+                .exceptionHandling()
+                .accessDeniedHandler(restfulAccessDeniedHandler())
+                .authenticationEntryPoint(restAuthenticationEntryPoint())
                 .and();
         and.addFilterBefore( easSecurityFilter, UsernamePasswordAuthenticationFilter.class);
 
         return and.build();
     }
 
+    @Bean
+    public EasAuthenticationFailureHandler restfulAccessDeniedHandler() {
+        return new EasAuthenticationFailureHandler();
+    }
+
+    @Bean
+    public EasAuthenticationEntryPoint restAuthenticationEntryPoint() {
+        return new EasAuthenticationEntryPoint();
+    }
+
     @Bean
     public PasswordEncoder passwordEncoder() {
         return new BCryptPasswordEncoder();

+ 21 - 0
security/src/main/java/com/koobietech/eas/security/exception/EasAuthenticationEntryPoint.java

@@ -0,0 +1,21 @@
+package com.koobietech.eas.security.exception;
+
+import com.koobietech.eas.common.utils.ResponseManager;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author lc
+ */
+public class EasAuthenticationEntryPoint implements AuthenticationEntryPoint {
+    @Override
+    public void commence(HttpServletRequest request, HttpServletResponse response,
+                         AuthenticationException authException) {
+        System.out.println( authException.getMessage() );
+        authException.printStackTrace();
+        ResponseManager.printResponse(response, "不允许访问", 403);
+    }
+}

+ 20 - 0
security/src/main/java/com/koobietech/eas/security/exception/EasAuthenticationFailureHandler.java

@@ -0,0 +1,20 @@
+package com.koobietech.eas.security.exception;
+
+import com.koobietech.eas.common.utils.ResponseManager;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author lc
+ */
+public class EasAuthenticationFailureHandler implements AccessDeniedHandler {
+    @Override
+    public void handle(HttpServletRequest request,
+                       HttpServletResponse response,
+                       AccessDeniedException accessException) {
+        ResponseManager.printResponse(response, "您无权操作!", 403);
+    }
+}

+ 34 - 37
security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java

@@ -3,7 +3,7 @@ package com.koobietech.eas.security.filter;
 import com.koobietech.eas.common.exception.EasException;
 import com.koobietech.eas.common.pojo.JwtUserPojo;
 import com.koobietech.eas.common.utils.JwtManager;
-import com.koobietech.eas.dao.pojo.PermissionPojo;
+import com.koobietech.eas.common.utils.ResponseManager;
 import com.koobietech.eas.dao.pojo.UserDetailPojo;
 import com.koobietech.eas.service.EasSysUserLoginRedisService;
 import org.slf4j.Logger;
@@ -42,50 +42,47 @@ public class EasSecurityFilter extends OncePerRequestFilter {
 
         //从请求里面拿到token
         String token = request.getHeader("Authorization");
-        //判断token是否存在
-        if (StringUtils.hasText(token)) {
-            //解析token成JwtUserDto
-            JwtUserPojo jwtUserPojo = null;
-            try {
-                //过滤器 允许 Token 不正确, 后面Security 会拦截处理
-                jwtUserPojo = jwtManager.decodeJwt(token);
-            } catch ( EasException e) {
-                logger.debug(e.getMessage());
-            }
-            if ( Objects.nonNull(jwtUserPojo) ) {
-                //判断token是否有效
-                UserDetailPojo userDetailPojo = null;
-                try {
-                    userDetailPojo = loginRedisService.checkToken(jwtUserPojo);
-                } catch ( EasException e) {
-                    logger.debug(e.getMessage());
-                }
+        try {
+            //判断token是否存在
+            if (StringUtils.hasText(token)) {
+                //解析token成JwtUserDto
+                JwtUserPojo jwtUserPojo = jwtManager.decodeJwt(token);
 
-                // 如果获取到了有效的用户对象
-                if (Objects.nonNull(userDetailPojo)) {
-                    // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
-                    SecurityContext context = SecurityContextHolder.getContext();
+                if (Objects.nonNull(jwtUserPojo)) {
+                    //判断token是否有效
+                    UserDetailPojo userDetailPojo = loginRedisService.checkToken(jwtUserPojo);
 
-                    // 获取用户的权限列表
-                    List<PermissionPojo> permissionPojo = userDetailPojo.getPermissionPojos();
+                    // 如果获取到了有效的用户对象
+                    if (Objects.nonNull(userDetailPojo)) {
+                        // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
+                        SecurityContext context = SecurityContextHolder.getContext();
 
-                    // 创建一个 ArrayList 集合,用于存储用户权限对应的 SimpleGrantedAuthority 权限对象
-                    ArrayList<SimpleGrantedAuthority> objects = new ArrayList<>();
+                        // 获取用户的权限列表
+                        List<String> permissionPojo = userDetailPojo.getPermissionPojos();
 
-                    // 遍历用户的权限列表
-                    for (PermissionPojo adminPermissionPojo : permissionPojo) {
-                        // 创建一个 SimpleGrantedAuthority 权限对象,并添加到集合中
-                        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(adminPermissionPojo.getDescription());
-                        objects.add(authority);
-                    }
+                        // 创建一个 ArrayList 集合,用于存储用户权限对应的 SimpleGrantedAuthority 权限对象
+                        ArrayList<SimpleGrantedAuthority> objects = new ArrayList<>();
 
-                    // 使用用户的用户名、空凭证参数和权限对象集合创建一个 UsernamePasswordAuthenticationToken 身份验证令牌
-                    UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userDetailPojo, null, objects);
+                        // 遍历用户的权限列表
+                        if (Objects.nonNull(permissionPojo)) {
+                            for (String userPermission : permissionPojo) {
+                                // 创建一个 SimpleGrantedAuthority 权限对象,并添加到集合中
+                                SimpleGrantedAuthority authority = new SimpleGrantedAuthority(userPermission);
+                                objects.add(authority);
+                            }
+                        }
 
-                    // 将身份验证令牌设置到当前的 SecurityContext 中
-                    context.setAuthentication(authenticationToken);
+                        // 使用用户的用户名、空凭证参数和权限对象集合创建一个 UsernamePasswordAuthenticationToken 身份验证令牌
+                        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userDetailPojo, null, objects);
+
+                        // 将身份验证令牌设置到当前的 SecurityContext 中
+                        context.setAuthentication(authenticationToken);
+                    }
                 }
             }
+        } catch (EasException e) {
+            ResponseManager.printResponse(response, e.getMessage(), e.getCode());
+            return;
         }
         filterChain.doFilter(request, response);
     }

+ 12 - 0
security/src/main/java/com/koobietech/eas/security/service/SecurityAccessService.java

@@ -0,0 +1,12 @@
+package com.koobietech.eas.security.service;
+
+import org.springframework.security.core.Authentication;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author lc
+ */
+public interface SecurityAccessService {
+    Boolean hasPermission(HttpServletRequest httpServletRequest, Authentication authentication);
+}

+ 36 - 0
security/src/main/java/com/koobietech/eas/security/service/impl/SecurityAccessServiceImpl.java

@@ -0,0 +1,36 @@
+package com.koobietech.eas.security.service.impl;
+
+import com.koobietech.eas.common.utils.SecurityManager;
+import com.koobietech.eas.security.service.SecurityAccessService;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.stereotype.Service;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.util.PathMatcher;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Collection;
+
+/**
+ * @author lc
+ */
+@Service("SecurityAccessService")
+public class SecurityAccessServiceImpl implements SecurityAccessService {
+
+    private PathMatcher pathMatcher = new AntPathMatcher();
+
+    @Override
+    public Boolean hasPermission(HttpServletRequest request, Authentication authentication) {
+        Authentication userAuthentication= SecurityManager.getAuthentication();
+        if ( userAuthentication != null ) {
+            Collection<? extends GrantedAuthority> authorities = userAuthentication.getAuthorities();
+            System.out.println( "URI:" + request.getRequestURI() );
+            for (GrantedAuthority authority : authorities) {
+                if ( pathMatcher.match( authority.getAuthority(), request.getRequestURI() ) ) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}

+ 5 - 0
service/pom.xml

@@ -8,6 +8,11 @@
     <description>service</description>
 
     <dependencies>
+
+        <dependency>
+            <groupId>com.alibaba.fastjson2</groupId>
+            <artifactId>fastjson2</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>

+ 12 - 0
service/src/main/java/com/koobietech/eas/service/EasArcArchivesService.java

@@ -0,0 +1,12 @@
+package com.koobietech.eas.service;
+
+import com.koobietech.eas.mbg.model.EasArcArchives;
+
+import java.util.List;
+
+/**
+ * @author lc
+ */
+public interface  EasArcArchivesService {
+    List<EasArcArchives> getArchives(EasArcArchives easArcArchives);
+}

+ 7 - 1
service/src/main/java/com/koobietech/eas/service/EasArcTlsAttendanceService.java

@@ -1,6 +1,8 @@
 package com.koobietech.eas.service;
 
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.dto.AttendanceDto;
+import com.koobietech.eas.dao.pojo.AttendancePojo;
 import com.koobietech.eas.mbg.model.EasArcTlsAttendance;
 
 import java.util.List;
@@ -16,5 +18,9 @@ public interface EasArcTlsAttendanceService {
 
     boolean isExist(EasArcTlsAttendance attendance);
 
-    List<EasArcTlsAttendance> getStudentList(Long scheduleId);
+    List<AttendancePojo> getStudentList(AttendanceDto dto);
+
+    PageDataResult queryAttendance(AttendanceDto dto);
+
+    boolean saveStudentAttendanceArchive(String studentNumber);
 }

+ 5 - 0
service/src/main/java/com/koobietech/eas/service/EasArcTlsScoresService.java

@@ -1,6 +1,7 @@
 package com.koobietech.eas.service;
 
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.dto.ScoresDto;
 import com.koobietech.eas.mbg.model.EasArcTlsScores;
 
 import java.io.InputStream;
@@ -42,4 +43,8 @@ public interface EasArcTlsScoresService {
      */
     Boolean importExcelScores(InputStream inputStream);
 
+    PageDataResult queryStudentScores(ScoresDto scoresDto);
+
+    boolean saveStudentScoreArchive(String studentNumber);
+
 }

+ 5 - 1
service/src/main/java/com/koobietech/eas/service/EasArchiveFileDownloadService.java

@@ -3,9 +3,13 @@ package com.koobietech.eas.service;
 import javax.servlet.http.HttpServletResponse;
 
 public interface EasArchiveFileDownloadService {
-    String getArchiveToken(Integer archiveId);
+    String getArchiveToken(String archiveId);
+
+    String getArchiveDownloadToken(String archiveNumber, String filePath);
 
     String getFilePathByToken(String archiveToken);
 
     boolean downloadFileByToken(String archiveToken, HttpServletResponse response);
+
+    boolean validateArchiveNumberByUser(String archiveNumber, String studentNumber);
 }

+ 22 - 5
service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java

@@ -7,7 +7,6 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
 
 import java.io.FileInputStream;
 import java.io.InputStream;
-import java.io.OutputStream;
 
 /**
  * @author lc
@@ -43,6 +42,15 @@ public interface EasArchivesFilesService {
      */
     ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document);
 
+    /**
+     * 保存其他档案文件路径
+     * @param studentNumber
+     * @param archiveCode
+     * @param type
+     * @return
+     */
+    String getArchiveSavePath(String studentNumber, String archiveCode, String type);
+
     /**
      * 保存其他档案文件
      * @param studentNumber
@@ -52,6 +60,16 @@ public interface EasArchivesFilesService {
      */
     ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type);
 
+
+    /**
+     * 保存其他档案文件
+     * @param studentNumber
+     * @param stream
+     * @param type
+     * @return
+     */
+    ArchivesDto saveArchiveFileTemp(String studentNumber, InputStream stream, String type);
+
     /**
      * 保存 Excel
      * @param studentNumber
@@ -89,10 +107,9 @@ public interface EasArchivesFilesService {
     boolean backupArchiveFile(String filePath);
 
     /**
-     * 获取档案连接Url地址
-     * @param filePath
-     * @return
+     * 刷新档案
      */
-    String getArchiveUrl(String filePath);
+    boolean refreshProfile(String studentNumber);
 
+    String createZipArchives(String studentNumber);
 }

+ 12 - 0
service/src/main/java/com/koobietech/eas/service/EasEduClassService.java

@@ -1,7 +1,10 @@
 package com.koobietech.eas.service;
 
 import com.koobietech.eas.common.result.PageDataResult;
+import com.koobietech.eas.dao.dto.GroupStudentsDto;
+import com.koobietech.eas.dao.pojo.GroupStudentsPojo;
 import com.koobietech.eas.mbg.model.EasEduClass;
+import com.koobietech.eas.mbg.model.EasEduCltRelation;
 
 import java.util.List;
 
@@ -19,4 +22,13 @@ public interface EasEduClassService {
 
     PageDataResult selectCondition(EasEduClass easEduClass );
 
+    List<GroupStudentsPojo> queryClassStudent(GroupStudentsDto dto);
+
+    List<EasEduCltRelation> queryClassStudentById(int classId);
+
+    boolean updateGroupStudentForm(Integer groupId, Integer[] studentIds);
+
+    boolean groupStudentDelete(Integer rowId);
+
+    boolean groupStudentUpdate(EasEduCltRelation easEduCltRelation);
 }

部分文件因为文件数量过多而无法显示