#50 新增解析列:学生电话

Спојено
LiZhi споји(ла) 1 комит(е) из FanYanPeng/feat/423_bug у FanYanPeng/refactor пре 4 месеци
1 измењених фајлова са 22 додато и 6 уклоњено
  1. 22 6
      src/main/java/com/njuzr/eaibackend/service/impl/ClassServiceImpl.java

+ 22 - 6
src/main/java/com/njuzr/eaibackend/service/impl/ClassServiceImpl.java

@@ -617,10 +617,11 @@ public class ClassServiceImpl implements ClassService {
             Row headerRow = sheet.getRow(0);
             int nameCol = findColumnIndex(headerRow, "学生姓名", "姓名");
             int numberCol = findColumnIndex(headerRow, "学生学号", "学号");
-            int phoneCol = findColumnIndex(headerRow, "手机号", "手机号码");
+            int phoneCol = findColumnIndex(headerRow, "手机号", "手机号码", "学生电话");
 
-            if (nameCol == -1 || numberCol == -1 || phoneCol == -1) {
-                throw new MyException(400, "文件缺少必要列:学生姓名 / 学生学号 / 手机号");
+            List<String> missingColumns = getMissingRequiredColumns(nameCol, numberCol, phoneCol);
+            if (!missingColumns.isEmpty()) {
+                throw new MyException(400, "文件缺少必要列:" + String.join(" / ", missingColumns));
             }
 
             for (int i = 1; i <= sheet.getLastRowNum(); i++) {
@@ -651,10 +652,11 @@ public class ClassServiceImpl implements ClassService {
 
             int nameCol = findColumnIndex(header, "学生姓名", "姓名");
             int numberCol = findColumnIndex(header, "学生学号", "学号");
-            int phoneCol = findColumnIndex(header, "手机号", "手机号码");
+            int phoneCol = findColumnIndex(header, "手机号", "手机号码", "学生电话");
 
-            if (nameCol == -1 || numberCol == -1 || phoneCol == -1) {
-                throw new MyException(400, "文件缺少必要列:学生姓名 / 学生学号 / 手机号");
+            List<String> missingColumns = getMissingRequiredColumns(nameCol, numberCol, phoneCol);
+            if (!missingColumns.isEmpty()) {
+                throw new MyException(400, "文件缺少必要列:" + String.join(" / ", missingColumns));
             }
 
             String[] nextRecord;
@@ -683,6 +685,20 @@ public class ClassServiceImpl implements ClassService {
         return rows;
     }
 
+    private List<String> getMissingRequiredColumns(int nameCol, int numberCol, int phoneCol) {
+        List<String> missingColumns = new ArrayList<>();
+        if (nameCol == -1) {
+            missingColumns.add("学生姓名");
+        }
+        if (numberCol == -1) {
+            missingColumns.add("学生学号");
+        }
+        if (phoneCol == -1) {
+            missingColumns.add("手机号");
+        }
+        return missingColumns;
+    }
+
     private int findColumnIndex(Row headerRow, String... columnNames) {
         if (headerRow == null) {
             return -1;