123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520 |
- package restcontroller.webmanage.saletool.courseware;
- import beans.datatag.DataTag;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import common.Controller;
- import common.YosException;
- import common.annotation.API;
- import common.data.*;
- import restcontroller.R;
- import java.util.ArrayList;
- import java.util.logging.LoggingPermission;
- /**
- * 课件
- */
- public class coursewaredetail extends Controller {
- String sat_coursewaredetail = "sat_coursewaredetail";
- /**
- * 构造函数
- *
- * @param content
- */
- public coursewaredetail(JSONObject content) throws YosException {
- super(content);
- }
- //新增或更新
- @API(title = "课件新增或更新", apiversion = R.ID20240315110202.v1.class)
- public String insertOrUpdate() throws YosException {
- Long sat_coursewareid = content.getLongValue("sat_coursewareid");
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- if (sat_coursewaredetailid <= 0) {
- sat_coursewaredetailid = createTableID(sat_coursewaredetail);
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this, sat_coursewaredetail);
- insertSQL.setSiteid(siteid);
- insertSQL.setUniqueid(sat_coursewaredetailid);
- insertSQL.setValue("sat_coursewareid", sat_coursewareid);
- insertSQL.setValue("title", content.getStringValue("title"));
- insertSQL.setValue("description", content.getStringValue("description"));
- insertSQL.setValue("sequence", content.getLongValue("sequence"));
- insertSQL.setValue("teacher", content.getStringValue("teacher"));
- insertSQL.setValue("content", content.getString("content", true));
- insertSQL.setValue("status", "下架");
- insertSQL.setValue("filetype", content.getStringValue("filetype"));//图片、视频、pdf
- insertSQL.insert();
- content.put("sat_coursewaredetailid", sat_coursewaredetailid);
- }
- if (sat_coursewaredetailid > 0) {
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, sat_coursewaredetail);
- updateSQL.setSiteid(siteid);
- updateSQL.setUniqueid(sat_coursewaredetailid);
- updateSQL.setValue("title", content.getStringValue("title"));
- updateSQL.setValue("description", content.getStringValue("description"));
- updateSQL.setValue("sequence", content.getLongValue("sequence"));
- updateSQL.setValue("teacher", content.getStringValue("teacher"));
- updateSQL.setValue("content", content.getString("content", true));
- updateSQL.setValue("filetype", content.getStringValue("filetype"));//图片、视频、pdf
- updateSQL.update();
- }
- return detail();
- }
- //
- @API(title = "上架,下架", apiversion = R.ID20240315131302.v1.class)
- public String UpOrDown() throws YosException {
- JSONArray sat_coursewaredetailids = content.getJSONArray("sat_coursewaredetailids");
- int type = content.getIntValue("type");
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_coursewaredetail");
- updateSQL.setSiteid(siteid);
- updateSQL.setValue("status", type == 0 ? "下架" : "上架");
- updateSQL.setValue("sendby", type == 0 ? "null" : username);
- updateSQL.setValue("senddate", type == 0 ? "null" : getDateTime_Str());
- updateSQL.setWhere("sat_coursewaredetailid", sat_coursewaredetailids.toArray());
- updateSQL.update();
- return getSucReturnObject().toString();
- }
- //课件删除
- @API(title = "课件删除", apiversion = R.ID20240315131402.v1.class)
- public String delete() throws YosException {
- JSONArray sat_coursewaredetailids = content.getJSONArray("sat_coursewaredetailids");
- for (Object obj : sat_coursewaredetailids) {
- Rows rows = dbConnect.runSqlQuery("SELECT * from sat_coursewaredetail WHERE sat_coursewaredetailid=" + obj + " and siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("课件不存在").toString();
- }
- if (!rows.get(0).getString("status").equals("下架")) {
- return getErrReturnObject().setErrMsg("非下架状态不可删除").toString();
- }
- }
- DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sat_coursewaredetail");
- deleteSQL.setSiteid(siteid);
- deleteSQL.setWhere("sat_coursewaredetailid", sat_coursewaredetailids.toArray());
- deleteSQL.delete();
- return getSucReturnObject().toString();
- }
- //课件详细
- @API(title = "课件详细", apiversion = R.ID20240315131502.v1.class)
- public String detail() throws YosException {
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_coursewaredetail");
- querySQL.setSiteid(siteid);
- querySQL.setUniqueid(sat_coursewaredetailid);
- Rows rows = querySQL.query();
- ArrayList<Long> ids = rows.toArrayList("sat_coursewaredetailid", new ArrayList<>());
- //附件
- RowsMap attRowsMap = getAttachmentUrl("sat_coursewaredetail", ids);
- Row detailRow = new Row();
- if (rows.isNotEmpty()) {
- detailRow = rows.get(0);
- detailRow.put("attinfos", attRowsMap.getOrDefault(detailRow.getString("sat_coursewaredetailid"), new Rows()));
- }
- Long sat_coursewareid = detailRow.getLong("sat_coursewareid");
- addReadLog(sat_coursewareid, sat_coursewaredetailid);
- return getSucReturnObject().setData(detailRow).toString();
- }
- //课件列表
- @API(title = "课件列表", apiversion = R.ID20240315131602.v1.class)
- public String list() 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(")");
- }
- if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
- where.append(" and (");
- where.append("t1.status ='").append(whereObject.getString("status")).append("' ");
- where.append(")");
- }
- }
- if (pageSorting.equals("''")) {
- pageSorting = "t1.status DESC,t1.sequence";
- }
- Long sat_coursewareid = content.getLongValue("sat_coursewareid");
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_coursewaredetail");
- querySQL.setTableAlias("t1").setPage(pageSize, pageNumber).setOrderBy(pageSorting);
- querySQL.setWhere("sat_coursewareid", sat_coursewareid);
- 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");
- //附件
- RowsMap attRowsMap = getAttachmentUrl("sat_coursewaredetail", ids);
- 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.put("attinfos", attRowsMap.getOrDefault(row.getString("sat_coursewaredetailid"), new Rows()));
- }
- return getSucReturnObject().setData(rows).toString();
- }
- //添加阅读记录
- public void addReadLog(Long sat_coursewareid, Long sat_coursewaredetailid) throws YosException {
- //查询当前用户的阅读次数是否存在
- String sql = "SELECT * FROM sat_courseware_read WHERE siteid = '" + siteid + "' AND sat_coursewaredetailid = '" + sat_coursewaredetailid + "' AND userid = '" + userid + "'";
- Rows rows = dbConnect.runSqlQuery(sql);
- if (rows.isEmpty()) {
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sat_courseware_read");
- insertSQL.setUniqueid(createTableID("sat_courseware_read"));
- insertSQL.setSiteid(siteid);
- insertSQL.setValue("sat_coursewareid", sat_coursewareid);
- insertSQL.setValue("sat_coursewaredetailid", sat_coursewaredetailid);
- insertSQL.setValue("userid", userid);
- insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
- insertSQL.setValue("hrid", hrid);
- insertSQL.setValue("firstreadtime", getDateTime_Str());
- insertSQL.setValue("lastreadtime", getDateTime_Str());
- insertSQL.setValue("studycount", 1);
- insertSQL.insert();
- } else {
- Long sat_courseware_readid = rows.get(0).getLong("sat_courseware_readid");
- Long studycount = rows.get(0).getLong("studycount");
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_courseware_read");
- updateSQL.setUniqueid(sat_courseware_readid);
- updateSQL.setSiteid(siteid);
- updateSQL.setValue("sys_enterpriseid", sys_enterpriseid);
- updateSQL.setValue("hrid", hrid);
- updateSQL.setValue("lastreadtime", getDateTime_Str());
- updateSQL.setValue("studycount", studycount + 1);
- System.err.println(updateSQL.getSQL());
- updateSQL.update();
- }
- }
- @API(title = "转移课件", apiversion = R.ID20240321091902.v1.class)
- public String changeCoursewareDetail() throws YosException {
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- Long sat_coursewareid = content.getLongValue("sat_coursewareid");
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_coursewaredetail");
- updateSQL.setSiteid(siteid);
- updateSQL.setUniqueid(sat_coursewaredetailid);
- updateSQL.setValue("sat_coursewareid", sat_coursewareid);
- updateSQL.update();
- return getSucReturnObject().toString();
- }
- //课件列表
- @API(title = "转移课程列表", apiversion = R.ID20240321093102.v1.class)
- public String changeCoursewarelist() 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(")");
- }
- }
- if (pageSorting.equals("''")) {
- pageSorting = "t1.sequence";
- }
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_courseware"
- , "sat_coursewareid", "title", "status");
- querySQL.setTableAlias("t1").setPage(pageSize, pageNumber).setOrderBy(pageSorting);
- querySQL.setWhere("status", "发布");
- querySQL.setWhere(where.toString());
- Rows rows = querySQL.query();
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "绑定题库",apiversion = R.ID20240322110502.v1.class)
- public String bindTestLibraryLink() throws YosException {
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- JSONArray sat_courseware_testlibraryids = content.getJSONArray("sat_courseware_testlibraryids");
- ArrayList<String> sqlList = new ArrayList<>();
- for (Object object : sat_courseware_testlibraryids) {
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sat_courseware_testlibrarylink");
- insertSQL.setSiteid(siteid);
- insertSQL.setUniqueid(createTableID("sat_courseware_testlibrarylink"));
- insertSQL.setValue("sat_coursewaredetailid", sat_coursewaredetailid);
- insertSQL.setValue("sat_courseware_testlibraryid", object);
- sqlList.add(insertSQL.getSQL());
- }
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "解绑题库",apiversion = R.ID20240322110602.v1.class)
- public String unBindTestLibraryLink() throws YosException {
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- JSONArray sat_courseware_testlibraryids = content.getJSONArray("sat_courseware_testlibraryids");
- DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sat_courseware_testlibrarylink");
- deleteSQL.setSiteid(siteid);
- deleteSQL.setWhere("sat_coursewaredetailid", sat_coursewaredetailid);
- deleteSQL.setWhere("sat_courseware_testlibraryid", sat_courseware_testlibraryids.toArray());
- System.err.println(deleteSQL.getSQL());
- deleteSQL.delete();
- return getSucReturnObject().toString();
- }
- String sat_courseware_testlibrary = "sat_courseware_testlibrary";
- @API(title = "选择题库",apiversion = R.ID20240322110702.v1.class)
- public String chooseTestLibrary() 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.question like'%").append(whereObject.getString("condition")).append("%' ");
- // where.append("or t1.notes like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- if (whereObject.containsKey("sat_courseware_classids") && !"".equals(whereObject.getString("sat_courseware_classids"))) {
- JSONArray sat_courseware_classids = whereObject.getJSONArray("sat_courseware_classids");
- if(sat_courseware_classids.size()>0) {
- where.append(" and (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(")");
- }
- }
- }
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, sat_courseware_testlibrary,
- "sat_courseware_testlibraryid","question","type","typemx","createdate")
- .setTableAlias("t1");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("not exists(select 1 from sat_courseware_testlibrarylink where sat_courseware_testlibraryid=t1.sat_courseware_testlibraryid and sat_coursewaredetailid=" + sat_coursewaredetailid + " and siteid='" + siteid + "' )");
- querySQL.setWhere(where.toString());
- querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
- Rows rows = querySQL.query();
- for (Row row : rows) {
- if (row.getLong("type") == 1) {
- row.put("typestr", "选择题");
- }
- if (row.getLong("type") == 2) {
- row.put("typestr", "简答题");
- }
- if (row.getLong("typemx") == 0) {
- row.put("typemxstr", "简答");
- }
- if (row.getLong("typemx") == 1) {
- row.put("typemxstr", "单选");
- }
- if (row.getLong("typemx") == 2) {
- row.put("typemxstr", "多选");
- }
- }
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "关联题库列表",apiversion = R.ID20240322110802.v1.class)
- public String testLibraryList() 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.question like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- if (whereObject.containsKey("sat_courseware_classids") && !"".equals(whereObject.getString("sat_courseware_classids"))) {
- JSONArray sat_courseware_classids = whereObject.getJSONArray("sat_courseware_classids");
- if(sat_courseware_classids.size()>0) {
- where.append(" and (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(")");
- }
- }
- }
- Long sat_coursewaredetailid = content.getLongValue("sat_coursewaredetailid");
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, sat_courseware_testlibrary,
- "sat_courseware_testlibraryid","question","type","typemx","createdate")
- .setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.inner,"sat_courseware_testlibrarylink","t2","t2.sat_courseware_testlibraryid=t1.sat_courseware_testlibraryid and t2.siteid=t1.siteid");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t2.sat_coursewaredetailid",sat_coursewaredetailid);
- querySQL.setWhere(where.toString());
- querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
- Rows rows = querySQL.query();
- for (Row row : rows) {
- if (row.getLong("type") == 1) {
- row.put("typestr", "选择题");
- }
- if (row.getLong("type") == 2) {
- row.put("typestr", "简答题");
- }
- if (row.getLong("typemx") == 0) {
- row.put("typemxstr", "简答");
- }
- if (row.getLong("typemx") == 1) {
- row.put("typemxstr", "单选");
- }
- if (row.getLong("typemx") == 2) {
- row.put("typemxstr", "多选");
- }
- }
- return getSucReturnObject().setData(rows).toString();
- }
- //课件列表
- @API(title = "收藏课件列表", apiversion = R.ID20240506100502.v1.class)
- public String collectlist() 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(")");
- }
- if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
- where.append(" and (");
- where.append("t1.status ='").append(whereObject.getString("status")).append("' ");
- where.append(")");
- }
- if (whereObject.containsKey("iscollect") && !"".equals(whereObject.getString("iscollect"))) {
- if (whereObject.getString("iscollect").equals("1")) {
- where.append(" and (");
- where.append(" t1.sat_coursewaredetailid in (SELECT ownerid from sys_datacollect WHERE ownertable='sat_coursewaredetail' and type=1 and siteid='" + siteid + "' and userid=" + userid + ")");
- where.append(")");
- }
- }
- }
- if (pageSorting.equals("''")) {
- pageSorting = "t1.status DESC,t1.sequence";
- }
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_coursewaredetail");
- querySQL.setTableAlias("t1").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");
- //附件
- RowsMap attRowsMap = getAttachmentUrl("sat_coursewaredetail", ids);
- 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.put("attinfos", attRowsMap.getOrDefault(row.getString("sat_coursewaredetailid"), new Rows()));
- }
- return getSucReturnObject().setData(rows).toString();
- }
- }
|