瀏覽代碼

题库关联课件

eganwu 1 年之前
父節點
當前提交
db5492bbb7

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

@@ -5894,6 +5894,26 @@ public class R {
         }
     }
 
+    public static class ID20240409142002 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240409142102 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240409142202 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240409142302 {
+        public static class v1 {
+        }
+    }
+
 
 }
 

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

@@ -203,7 +203,7 @@ public class coursewaretestlibrary extends Controller {
         int i = 1;
         for (Object obj : options) {
             JSONObject option = (JSONObject) obj;
-            option.put("option", Character.toUpperCase((char)(96+i)));
+            option.put("option", Character.toUpperCase((char) (96 + i)));
             i++;
         }
 
@@ -238,4 +238,139 @@ public class coursewaretestlibrary extends Controller {
         return detail();
     }
 
+    @API(title = "关联课件列表", apiversion = R.ID20240409142002.v1.class)
+    public String relatedCoursewareList() throws YosException {
+
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and (");
+                where.append("t1.title like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+
+        }
+        Long sat_courseware_testlibraryid = content.getLongValue("sat_courseware_testlibraryid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_coursewaredetail"
+                        , "sat_coursewaredetailid", "title", "status", "createdate", "senddate")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.inner, "sat_courseware_testlibrarylink", "t2", "t2.sat_coursewaredetailid=t1.sat_coursewaredetailid and t2.siteid=t1.siteid"
+                , "sat_courseware_testlibrarylinkid", "sat_courseware_testlibraryid");
+
+        querySQL.setTableAlias("t1").setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        querySQL.setWhere("t2.sat_courseware_testlibraryid", sat_courseware_testlibraryid);
+        querySQL.setWhere(where.toString());
+        Rows rows = querySQL.query();
+
+        ArrayList<Long> ids = rows.toArrayList("sat_coursewaredetailid", new ArrayList<>());
+
+        QuerySQL readSql = SQLFactory.createQuerySQL(this, "sat_courseware_read",
+                "sat_coursewaredetailid");
+        readSql.addQueryFields("user_count", "count(1)");
+        readSql.setSiteid(siteid);
+        readSql.setWhere("sat_coursewaredetailid", ids);
+        readSql.addGroupBy("sat_coursewaredetailid");
+        RowsMap coursewareRowsMap = readSql.query().toRowsMap("sat_coursewaredetailid");
+
+
+        for (Row row : rows) {
+            Rows coursewareRows = coursewareRowsMap.get(row.getString("sat_coursewaredetailid"));
+            if (coursewareRows.isEmpty()) {
+                row.put("user_count", 0);
+            } else {
+                row.put("user_count", coursewareRows.get(0).getString("user_count"));
+            }
+            row.putIfAbsent("senddate", "");
+
+        }
+
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+    @API(title = "删除关联课件", apiversion = R.ID20240409142102.v1.class)
+    public String deleteRelatedCoursewareList() throws YosException {
+
+        JSONArray sat_courseware_testlibrarylinkids = content.getJSONArray("sat_courseware_testlibrarylinkids");
+
+        DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sat_courseware_testlibrarylink");
+        deleteSQL.setSiteid(siteid);
+        deleteSQL.setWhere("sat_courseware_testlibrarylinkid", sat_courseware_testlibrarylinkids);
+        deleteSQL.delete();
+        return getSucReturnObject().toString();
+    }
+
+
+    @API(title = "添加关联课件", apiversion = R.ID20240409142202.v1.class)
+    public String addRelatedCourseware() throws YosException {
+
+        Long sat_courseware_testlibraryid = content.getLongValue("sat_courseware_testlibraryid");
+        JSONArray sat_coursewaredetailids = content.getJSONArray("sat_coursewaredetailids");
+
+        ArrayList<String> sqlList = new ArrayList<>();
+
+        for (Object obj : sat_coursewaredetailids) {
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sat_courseware_testlibrarylink");
+            insertSQL.setSiteid(siteid);
+            insertSQL.setUniqueid(createTableID("sat_courseware_testlibrarylink"));
+            insertSQL.setValue("sat_coursewaredetailid", obj);
+            insertSQL.setValue("sat_courseware_testlibraryid", sat_courseware_testlibraryid);
+            sqlList.add(insertSQL.getSQL());
+        }
+
+
+        dbConnect.runSqlUpdate(sqlList);
+
+        return getSucReturnObject().toString();
+    }
+
+    @API(title = "选择关联课件列表", apiversion = R.ID20240409142302.v1.class)
+    public String chooseRelatedCoursewareList() throws YosException {
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and (");
+                where.append("t1.title like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+        }
+
+        Long sat_courseware_testlibraryid = content.getLongValue("sat_courseware_testlibraryid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_coursewaredetail"
+                        , "sat_coursewaredetailid", "title", "status", "createdate", "senddate")
+                .setTableAlias("t1");
+        querySQL.setWhere(" t1.sat_coursewaredetailid not in (select sat_coursewaredetailid from sat_courseware_testlibrarylink where sat_courseware_testlibraryid =" + sat_courseware_testlibraryid + ")");
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        querySQL.setWhere(where.toString());
+        Rows rows = querySQL.query();
+
+        ArrayList<Long> ids = rows.toArrayList("sat_coursewaredetailid", new ArrayList<>());
+
+        QuerySQL readSql = SQLFactory.createQuerySQL(this, "sat_courseware_read",
+                "sat_coursewaredetailid");
+        readSql.addQueryFields("user_count", "count(1)");
+        readSql.setSiteid(siteid);
+        readSql.setWhere("sat_coursewaredetailid", ids);
+        readSql.addGroupBy("sat_coursewaredetailid");
+        RowsMap coursewareRowsMap = readSql.query().toRowsMap("sat_coursewaredetailid");
+
+        for (Row row : rows) {
+            Rows coursewareRows = coursewareRowsMap.get(row.getString("sat_coursewaredetailid"));
+            if (coursewareRows.isEmpty()) {
+                row.put("user_count", 0);
+            } else {
+                row.put("user_count", coursewareRows.get(0).getString("user_count"));
+            }
+            row.putIfAbsent("senddate", "");
+        }
+
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+
 }