Procházet zdrojové kódy

ly excel导入试题

ly před 1 rokem
rodič
revize
048b23f145

+ 64 - 18
master/src/main/java/com/ruoyi/project/training/elearn/controller/TElQuController.java

@@ -595,6 +595,7 @@ public class TElQuController extends BaseController {
      */
     @PostMapping("/importDataExcel")
     public AjaxResult importDataExcel(MultipartFile file, boolean updateSupport, String repoIds) throws Exception {
+        List<String> repos = Arrays.asList(repoIds.split(",").clone());
         Workbook workbook = ExcelUtils.getWorkBook(file);
         Sheet sheet = workbook.getSheetAt(0);
         int rowNum = sheet.getPhysicalNumberOfRows();
@@ -603,6 +604,8 @@ public class TElQuController extends BaseController {
             Row row = sheet.getRow(i);
             int cellNum = row.getLastCellNum();
             TElQu qu = new TElQu();
+            List<TElQuAnswer> answerList = new ArrayList<>();
+            String[] options = null;
             for (int j = 0; j < cellNum; j++) {
                 Cell cell = row.getCell(j);
                 String cellValue = ExcelUtils.getCellValue(cell).trim();
@@ -611,33 +614,76 @@ public class TElQuController extends BaseController {
                     //题型
                     if ("单选题".equals(cellValue)) {
                         qu.setQuType(1l);
-                    }else if ("多选题".equals(cellValue)) {
+                    } else if ("多选题".equals(cellValue)) {
                         qu.setQuType(2l);
-                    }else if ("判断题".equals(cellValue)) {
+                    } else if ("判断题".equals(cellValue)) {
                         qu.setQuType(3l);
-                    }else {
+                    } else {
                         break;
                     }
-                }else if (j == 1) {
-                        qu.setContent(cellValue);
-                }else if (j == 2) {
+                } else if (j == 1) {
+                    qu.setContent(cellValue);
+                } else if (j == 2) {
                     if (qu.getQuType() != 3) {
-                        List<String> anwsers = Arrays.asList(cellValue.split(";"));
+                        options = cellValue.split(";");
                     }
-                }else if (j == 3) {
-                    if (qu.getQuType() == 3) {
-                        List<String> anwsers = Arrays.asList(cellValue.split(";"));
-                    }
-                }
-
+                } else if (j == 3) {
+                    if (qu.getQuType() != 3) {
+                        if (options.length == 4) {
+                            TElQuAnswer answerA = new TElQuAnswer();
+                            answerA.setIsRight(0l);
+                            answerA.setContent(options[0]);
+                            TElQuAnswer answerB = new TElQuAnswer();
+                            answerB.setIsRight(0l);
+                            answerB.setContent(options[1]);
+                            TElQuAnswer answerC = new TElQuAnswer();
+                            answerC.setIsRight(0l);
+                            answerC.setContent(options[2]);
+                            TElQuAnswer answerD = new TElQuAnswer();
+                            answerD.setIsRight(0l);
+                            answerD.setContent(options[3]);
+                            if (cellValue.contains("A")) {
+                                answerA.setIsRight(1l);
+                            }
+                            if (cellValue.contains("B")) {
+                                answerB.setIsRight(1l);
+                            }
+                            if (cellValue.contains("C")) {
+                                answerC.setIsRight(1l);
+                            }
+                            if (cellValue.contains("D")) {
+                                answerD.setIsRight(1l);
+                            }
+                            answerList.add(answerA);
+                            answerList.add(answerB);
+                            answerList.add(answerC);
+                            answerList.add(answerD);
+                        }
 
+                    } else if (qu.getQuType() == 3) {
+                        TElQuAnswer answerA = new TElQuAnswer();
+                        answerA.setIsRight(0l);
+                        answerA.setContent("正确");
+                        TElQuAnswer answerB = new TElQuAnswer();
+                        answerB.setIsRight(0l);
+                        answerB.setContent("错误");
+                        if (cellValue.contains("A")) {
+                            answerA.setIsRight(1l);
+                        }
+                        if (cellValue.contains("B")) {
+                            answerB.setIsRight(1l);
+                        }
+                        answerList.add(answerA);
+                        answerList.add(answerB);
+                    }
+                    qu.setAnswerList(answerList);
+                    qu.setRepoIds(repos);
+                    logger.info(JSON.toJSONString(qu));
+                    tElQuService.insertTElQu(qu);
 
+                }
             }
-
-
         }
-
-
         return AjaxResult.success();
-    };
+    }
 }