Browse Source

批量bug

lzzz 4 tháng trước cách đây
mục cha
commit
8ca5404ef7

+ 23 - 5
src/main/java/com/njuzr/eaibackend/service/impl/ClassServiceImpl.java

@@ -312,10 +312,19 @@ public class ClassServiceImpl implements ClassService {
             for (StudentImportRow row : rowsToRegister) {
                 BatchStudentImportDetailVO detail = pendingRegisterDetails.get(row.getRowIndex());
                 Map<String, Object> portalRow = portalResultByRow.get(row.getRowIndex());
-                if (portalRow == null || !"SUCCESS".equals(String.valueOf(portalRow.get("status")))) {
-                    detail.setStatus("SKIPPED");
-                    detail.setMessage(portalRow == null ? "Portal未返回该行处理结果" : String.valueOf(portalRow.get("message")));
-                    result.setSkippedCount(result.getSkippedCount() + 1);
+                if (portalRow == null) {
+                    detail.setStatus("FAILED");
+                    detail.setMessage("Portal未返回该行处理结果");
+                    result.setFailedCount(result.getFailedCount() + 1);
+                    continue;
+                }
+
+                String portalStatus = String.valueOf(portalRow.get("status"));
+                boolean importable = "SUCCESS".equals(portalStatus) || "EXISTING".equals(portalStatus);
+                if (!importable) {
+                    detail.setStatus("FAILED");
+                    detail.setMessage(String.valueOf(portalRow.get("message")));
+                    result.setFailedCount(result.getFailedCount() + 1);
                     continue;
                 }
 
@@ -328,6 +337,11 @@ public class ClassServiceImpl implements ClassService {
                 Object portalUserId = portalRow.get("userId");
                 if (portalUserId instanceof Number) {
                     user.setPid(String.valueOf(((Number) portalUserId).longValue()));
+                } else {
+                    detail.setStatus("FAILED");
+                    detail.setMessage("Portal返回userId缺失,无法在EAI补建账号");
+                    result.setFailedCount(result.getFailedCount() + 1);
+                    continue;
                 }
                 user.setPassword(passwordEncoder.encode(generateDefaultPassword(row.getOfficialNumber())));
                 usersToInsert.add(user);
@@ -340,7 +354,11 @@ public class ClassServiceImpl implements ClassService {
                 studentsToInsert.add(student);
 
                 detail.setStatus("SUCCESS");
-                detail.setMessage("导入成功");
+                if ("EXISTING".equals(portalStatus)) {
+                    detail.setMessage("Portal已存在账号,已在EAI补建并导入成功");
+                } else {
+                    detail.setMessage("导入成功");
+                }
                 result.setSuccessCount(result.getSuccessCount() + 1);
             }
         }