diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeSchoolClass.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeSchoolClass.java index f370e667..1fa77bbe 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeSchoolClass.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseMergeSchoolClass.java @@ -44,6 +44,13 @@ public class TeacherOpenCourseMergeSchoolClass extends BaseEntity{ @InsertIgnore private TeacherOpenCourseInfo teacherOpenCourse; + @FetchSql("select ta.teacher_name " + + "from teacher_open_course_merge_teacher t left join teacher ta on ta.teacher_id = t.teacher_id " + + "where t.teacher_open_course_merge_teacher_status = 1 and ta.teacher_status = 1 and t.teacher_open_course_id = #teacherOpenCourseId# ") + @UpdateIgnore + @InsertIgnore + private String teacherIdText; + @Data @Accessors(chain = true) public static class TeacherOpenCourseInfo { @@ -180,4 +187,12 @@ public class TeacherOpenCourseMergeSchoolClass extends BaseEntity{ this.teacherOpenCourse = teacherOpenCourse; } + public String getTeacherIdText() { + return teacherIdText; + } + + public void setTeacherIdText(String teacherIdText) { + this.teacherIdText = teacherIdText; + } + } diff --git a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java index 64ebee7e..eb6164d5 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java @@ -1,5 +1,6 @@ package com.ibeetl.jlw.web; +import cn.hutool.json.JSONUtil; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.annotation.Function; @@ -26,8 +27,10 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * HandsOn 课程实操 接口 @@ -140,6 +143,134 @@ public class HandsOnController{ return JsonResult.success(page); } + @PostMapping(MODEL + "/listMock.json") + @Function("handsOn.query") + public JsonResult<PageQuery> listMock(HandsOnQuery condition){ + PageQuery page = condition.getPageQuery(); + handsOnService.queryByCondition(page); + ArrayList list = new ArrayList(); + String jr = "[\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V1-现金流的时间价值\",\n" + + " \"handsOnName\": \"现金流的时间价值实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V1-现金流的时间价值.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:00\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V2-固定收益证券\",\n" + + " \"handsOnName\": \"固定收益证券实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V2-固定收益证券.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:01\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V3-权证与期权\",\n" + + " \"handsOnName\": \"权证与期权实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V3-权证与期权.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:01\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V4-远期与期货交易\",\n" + + " \"handsOnName\": \"远期与期货交易实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V4-远期与期货交易.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:02\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V5-金融互换\",\n" + + " \"handsOnName\": \"金融互换实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V5-金融互换.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:02\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"金融工程\",\n" + + " \"courseChildNode\": \"金融工程-V6-在险价值\",\n" + + " \"handsOnName\": \"在险价值实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/金融工程视频/金融工程-V6-在险价值.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:02\"\n" + + " }\n" + + "]"; + String lh = "[{\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V1-趋势交易\",\n" + + " \"handsOnName\": \"趋势交易实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V1-趋势交易.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:00\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V2-多因子模型\",\n" + + " \"handsOnName\": \"多因子模型实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V2-多因子模型.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:00\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V3-股票择时策略\",\n" + + " \"handsOnName\": \"股票择时策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V3-股票择时策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:00\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V4-EMA波动策略.mp4\",\n" + + " \"handsOnName\": \"EMA波动策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V4-EMA波动策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:00\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V5-跨品种套利交易策略\",\n" + + " \"handsOnName\": \"跨品种套利交易策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V5-跨品种套利交易策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:04\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V6-神经网络交易策略\",\n" + + " \"handsOnName\": \"神经网络交易策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V6-神经网络交易策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:04\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V7-动量反转策略\",\n" + + " \"handsOnName\": \"动量反转策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V7-动量反转策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:04\"\n" + + " },\n" + + " {\n" + + " \"courseInfoId\": \"量化投资\",\n" + + " \"courseChildNode\": \"量化投资-V8-基于ACD逻辑高频交易策略\",\n" + + " \"handsOnName\": \"基于ACD逻辑高频交易策略实训案例\",\n" + + " \"http\": \"http://www.905.cn/server/filesystem/temp/量化投资视频/量化投资-V8-基于ACD逻辑高频交易策略.mp4\",\n" + + " \"handsOnStatus\": \"1\",\n" + + " \"addTime\": \"2022-10-20 15:21:04\"\n" + + " }\n" + + "]"; + + list.addAll(JSONUtil.toList(lh, Map.class)); + list.addAll(JSONUtil.toList(jr, Map.class)); + page.setList(list); + return JsonResult.success(page); + } + @PostMapping(MODEL + "/addAll.json") @Function("handsOn.add") public JsonResult addAll(HandsOnQuery handsOnQuery,@SCoreUser CoreUser coreUser){ diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeSchoolClassQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeSchoolClassQuery.java index 9f7a2f74..1c8a1e4d 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeSchoolClassQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseMergeSchoolClassQuery.java @@ -35,6 +35,8 @@ public class TeacherOpenCourseMergeSchoolClassQuery extends PageParam { private String orgIdPlural; private String userIdPlural; + private String teacherOpenCourseTitle; + private String teacherOpenCourseMergeSchoolClassJsonStr;//json格式 private String _given;//指定更新的特定字段,多个逗号隔开 @@ -142,4 +144,12 @@ public class TeacherOpenCourseMergeSchoolClassQuery extends PageParam { public void set_given(String _given) { this._given = _given; } + + public String getTeacherOpenCourseTitle() { + return teacherOpenCourseTitle; + } + + public void setTeacherOpenCourseTitle(String teacherOpenCourseTitle) { + this.teacherOpenCourseTitle = teacherOpenCourseTitle; + } } diff --git a/web/src/main/resources/application-prod.properties b/web/src/main/resources/application-prod.properties index 9f2c8e3d..54a8e5e0 100644 --- a/web/src/main/resources/application-prod.properties +++ b/web/src/main/resources/application-prod.properties @@ -66,4 +66,4 @@ dynamic.beetlsql.cs.dbStyle = org.beetl.sql.core.db.MySqlStyle dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2 #\u6559\u5E08\u7AEF\u548C\u5B66\u751F\u7AEF\u7684\u767B\u5F55\u5730\u5740 -student.teacher.url = http://116.205.131.177:9090/ \ No newline at end of file +student.teacher.url = http://116.205.131.177:8080/ \ No newline at end of file diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeSchoolClass.md b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeSchoolClass.md index 6ce0a990..c36ec6f1 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseMergeSchoolClass.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseMergeSchoolClass.md @@ -7,6 +7,7 @@ queryByCondition t.* @} from teacher_open_course_merge_school_class t + left join teacher_open_course ta on ta.teacher_open_course_id = t.teacher_open_course_id where 1=1 @//数据权限,该sql语句功能点,如果不考虑数据权限,可以删除此行 and #function("teacherOpenCourseMergeSchoolClass.query")# @@ -49,6 +50,9 @@ queryByCondition @if(!isEmpty(userIdPlural)){ and find_in_set(t.user_id,#userIdPlural#) @} + @if(!isEmpty(teacherOpenCourseTitle)){ + and ta.teacher_open_course_title like #'%'+teacherOpenCourseTitle+'%'# + @} queryByConditionQuery @@ -60,6 +64,7 @@ queryByConditionQuery t.* @} from teacher_open_course_merge_school_class t + left join teacher_open_course ta on ta.teacher_open_course_id = t.teacher_open_course_id where 1=1 @if(!isEmpty(teacherOpenCourseMergeSchoolClassId)){ and t.teacher_open_course_merge_school_class_id =#teacherOpenCourseMergeSchoolClassId# @@ -100,6 +105,9 @@ queryByConditionQuery @if(!isEmpty(userIdPlural)){ and find_in_set(t.user_id,#userIdPlural#) @} + @if(!isEmpty(teacherOpenCourseTitle)){ + and ta.teacher_open_course_title like #'%'+teacherOpenCourseTitle+'%'# + @} diff --git a/web/src/main/resources/static/js/jlw/handsOn/index.js b/web/src/main/resources/static/js/jlw/handsOn/index.js index 72038a0a..7ead3ad9 100644 --- a/web/src/main/resources/static/js/jlw/handsOn/index.js +++ b/web/src/main/resources/static/js/jlw/handsOn/index.js @@ -27,7 +27,8 @@ layui.define(['form', 'laydate', 'table'], function (exports) { cellMinWidth: 120, method: 'post', even: true, - url: Common.ctxPath + '/jlw/handsOn/list.json' // 数据接口 + // url: Common.ctxPath + '/jlw/handsOn/list.json' // 数据接口 + url: Common.ctxPath + '/jlw/handsOn/listMock.json' // 数据接口 , page: Lib.tablePage // 开启分页 /*, toolbar: '#toolbar_handsOn' //自定义头部左侧工具栏 , defaultToolbar: ['filter', 'print', 'exports'] //头部右侧工具栏*/ @@ -43,11 +44,11 @@ layui.define(['form', 'laydate', 'table'], function (exports) { hideField: false, hide: $.isEmpty(sx_['handsOnName']) ? false : sx_['handsOnName'], }, { - field: 'courseInfoParentName', + field: 'courseInfoId', title: '归属课程', align: "center" }, { - field: 'courseInfoName', + field: 'courseChildNode', title: '归属章节', align: "center" }, { field: 'addTime',