Browse Source

考试管理

eganwu 1 year ago
parent
commit
37ed11ad1a

+ 5 - 0
src/custom/restcontroller/R.java

@@ -5780,6 +5780,11 @@ public class R {
         }
     }
 
+    public static class ID20240323165602 {
+        public static class v1 {
+        }
+    }
+
 }
 
 

+ 22 - 1
src/custom/restcontroller/webmanage/saletool/courseware/CoursewareHelper.java

@@ -63,7 +63,7 @@ public class CoursewareHelper extends BaseClass {
         return removeArray;
     }
 
-    //获取查询的考试题目
+    //获取查询的指定考试题目
     public static JSONArray getTestlibraryRows(Controller controller, JSONArray sat_courseware_testlibraryids) throws YosException {
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sat_courseware_testlibrary").setTableAlias("t1");
@@ -96,5 +96,26 @@ public class CoursewareHelper extends BaseClass {
         return testquestions;
     }
 
+    public static Rows getTestlibraryWithCoursewareClassRows(Controller controller, JSONArray sat_courseware_classids) throws YosException {
+
+        StringBuffer where = new StringBuffer("(1=2");
+        for (Object obj : sat_courseware_classids) {
+            JSONArray array = (JSONArray) obj;
+            for (Object obj2 : array) {
+                where.append(" or (");
+                where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
+                where.append(")");
+            }
+        }
+        where.append(")");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sat_courseware_testlibrary").setTableAlias("t1");
+        querySQL.setSiteid(controller.siteid);
+        querySQL.setWhere(where.toString());
+        Rows rows = querySQL.query();
+
+        return rows;
+    }
+
 
 }

+ 8 - 4
src/custom/restcontroller/webmanage/saletool/courseware/courseware.java

@@ -172,13 +172,17 @@ public class courseware extends Controller {
                 where.append(")");
             }
             if (whereObject.containsKey("sat_courseware_classids") && !"".equals(whereObject.getString("sat_courseware_classids"))) {
-
+                where.append(" and (1=2");
                 JSONArray sat_courseware_classids = whereObject.getJSONArray("sat_courseware_classids");
                 for (Object obj : sat_courseware_classids) {
-                    where.append(" and (");
-                    where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj + "')");
-                    where.append(")");
+                    JSONArray array = (JSONArray) obj;
+                    for (Object obj2 : array) {
+                        where.append(" or (");
+                        where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
+                        where.append(")");
+                    }
                 }
+                where.append(")");
             }
             if (whereObject.containsKey("begindate_create") && !"".equals(whereObject.getString("begindate_create"))) {
                 where.append(" and (");

+ 1 - 1
src/custom/restcontroller/webmanage/saletool/courseware/coursewareclass.java

@@ -90,7 +90,7 @@ public class coursewareclass extends Controller {
                     return getErrReturnObject().setErrMsg("当前分类下包含子类,无法删除").toString();
                 }
             }
-            if (!dbConnect.runSqlQuery("select 1 from sat_courseware where sat_courseware_classid=" + sat_courseware_classid + " and  siteid='" + siteid + "'").isEmpty()) {
+            if (!dbConnect.runSqlQuery("select 1 from sat_courseware where JSON_CONTAINS(t1.sat_courseware_classids,'" + sat_courseware_classid + "')  and  siteid='" + siteid + "'").isEmpty()) {
                 return getErrReturnObject().setErrMsg("当前分类下存在课程,无法删除").toString();
             }
             String deletesql = "DELETE FROM sat_courseware_class WHERE sat_courseware_classid = '" + sat_courseware_classid + "'";

+ 9 - 22
src/custom/restcontroller/webmanage/saletool/courseware/coursewaretesthead.java

@@ -43,21 +43,8 @@ public class coursewaretesthead extends Controller {
             if (sat_courseware_classids.size() <= 0) {
                 return getErrReturnObject().setErrMsg("请选择分类").toString();
             }
-            StringBuffer where = new StringBuffer("(1=2");
-            for (Object obj : sat_courseware_classids) {
-                JSONArray array = (JSONArray) obj;
-                for (Object obj2 : array) {
-                    where.append(" or (");
-                    where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
-                    where.append(")");
-                }
-            }
-            where.append(")");
 
-            QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_courseware_testlibrary").setTableAlias("t1");
-            querySQL.setSiteid(siteid);
-            querySQL.setWhere(where.toString());
-            Rows rows = querySQL.query();
+            Rows rows = CoursewareHelper.getTestlibraryWithCoursewareClassRows(this, sat_courseware_classids);
             if (num > rows.size()) {
                 return getErrReturnObject().setErrMsg("当前分类下题目数量小于系统随机出题数").toString();
             }
@@ -90,15 +77,15 @@ public class coursewaretesthead extends Controller {
             updateSQL.setValue("passingscore", content.getBigDecimalValue("passingscore", 60));
             updateSQL.setValue("num", content.getIntValue("num", 0));
             updateSQL.setValue("sat_courseware_classids", sat_courseware_classids);
+            if (testaddmode == 1) {//系统随机
+                updateSQL.setValue("testquestions", new JSONArray());
+            }
             updateSQL.update();
         }
-
-        if (sat_courseware_testlibraryids.size() > 0) {
-            Collections.shuffle(sat_courseware_testlibraryids);
-            content.put("sat_courseware_testlibraryids",sat_courseware_testlibraryids.subList(0,num));
+        if (testaddmode == 1) {////系统随机
+            content.put("sat_courseware_testlibraryids", sat_courseware_testlibraryids);
             return addtestquestions();
         }
-
         return detail();
     }
 
@@ -256,17 +243,17 @@ public class coursewaretesthead extends Controller {
                 where.append(")");
             }
             if (whereObject.containsKey("sat_courseware_classids") && !"".equals(whereObject.getString("sat_courseware_classids"))) {
-
+                where.append(" and (1=2");
                 JSONArray sat_courseware_classids = whereObject.getJSONArray("sat_courseware_classids");
                 for (Object obj : sat_courseware_classids) {
                     JSONArray array = (JSONArray) obj;
                     for (Object obj2 : array) {
-                        where.append(" and (");
+                        where.append(" or (");
                         where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
                         where.append(")");
                     }
-
                 }
+                where.append(")");
             }
             if (whereObject.containsKey("begindate_create") && !"".equals(whereObject.getString("begindate_create"))) {
                 where.append(" and (");

+ 8 - 4
src/custom/restcontroller/webmanage/saletool/courseware/coursewaretestlibrary.java

@@ -130,13 +130,17 @@ public class coursewaretestlibrary extends Controller {
                 where.append(")");
             }
             if (whereObject.containsKey("sat_courseware_classids") && !"".equals(whereObject.getString("sat_courseware_classids"))) {
-
+                where.append(" and (1=2");
                 JSONArray sat_courseware_classids = whereObject.getJSONArray("sat_courseware_classids");
                 for (Object obj : sat_courseware_classids) {
-                    where.append(" and (");
-                    where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj + "')");
-                    where.append(")");
+                    JSONArray array = (JSONArray) obj;
+                    for (Object obj2 : array) {
+                        where.append(" or (");
+                        where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
+                        where.append(")");
+                    }
                 }
+                where.append(")");
             }
             if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
                 where.append(" and (");