Browse Source

考试管理

eganwu 1 year ago
parent
commit
3a17041c67

+ 29 - 5
src/custom/restcontroller/webmanage/saletool/courseware/coursewaretesthead.java

@@ -597,15 +597,15 @@ public class coursewaretesthead extends Controller {
         for (Row row : rows2) {
             JSONArray jsonArray = row.getJSONArray("options");
             row.put("options", jsonArray);
-            ArrayList<String> answer_fact =new ArrayList<>();
+            ArrayList<String> answer_fact = new ArrayList<>();
             for (Object object : jsonArray) {
                 JSONObject jsonObject = (JSONObject) object;
-                if(jsonObject.getString("isfact").equals("1")){
+                if (jsonObject.getString("isfact").equals("1")) {
                     answer_fact.add(jsonObject.getString("option"));
                 }
             }
             row.put("answer_fact", answer_fact);
-            row.put("typemxstr", answer_fact.size()>1?"多选":"单选");
+            row.put("typemxstr", answer_fact.size() > 1 ? "多选" : "单选");
             JSONArray answer = row.getJSONArray("answer");
             row.put("answer", answer);
         }
@@ -680,9 +680,33 @@ public class coursewaretesthead extends Controller {
             JSONObject jsonObject = (JSONObject) object;
             Long sat_courseware_testitemsid = jsonObject.getLong("sat_courseware_testitemsid");
             JSONArray answer = jsonObject.getJSONArray("answer");
-            System.err.println(isSame(answer, getAnswer(sat_courseware_testitemsid)));
-
+            boolean isSame = isSame(answer, getAnswer(sat_courseware_testitemsid));
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_courseware_testitems");
+            updateSQL.setUniqueid(sat_courseware_testitemsid);
+            updateSQL.setSiteid(siteid);
+            updateSQL.setValue("answer", answer);
+            updateSQL.setValue("result", isSame);
+            sqlList.add(updateSQL.getSQL());
         }
+        dbConnect.runSqlUpdate(sqlList);
+
+        Long sat_courseware_testid = content.getLongValue("sat_courseware_testid");
+
+        Rows scoreRows = dbConnect.runSqlQuery("SELECT sum(score) score from sat_courseware_testitems WHERE result=1 and sat_courseware_testid=" + sat_courseware_testid + " and siteid='" + siteid + "'");
+        Rows rightRows = dbConnect.runSqlQuery("SELECT count(1) count  from sat_courseware_testitems WHERE result=1 and sat_courseware_testid=" + sat_courseware_testid + " and siteid='" + siteid + "'");
+        Rows answerRows = dbConnect.runSqlQuery("SELECT count(1) count from sat_courseware_testitems WHERE answer is not null and sat_courseware_testid=" + sat_courseware_testid + " and siteid='" + siteid + "'");
+
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_courseware_test");
+        updateSQL.setUniqueid(sat_courseware_testid);
+        updateSQL.setSiteid(siteid);
+        updateSQL.setValue("submitdate", getDateTime_Str());
+        updateSQL.setValue("status", "已完成");
+        updateSQL.setValue("score", scoreRows.get(0).getBigDecimal("score"));
+        updateSQL.setValue("answercount", answerRows.get(0).getLong("count"));
+        updateSQL.setValue("errcount", answerRows.get(0).getLong("count") - rightRows.get(0).getLong("count"));
+        updateSQL.setValue("rightcount", rightRows.get(0).getLong("count"));
+        System.err.println(updateSQL.getSQL());
+        updateSQL.update();
 
 
         return getSucReturnObject().toString();