diff --git a/web/src/main/java/com/ibeetl/jlw/entity/vo/ResourcesCourseInfoAuthDetailsVO.java b/web/src/main/java/com/ibeetl/jlw/entity/vo/ResourcesCourseInfoAuthDetailsVO.java index d9e0d56c..7c12365a 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/vo/ResourcesCourseInfoAuthDetailsVO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/vo/ResourcesCourseInfoAuthDetailsVO.java @@ -102,7 +102,7 @@ public class ResourcesCourseInfoAuthDetailsVO extends BaseEntity { " AND ( now() BETWEEN tb.use_start_time AND tb.use_end_time )\n" + " AND t.course_info_status = 1\n" + " AND t.course_info_type = 1\n" + - " AND FIND_IN_SET(td.course_label_type, '理论课程类')") + " AND td.course_label_type='理论课程类'") private List theoryCourseList; /** * 考证课程类 diff --git a/web/src/main/java/com/ibeetl/jlw/service/HandsOnSimulationTasksService.java b/web/src/main/java/com/ibeetl/jlw/service/HandsOnSimulationTasksService.java index d89d7ad2..8bf997cd 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/HandsOnSimulationTasksService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/HandsOnSimulationTasksService.java @@ -11,10 +11,14 @@ import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.HandsOnSimulationTasksDao; import com.ibeetl.jlw.dao.ResourcesQuestionDao; -import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao; -import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.entity.HandsOnSimulationTasks; +import com.ibeetl.jlw.entity.HandsOnSimulationTasksAssessment; +import com.ibeetl.jlw.entity.HandsOnSimulationTasksFile; +import com.ibeetl.jlw.entity.ResourcesQuestion; import com.ibeetl.jlw.entity.vo.HandsOnTaskProblemVO; -import com.ibeetl.jlw.web.query.*; +import com.ibeetl.jlw.web.query.HandsOnSimulationTasksAssessmentQuery; +import com.ibeetl.jlw.web.query.HandsOnSimulationTasksFileQuery; +import com.ibeetl.jlw.web.query.HandsOnSimulationTasksQuery; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.beetl.sql.core.SqlId; @@ -25,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -140,7 +143,7 @@ public class HandsOnSimulationTasksService extends CoreBaseService }else { pojo.setAddType(ADMIN_ADD); } - + pojo.setUserId(coreUser.getId()); + pojo.setOrgId(coreUser.getOrgId()); insert(pojo); diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java index 8ec8af99..4b137dbf 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java @@ -823,7 +823,6 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService courseInfoIdPair = copyFromCourseInfo(courseInfoIds, teacherOpenCourseId); - // 开启并行处理 courseInfoIds.stream().parallel().forEach(courseInfoId -> { // 当前的课程节点信息 // CourseInfo currentCourseInfo = courseInfoService.getById(courseInfoId); diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java index 7fab05c0..91f03ff0 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -453,7 +453,8 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService questionLogMap = questionLogAddDTO.getQuestionLogMap(); // 查询符合条件的日志表 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 8a46dbf4..b95ab407 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/HandsOnController.java @@ -2,6 +2,7 @@ package com.ibeetl.jlw.web; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.validate.ValidateConfig; @@ -9,8 +10,10 @@ import com.ibeetl.admin.core.annotation.Function; import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.web.JsonResult; +import com.ibeetl.jlw.entity.CourseInfo; import com.ibeetl.jlw.entity.HandsOn; import com.ibeetl.jlw.entity.HandsOnSimulationTasks; +import com.ibeetl.jlw.entity.vo.ResourcesCourseInfoAuthDetailsVO; import com.ibeetl.jlw.service.HandsOnService; import com.ibeetl.jlw.service.HandsOnSimulationTasksService; import com.ibeetl.jlw.service.UniversitiesCollegesJurisdictionCurriculumResourcesService; @@ -30,10 +33,13 @@ 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; +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + +import static cn.hutool.core.util.ArrayUtil.join; +import static cn.hutool.core.util.ObjectUtil.defaultIfNull; +import static com.ibeetl.admin.core.util.StreamUtils.listJoin; /** * HandsOn 课程实操 接口 @@ -149,12 +155,21 @@ public class HandsOnController{ @PostMapping(MODEL + "/list.json") @Function("handsOn.query") public JsonResult list(HandsOnQuery condition, @SCoreUser CoreUser coreUser){ - if (!coreUser.isAdmin()) { - String courseInfoIds = universitiesCollegesJurisdictionCurriculumResourcesService.getResourcesCourseInfoAuthDetails(coreUser.getOrgId()).getAllAuthCourseInfoIds(); - - condition.setCourseInfoIds(courseInfoIds); - condition.setOrgId(coreUser.getOrgId()); + if (coreUser.isUniAdmin()) { + condition.setOrgIdPlural(join(Arrays.asList(coreUser.getOrgId(), 1L).toArray(), ",")); + // 查询已经授权的课程ID。 + // 理论课程:授权表universities_colleges_jurisdiction_curriculum_resources,查询理论课程授权给院校的数据 + Serializable courseInfoIds = defaultIfNull(condition.getCourseInfoId(), condition.getCourseInfoIds()); + ResourcesCourseInfoAuthDetailsVO resourcesCourseInfoAuthDetails = + universitiesCollegesJurisdictionCurriculumResourcesService.getResourcesCourseInfoAuthDetails(coreUser.getOrgId()); + Serializable ifNullCourseInfoIds = defaultIfNull(courseInfoIds, listJoin(resourcesCourseInfoAuthDetails.getTheoryCourseList(), CourseInfo::getCourseInfoId)); + + String ids = Arrays.stream(ifNullCourseInfoIds.toString().split(",")).map(item -> "_" + item + "_").collect(Collectors.joining("|")); + + // 如果为空字符串,那么代表这个学校,还没有授权的课程,所以是不会显示任何东西的。 + condition.setCourseInfoFullIdStr(StrUtil.blankToDefault(ids, "未授权应用")); } + if ( condition.getHandsOnStatus() != null && 0 == condition.getHandsOnStatus()) { condition.setHandsOnStatus(2); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java index 12e5f75c..c6e821ce 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherController.java @@ -1382,7 +1382,8 @@ public class TeacherController extends BaseController { condition.setTeacherStatus(1); PageQuery page = condition.getPageQuery(); - page.setPageNumber(1); page.setPageSize(Integer.MAX_VALUE); + page.setPageNumber(1); + page.setPageSize(Integer.MAX_VALUE); PageQuery pageQuery = teacherService.queryByCondition(page); @@ -1393,10 +1394,10 @@ public class TeacherController extends BaseController { header.put("teacherName", "教师姓名"); header.put("teacherJobNumber", "教师工号"); header.put("universitiesCollegesName", "所属院校"); - header.put("universityFacultyIdText", "所属院系"); - header.put("universitySystemIdText", "所属专业"); - header.put("studentMobile", "电话"); - header.put("studentEmail", "邮箱"); + //header.put("universityFacultyIdText", "所属院系"); + //header.put("universitySystemIdText", "所属专业"); + header.put("teacherMobile", "电话"); + header.put("teacherEmail", "邮箱"); header.put("addTime", "创建时间"); List> maps = BeanCopyUtil.baseEntity2MapWithParallel(list); diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java index b5f18507..c6cc2027 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/HandsOnQuery.java @@ -40,6 +40,10 @@ public class HandsOnQuery extends PageParam { private String handsOnIdPlural; + private String orgIdPlural; + + private String CourseInfoFullIdStr; + public Long getCourseInfoId_0() { return courseInfoId_0; } @@ -178,4 +182,21 @@ public class HandsOnQuery extends PageParam { public void setHandsOnIdPlural(String handsOnIdPlural) { this.handsOnIdPlural = handsOnIdPlural; } + + public String getOrgIdPlural() { + return orgIdPlural; + } + + + public void setOrgIdPlural(String orgIdPlural) { + this.orgIdPlural = orgIdPlural; + } + + public String getCourseInfoFullIdStr() { + return CourseInfoFullIdStr; + } + + public void setCourseInfoFullIdStr(String courseInfoFullIdStr) { + CourseInfoFullIdStr = courseInfoFullIdStr; + } } diff --git a/web/src/main/resources/sql/jlw/handsOn.md b/web/src/main/resources/sql/jlw/handsOn.md index db590431..3bca7449 100644 --- a/web/src/main/resources/sql/jlw/handsOn.md +++ b/web/src/main/resources/sql/jlw/handsOn.md @@ -7,6 +7,7 @@ queryByCondition t.* @} from hands_on t + LEFT JOIN course_info a on t.course_info_id = a.course_info_id where 1=1 @//数据权限,该sql语句功能点,如果不考虑数据权限,可以删除此行 and #function("handsOn.query")# @@ -40,7 +41,16 @@ queryByCondition @if(!isEmpty(courseInfoId_0)){ and t.course_info_id =#courseInfoId_0# @} - + @if(!isEmpty(orgIdPlural)){ + and find_in_set(t.org_id,#orgIdPlural#) + @} + @if(!isEmpty(courseInfoFullIdStr)){ + and a.course_info_full_id regexp #courseInfoFullIdStr# + @// 未授权任何应用的话,这里直接返回空数据 + @if(courseInfoFullIdStr == '未授权应用'){ + and false + @} + @} queryByConditionQuery