|
|
@@ -8,7 +8,9 @@ import common.annotation.API;
|
|
|
import common.data.*;
|
|
|
import restcontroller.R;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
|
|
|
/**
|
|
|
* 考试表头
|
|
|
@@ -25,12 +27,44 @@ public class coursewaretesthead extends Controller {
|
|
|
public String insertOrUpdate() throws YosException {
|
|
|
|
|
|
Long sat_courseware_testheadid = content.getLongValue("sat_courseware_testheadid");
|
|
|
-
|
|
|
+ int testaddmode = content.getIntValue("testaddmode", 1);
|
|
|
+ int num = content.getIntValue("num", 0);
|
|
|
JSONArray sat_courseware_classids = new JSONArray();
|
|
|
if (content.containsKey("sat_courseware_classids")) {
|
|
|
sat_courseware_classids = content.getJSONArray("sat_courseware_classids");
|
|
|
}
|
|
|
|
|
|
+ ArrayList<Long> sat_courseware_testlibraryids = new ArrayList<>();
|
|
|
+
|
|
|
+ if (testaddmode == 1) {
|
|
|
+ if (num <= 0) {
|
|
|
+ return getErrReturnObject().setErrMsg("出题方式为系统随机时题目设置数量需大于0").toString();
|
|
|
+ }
|
|
|
+ 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();
|
|
|
+ if (num > rows.size()) {
|
|
|
+ return getErrReturnObject().setErrMsg("当前分类下题目数量小于系统随机出题数").toString();
|
|
|
+ }
|
|
|
+ sat_courseware_testlibraryids = rows.toArrayList("sat_courseware_testlibraryid", new ArrayList<>());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if (sat_courseware_testheadid <= 0) {
|
|
|
sat_courseware_testheadid = createTableID(sat_courseware_testhead);
|
|
|
InsertSQL insertSQL = SQLFactory.createInsertSQL(this, sat_courseware_testhead);
|
|
|
@@ -59,6 +93,12 @@ public class coursewaretesthead extends Controller {
|
|
|
updateSQL.update();
|
|
|
}
|
|
|
|
|
|
+ if (sat_courseware_testlibraryids.size() > 0) {
|
|
|
+ Collections.shuffle(sat_courseware_testlibraryids);
|
|
|
+ content.put("sat_courseware_testlibraryids",sat_courseware_testlibraryids.subList(0,num));
|
|
|
+ return addtestquestions();
|
|
|
+ }
|
|
|
+
|
|
|
return detail();
|
|
|
}
|
|
|
|
|
|
@@ -122,6 +162,77 @@ public class coursewaretesthead extends Controller {
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
|
+ @API(title = "添加考试题目", apiversion = R.ID20240323141602.v1.class)
|
|
|
+ public String addtestquestions() throws YosException {
|
|
|
+ Long sat_courseware_testheadid = content.getLongValue("sat_courseware_testheadid");
|
|
|
+ JSONArray sat_courseware_testlibraryids = content.getJSONArray("sat_courseware_testlibraryids");
|
|
|
+
|
|
|
+ Rows testheadRows = dbConnect.runSqlQuery("SELECT * from sat_courseware_testhead WHERE sat_courseware_testheadid=" + sat_courseware_testheadid + " and siteid='" + siteid + "'");
|
|
|
+ if (testheadRows.isEmpty()) {
|
|
|
+ return getErrReturnObject().setErrMsg("数据不存在").toString();
|
|
|
+ }
|
|
|
+ if (sat_courseware_testlibraryids.size() <= 0) {
|
|
|
+ return getErrReturnObject().setErrMsg("请选择题目").toString();
|
|
|
+ }
|
|
|
+ JSONArray testquestions = testheadRows.get(0).getJSONArray("testquestions");
|
|
|
+ //移除考试题目
|
|
|
+ testquestions.removeAll(CoursewareHelper.getRemoveArray(testquestions, sat_courseware_testlibraryids));
|
|
|
+ //添加考试题目
|
|
|
+ testquestions.addAll(CoursewareHelper.getTestlibraryRows(this, sat_courseware_testlibraryids));
|
|
|
+ //设置考试分数
|
|
|
+ testquestions = CoursewareHelper.setTestquestionsScore(testquestions);
|
|
|
+
|
|
|
+
|
|
|
+ int testaddmode = testheadRows.get(0).getInteger("testaddmode");
|
|
|
+
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, sat_courseware_testhead);
|
|
|
+ updateSQL.setUniqueid(sat_courseware_testheadid);
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
+ updateSQL.setValue("testquestions", testquestions);
|
|
|
+ if (testaddmode == 2) {
|
|
|
+ updateSQL.setValue("num", testquestions.size());
|
|
|
+ }
|
|
|
+ updateSQL.update();
|
|
|
+ return detail();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "删除考试题目", apiversion = R.ID20240323155602.v1.class)
|
|
|
+ public String deletetestquestions() throws YosException {
|
|
|
+
|
|
|
+ Long sat_courseware_testheadid = content.getLongValue("sat_courseware_testheadid");
|
|
|
+ JSONArray sat_courseware_testlibraryids = content.getJSONArray("sat_courseware_testlibraryids");
|
|
|
+
|
|
|
+
|
|
|
+ Rows testheadRows = dbConnect.runSqlQuery("SELECT * from sat_courseware_testhead WHERE sat_courseware_testheadid=" + sat_courseware_testheadid + " and siteid='" + siteid + "'");
|
|
|
+ if (testheadRows.isEmpty()) {
|
|
|
+ return getErrReturnObject().setErrMsg("数据不存在").toString();
|
|
|
+ }
|
|
|
+ if (sat_courseware_testlibraryids.size() <= 0) {
|
|
|
+ return getErrReturnObject().setErrMsg("请选择题目").toString();
|
|
|
+ }
|
|
|
+ JSONArray testquestions = testheadRows.get(0).getJSONArray("testquestions");
|
|
|
+ //移除考试题目
|
|
|
+ testquestions.removeAll(CoursewareHelper.getRemoveArray(testquestions, sat_courseware_testlibraryids));
|
|
|
+
|
|
|
+ //设置考试分数
|
|
|
+ testquestions = CoursewareHelper.setTestquestionsScore(testquestions);
|
|
|
+
|
|
|
+
|
|
|
+ int testaddmode = testheadRows.get(0).getInteger("testaddmode");
|
|
|
+
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, sat_courseware_testhead);
|
|
|
+ updateSQL.setUniqueid(sat_courseware_testheadid);
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
+ updateSQL.setValue("testquestions", testquestions);
|
|
|
+ if (testaddmode == 2) {
|
|
|
+ updateSQL.setValue("num", testquestions.size());
|
|
|
+ }
|
|
|
+ updateSQL.update();
|
|
|
+ return detail();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@API(title = "考试表头列表", apiversion = R.ID20240323112502.v1.class)
|
|
|
public String list() throws YosException {
|
|
|
StringBuffer where = new StringBuffer(" 1=1 ");
|
|
|
@@ -148,9 +259,13 @@ public class coursewaretesthead extends Controller {
|
|
|
|
|
|
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(" and (");
|
|
|
+ where.append("JSON_CONTAINS(t1.sat_courseware_classids,'" + obj2 + "')");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
if (whereObject.containsKey("begindate_create") && !"".equals(whereObject.getString("begindate_create"))) {
|