From e800ea65ca6c15003efa761e75d5e9620dd6fcc4 Mon Sep 17 00:00:00 2001 From: wgf <121463602@qq.com> Date: Sat, 15 Jul 2023 14:29:37 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=AF=BE=E7=A8=8B=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E3=80=81=E5=AE=9E=E8=AE=AD=E6=A1=88=E4=BE=8B=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=8C=E7=B3=BB=E7=BB=9F=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=E6=8E=A5=E5=8F=A3=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jlw/service/ResourcesInfoService.java | 108 ++++++++++-------- .../TeacherOpenCourseHandsOnService.java | 59 +++++----- .../jlw/web/ResourcesInfoController.java | 33 +++++- 3 files changed, 126 insertions(+), 74 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesInfoService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesInfoService.java index 24b9bc9e..32d6cf55 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesInfoService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesInfoService.java @@ -6,22 +6,20 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; -import cn.jlw.Interceptor.SCoreUser; import cn.jlw.aliPay.utils.StringUtils; import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.admin.core.util.PlatformException; -import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.dao.CourseInfoDao; import com.ibeetl.jlw.dao.ResourcesInfoDao; -import com.ibeetl.jlw.dao.TeacherOpenCourseMergeCourseInfoDao; import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesInfoDao; -import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.entity.CourseInfo; +import com.ibeetl.jlw.entity.ResourcesInfo; +import com.ibeetl.jlw.entity.TeacherOpenCourse; +import com.ibeetl.jlw.entity.TeacherOpenCourseMergeResourcesInfo; import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.enums.MoveEnum; import com.ibeetl.jlw.web.query.ResourcesInfoQuery; -import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesInfoQuery; -import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.beetl.sql.core.SqlId; @@ -179,65 +177,81 @@ public class ResourcesInfoService extends CoreBaseService { } /** - * 课程资源删除 + * 课程资源删除-系统管理端 + * * @param ids * @param coreUser */ - public void deleteCourseSystemOAndUniversities(String ids, CoreUser coreUser) { + public void deleteCourseSystem(String ids, CoreUser coreUser) { if (StringUtils.isNotEmpty(ids)) { String[] split = ids.split(","); for (String s : split) { ResourcesInfo resourcesInfo = getById(Long.parseLong(s)); if (!ObjectUtil.isNull(resourcesInfo)) { - if (coreUser.isAdmin()){ - courseInfoService.flushCache(resourcesInfo.getCourseInfoId()); - CourseInfo oldCourseInfo = courseInfoDao.single(resourcesInfo.getCourseInfoId()); - if (null != oldCourseInfo) { - //资源类型(1视频 2课件 3附件) - if (((Integer) 1).equals(resourcesInfo.getResourcesInfoType())) { - CourseInfo c = new CourseInfo(); - c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); - c.setCourseVideoId(null != oldCourseInfo.getCourseVideoId() && oldCourseInfo.getCourseVideoId().equals(resourcesInfo.getResourcesInfoId()) ? null : oldCourseInfo.getCourseVideoId()); - courseInfoDao.updateVideoIdById(c); - } else if (((Integer) 2).equals(resourcesInfo.getResourcesInfoType())) { - CourseInfo c = new CourseInfo(); - c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); - c.setCourseCoursewareId(null != oldCourseInfo.getCourseCoursewareId() && oldCourseInfo.getCourseCoursewareId().equals(resourcesInfo.getResourcesInfoId()) ? null : oldCourseInfo.getCourseCoursewareId()); - courseInfoDao.updateCoursewareIdById(c); - } else if (((Integer) 3).equals(resourcesInfo.getResourcesInfoType())) { - CourseInfo c = new CourseInfo(); - c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); - c.setCourseEnclosureIds(StringUtils.isNotBlank(oldCourseInfo.getCourseEnclosureIds()) ? (oldCourseInfo.getCourseEnclosureIds().replace(resourcesInfo.getResourcesInfoId().toString(), "").replace(",,", ",")) : oldCourseInfo.getCourseEnclosureIds()); - courseInfoDao.updateEnclosureIdsById(c); - } - } - ResourcesInfo info = new ResourcesInfo(); - info.setResourcesInfoStatus(0); - resourcesInfoDao.getSQLManager().lambdaQuery(ResourcesInfo.class) - .andEq(ResourcesInfo::getResourcesInfoId,s).updateSelective(info); + courseInfoService.flushCache(resourcesInfo.getCourseInfoId()); + CourseInfo oldCourseInfo = courseInfoDao.single(resourcesInfo.getCourseInfoId()); + if (null != oldCourseInfo) { + //资源类型(1视频 2课件 3附件) + if (((Integer) 1).equals(resourcesInfo.getResourcesInfoType())) { + CourseInfo c = new CourseInfo(); + c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); + c.setCourseVideoId(null != oldCourseInfo.getCourseVideoId() && oldCourseInfo.getCourseVideoId().equals(resourcesInfo.getResourcesInfoId()) ? null : oldCourseInfo.getCourseVideoId()); + courseInfoDao.updateVideoIdById(c); + } else if (((Integer) 2).equals(resourcesInfo.getResourcesInfoType())) { + CourseInfo c = new CourseInfo(); + c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); + c.setCourseCoursewareId(null != oldCourseInfo.getCourseCoursewareId() && oldCourseInfo.getCourseCoursewareId().equals(resourcesInfo.getResourcesInfoId()) ? null : oldCourseInfo.getCourseCoursewareId()); + courseInfoDao.updateCoursewareIdById(c); + } else if (((Integer) 3).equals(resourcesInfo.getResourcesInfoType())) { + CourseInfo c = new CourseInfo(); + c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); + c.setCourseEnclosureIds(StringUtils.isNotBlank(oldCourseInfo.getCourseEnclosureIds()) ? (oldCourseInfo.getCourseEnclosureIds().replace(resourcesInfo.getResourcesInfoId().toString(), "").replace(",,", ",")) : oldCourseInfo.getCourseEnclosureIds()); + courseInfoDao.updateEnclosureIdsById(c); + } } - } else { + ResourcesInfo info = new ResourcesInfo(); + info.setResourcesInfoStatus(0); + resourcesInfoDao.getSQLManager().lambdaQuery(ResourcesInfo.class) + .andEq(ResourcesInfo::getResourcesInfoId, s).updateSelective(info); - TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoDao.getSQLManager() - .lambdaQuery(TeacherOpenCourseMergeResourcesInfo.class) - .andEq(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeResourcesInfoId,s) - .single(); - if (!ObjectUtil.isEmpty(teacherOpenCourseMergeResourcesInfo)) { + } + } + } + } - TeacherOpenCourse teacherOpenCourse = new TeacherOpenCourse(); - teacherOpenCourse.setTeacherOpenCourseId(teacherOpenCourseMergeResourcesInfo.getTeacherOpenCourseId()); - List teacherOpenCourses = teacherOpenCourseService.getValues(teacherOpenCourse); - if (CollectionUtil.isNotEmpty(teacherOpenCourses) && teacherOpenCourses.get(0).getEndTime().getTime() >= new Date().getTime()){ - Assert.isTrue(false, "课程在使用中"); - } + /** + * 课程资源删除-院校管理端 + * + * @param ids + * @param coreUser + */ + public void deleteCourseUniversities(String ids, CoreUser coreUser) { + if (StringUtils.isNotEmpty(ids)) { + String[] split = ids.split(","); + for (String s : split) { + + TeacherOpenCourseMergeResourcesInfo teacherOpenCourseMergeResourcesInfo = teacherOpenCourseMergeResourcesInfoDao.getSQLManager() + .lambdaQuery(TeacherOpenCourseMergeResourcesInfo.class) + .andEq(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeResourcesInfoId, s) + .single(); + if (!ObjectUtil.isEmpty(teacherOpenCourseMergeResourcesInfo)) { + + TeacherOpenCourse teacherOpenCourse = new TeacherOpenCourse(); + teacherOpenCourse.setTeacherOpenCourseId(teacherOpenCourseMergeResourcesInfo.getTeacherOpenCourseId()); + List teacherOpenCourses = teacherOpenCourseService.getValues(teacherOpenCourse); + + if (CollectionUtil.isNotEmpty(teacherOpenCourses) && teacherOpenCourses.get(0).getEndTime().getTime() <= new Date().getTime()) { TeacherOpenCourseMergeResourcesInfo updateQuery = new TeacherOpenCourseMergeResourcesInfo(); updateQuery.setResourcesInfoStatus(GlobalUpStatusEnum.DEL); updateQuery.setTeacherOpenCourseMergeResourcesInfoId(teacherOpenCourseMergeResourcesInfo.getTeacherOpenCourseMergeResourcesInfoId()); teacherOpenCourseMergeResourcesInfoDao.upsertByTemplate(updateQuery); - + } else { + if (split.length == 1) { + Assert.isTrue(false, "课程在使用中"); + } } } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java index bab5c539..8fd47ece 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java @@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -22,7 +21,6 @@ import com.ibeetl.jlw.dao.TeacherOpenCourseKnowledgePointDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.vo.StudentHandsOnVO; import com.ibeetl.jlw.enums.CopyFromEnum; -import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.enums.HandsOnTaskEnum; import com.ibeetl.jlw.web.query.*; import lombok.extern.slf4j.Slf4j; @@ -154,33 +152,42 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService teacherOpenCourses = teacherOpenCourseService.getValues(teacherOpenCourse); - - if (CollectionUtil.isNotEmpty(teacherOpenCourses) && teacherOpenCourses.get(0).getEndTime().getTime() >= new Date().getTime()) { - Assert.isTrue(false, "课程在使用中"); - } - try { - TeacherOpenCourseHandsOnQuery handsOnQuery = new TeacherOpenCourseHandsOnQuery(); - handsOnQuery.setHandsOnIdPlural(ids); - handsOnQuery.set_given("handsOnStatus"); - handsOnQuery.setHandsOnStatus(0); - teacherOpenCourseHandsOnDao.updateGivenByIds(handsOnQuery); - } catch (Exception e) { - throw new PlatformException("批量删除教师开课-课程实操失败", e); + if (StringUtils.isNotEmpty(ids)) { + String[] split = ids.split(","); + for (String s : split) { + + TeacherOpenCourseHandsOn teacherOpenCourseHandsOn = teacherOpenCourseHandsOnDao.getSQLManager() + .lambdaQuery(TeacherOpenCourseHandsOn.class) + .andEq(TeacherOpenCourseHandsOn::getHandsOnId, s) + .single(); + if (!ObjectUtil.isEmpty(teacherOpenCourseHandsOn)) { + + TeacherOpenCourse teacherOpenCourse = new TeacherOpenCourse(); + teacherOpenCourse.setTeacherOpenCourseId(teacherOpenCourseHandsOn.getTeacherOpenCourseId()); + List teacherOpenCourses = teacherOpenCourseService.getValues(teacherOpenCourse); + + if (CollectionUtil.isNotEmpty(teacherOpenCourses) && teacherOpenCourses.get(0).getEndTime().getTime() <= new Date().getTime()) { + try { + TeacherOpenCourseHandsOnQuery handsOnQuery = new TeacherOpenCourseHandsOnQuery(); + handsOnQuery.setHandsOnIdPlural(s); + handsOnQuery.set_given("handsOnStatus"); + handsOnQuery.setHandsOnStatus(0); + teacherOpenCourseHandsOnDao.updateGivenByIds(handsOnQuery); + } catch (Exception e) { + throw new PlatformException("批量删除教师开课-课程实操失败", e); + } + } else { + if (split.length == 1) { + Assert.isTrue(false, "课程在使用中"); + } + } + } else { + Assert.isTrue(false, "找不到课程实训"); + } + } - }else { - Assert.isTrue(false, "找不到课程实训"); } - } public String addAll(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) { diff --git a/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java b/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java index f0c87f63..0377c723 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/ResourcesInfoController.java @@ -318,6 +318,32 @@ public class ResourcesInfoController { return JsonResult.success(page); } + + @PostMapping(MODEL + "/resourcesList.json") + @Function("resourcesInfo.query") + @ResponseBody + public JsonResult resourcesList(ResourcesInfoQuery condition, @SCoreUser CoreUser coreUser) { + PageQuery page = condition.getPageQuery(); + + 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.setCourseInfoIds(StrUtil.blankToDefault(ids, "未授权应用")); + } + condition.setResourcesInfoStatus(1); + resourcesInfoService.queryByCondition(page); + return JsonResult.success(page); + } + @PostMapping(MODEL + "/getCurriculumResourceManagementList.json") @ResponseBody public JsonResult getCurriculumResourceManagementList(ResourcesInfoQuery condition, @SCoreUser CoreUser coreUser) { @@ -512,7 +538,12 @@ public class ResourcesInfoController { @PostMapping(MODEL + "/deleteCourseSystemOAndUniversities.json") @ResponseBody public JsonResult deleteCourseSystemOAndUniversities(String ids, @SCoreUser CoreUser coreUser) { - resourcesInfoService.deleteCourseSystemOAndUniversities(ids, coreUser); + if (coreUser.isAdmin()){ + resourcesInfoService.deleteCourseSystem(ids, coreUser); + + }else if (coreUser.isUniAdmin()){ + resourcesInfoService.deleteCourseUniversities(ids, coreUser); + } return JsonResult.success(); }