1、课程资源管理

beetlsql3-dev
wgf 2 years ago
parent 3d60e32243
commit 8bbeb311af

@ -20,6 +20,13 @@ import java.util.List;
@SqlResource("jlw.resourcesInfo")
public interface ResourcesInfoDao extends BaseMapper<ResourcesInfo>{
PageQuery<ResourcesInfo> queryByCondition(PageQuery query);
/**
*
* @param query
* @return
*/
PageQuery<ResourcesInfo> getCurriculumResourceManagementList(PageQuery query);
@Update
void deleteResourcesInfoByIds(String ids);
List<ResourcesInfo> getValuesByQuery (ResourcesInfoQuery resourcesInfoQuery);

@ -103,6 +103,11 @@ public class CourseInfo extends BaseEntity{
private BigDecimal orderIndex;
/**
* 1 2
*/
private Integer sourceType;
@UpdateIgnore
@InsertIgnore
// @FetchSql("select * from resources_info t where t.course_info_id = #courseInfoId# order by order_index asc")
@ -363,4 +368,12 @@ public class CourseInfo extends BaseEntity{
public void setCourseLabelType(String courseLabelType) {
this.set("courseLabelType", courseLabelType);
}
public Integer getSourceType() {
return sourceType;
}
public void setSourceType(Integer sourceType) {
this.sourceType = sourceType;
}
}

@ -68,6 +68,21 @@ public class ResourcesInfo extends BaseEntity {
//新增时间
@InsertIgnore
private Date addTime;
private Long courseInfoParentId;
private String courseInfoParentName;
private Long courseInfoParentParentId;
private String courseInfoParentParentName;
/**
* 1. 2.
*/
private Integer sourceType;
/**
*
*/
private String addTypeText;
public ResourcesInfo(){
}
@ -189,4 +204,52 @@ public class ResourcesInfo extends BaseEntity {
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
public Long getCourseInfoParentId() {
return courseInfoParentId;
}
public void setCourseInfoParentId(Long courseInfoParentId) {
this.courseInfoParentId = courseInfoParentId;
}
public String getCourseInfoParentName() {
return courseInfoParentName;
}
public void setCourseInfoParentName(String courseInfoParentName) {
this.courseInfoParentName = courseInfoParentName;
}
public Long getCourseInfoParentParentId() {
return courseInfoParentParentId;
}
public void setCourseInfoParentParentId(Long courseInfoParentParentId) {
this.courseInfoParentParentId = courseInfoParentParentId;
}
public String getCourseInfoParentParentName() {
return courseInfoParentParentName;
}
public void setCourseInfoParentParentName(String courseInfoParentParentName) {
this.courseInfoParentParentName = courseInfoParentParentName;
}
public Integer getSourceType() {
return sourceType;
}
public void setSourceType(Integer sourceType) {
this.sourceType = sourceType;
}
public String getAddTypeText() {
return addTypeText;
}
public void setAddTypeText(String addTypeText) {
this.addTypeText = addTypeText;
}
}

@ -19,6 +19,7 @@ import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.dao.CourseInfoDao;
import com.ibeetl.jlw.dao.ResourcesApplicationCourseDao;
import com.ibeetl.jlw.dao.ResourcesInfoDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseMergeCourseInfoDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.enums.MoveEnum;
import com.ibeetl.jlw.web.query.CourseInfoQuery;
@ -69,18 +70,26 @@ import static java.util.stream.Collectors.joining;
@Transactional
public class CourseInfoService extends CoreBaseService<CourseInfo> {
@Autowired private CourseInfoDao courseInfoDao;
@Autowired
private CourseInfoDao courseInfoDao;
@Autowired private ResourcesInfoService resourcesInfoService;
@Autowired private ResourcesInfoDao resourcesInfoDao;
@Autowired
private ResourcesInfoService resourcesInfoService;
@Autowired
private ResourcesInfoDao resourcesInfoDao;
@Autowired private CorePlatformService platformService;
@Autowired
private CorePlatformService platformService;
@Autowired private ResourcesApplicationCourseService resourcesApplicationCourseService;
@Autowired
private ResourcesApplicationCourseService resourcesApplicationCourseService;
@Autowired private ResourcesApplicationCourseDao resourcesApplicationCourseDao;
@Autowired private CoreUserService coreUserService;
@Autowired private CourseLabelService courseLabelService;
@Autowired
private ResourcesApplicationCourseDao resourcesApplicationCourseDao;
@Autowired
private CoreUserService coreUserService;
@Autowired
private CourseLabelService courseLabelService;
private final List<Future<Boolean>> results = new ArrayList<>();
@ -96,6 +105,9 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
@Lazy
private TeacherService teacherService;
@Autowired
private TeacherOpenCourseMergeCourseInfoDao teacherOpenCourseMergeCourseInfoDao;
public void flushCache(Long cId) {
Long courseInfoId = null;
CourseInfo c = queryById(cId);
@ -127,6 +139,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
queryListAfter(ret.getList());
return ret;
}
public PageQuery<CourseInfo> queryByConditionQuery(PageQuery query) {
PageQuery ret = courseInfoDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
@ -316,6 +329,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
return true;
}
public void deleteCourseInfo(String ids) {
try {
//遍历下级 TODO 有问题
@ -375,6 +389,58 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
return courseInfoDao.getValuesQuery(courseInfoQuery);
}
/**
*
* @param courseInfoQuery
* @return
*/
public List<CourseInfo> getChapterSystemOAndUniversities(CourseInfoQuery courseInfoQuery) {
if (!Objects.equals(courseInfoQuery.getCourseInfoType(),2) && !Objects.equals(courseInfoQuery.getCourseInfoType(),3)){
return new ArrayList<>();
}
List<CourseInfo> courseInfoList;
if (Objects.equals(courseInfoQuery.getSourceType(), 1)) {
//院校开课
courseInfoList = new ArrayList<>();
LambdaQuery<TeacherOpenCourseMergeCourseInfo> courseInfoLambdaQuery = teacherOpenCourseMergeCourseInfoDao.getSQLManager().lambdaQuery(TeacherOpenCourseMergeCourseInfo.class);
if (Objects.equals(courseInfoQuery.getCourseInfoType(),2)){
courseInfoLambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, courseInfoQuery.getCourseInfoParentId());
}else {
courseInfoLambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId,courseInfoQuery.getCourseInfoParentId());
}
courseInfoLambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType,courseInfoQuery.getCourseInfoType());
courseInfoLambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1);
List<TeacherOpenCourseMergeCourseInfo> select = courseInfoLambdaQuery.select();
select.forEach(item -> {
CourseInfo course = new CourseInfo();
course.setAddTime(item.getAddTime());
course.setCourseInfoId(item.getTeacherOpenCourseMergeCourseInfoId());
course.setCourseInfoName(item.getCourseInfoName());
course.setCourseInfoParentId(item.getCourseInfoParentId());
course.setCourseInfoType(item.getCourseInfoType());
course.setSourceType(1);
courseInfoList.add(course);
});
} else {
//系统授权课
courseInfoList = new ArrayList<>();
courseInfoDao.getValuesQuery(courseInfoQuery).forEach(item -> {
CourseInfo course = new CourseInfo();
course.setAddTime(item.getAddTime());
course.setCourseInfoId(item.getCourseInfoId());
course.setCourseInfoName(item.getCourseInfoName());
course.setCourseInfoParentId(item.getCourseInfoParentId());
course.setCourseInfoType(item.getCourseInfoType());
course.setSourceType(2);
courseInfoList.add(course);
});
}
return courseInfoList;
}
public List<CourseInfo> getListByCourseLabelTypes(String courseLabelTypes) {
Long resourcesApplicationId = null;
UniversitiesCollegesJurisdictionExperimentalSystem uSystem = (UniversitiesCollegesJurisdictionExperimentalSystem) platformService.getOther();
@ -603,6 +669,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
/**
*
*
* @param list
*/
public void buildCourseInfoResources(List<CourseInfo> list) {
@ -847,7 +914,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
i--;
l++;
}
}catch (Exception e){}
} catch (Exception e) {
}
}
courseInfo.set("flag", flag);
@ -872,7 +940,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
i--;
l++;
}
}catch (Exception e){}
} catch (Exception e) {
}
}
courseInfo.set("flag", flag);
@ -889,7 +958,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
Map<String, List<CourseInfo>> groupByn = null;
try {
groupByn = courseInfo1List.stream().collect(Collectors.groupingBy(e -> e.get("n").toString()));
}catch (Exception e){}
} catch (Exception e) {
}
for (int i = 0; null != courseInfo2List && i < courseInfo2List.size(); i++) {
CourseInfo courseInfoParent = groupByn.get(courseInfo2List.get(i).get("n").toString()).get(0);
@ -902,7 +972,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
Map<String, List<CourseInfo>> groupBynm = null;
try {
groupBynm = courseInfo2List.stream().collect(Collectors.groupingBy(e -> e.get("nm").toString()));
}catch (Exception e){}
} catch (Exception e) {
}
for (int i = 0; null != courseInfo3List && i < courseInfo3List.size(); i++) {
CourseInfo courseInfoParent = groupBynm.get(courseInfo3List.get(i).get("nm").toString()).get(0);
@ -927,7 +998,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
Map<String, List<CourseInfo>> groupByFlag = null;
try {
groupByFlag = courseInfoList.stream().collect(Collectors.groupingBy(e -> null != e.get("flag") && StringUtils.isNotBlank(e.get("flag").toString()) ? e.get("flag").toString() : "-1"));
}catch (Exception e){}
} catch (Exception e) {
}
if (null != groupByFlag && groupByFlag.size() > 0) {
@ -1267,6 +1339,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
/**
*
* 00
*
* @param id
* @param moveType
*/
@ -1304,7 +1377,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
BigDecimal minLinkOrder = minOrderClientLink.getOrderIndex();
// 置顶就现有的最小值减1。但是需要确保结果小于0
calcedOrder = NumberUtil.sub(min(minLinkOrder.floatValue(), 0), 1);
} break;
}
break;
case MOVE_LEFT: {
@ -1334,7 +1408,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
// 左移位后的值
calcedOrder = RandomUtil.randomDouble(min.doubleValue(), max.doubleValue(), 6, RoundingMode.HALF_UP);
} break;
}
break;
case MOVE_RIGHT: {
@ -1364,7 +1439,8 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
// 右移位后的值
calcedOrder = RandomUtil.randomDouble(min.doubleValue(), max.doubleValue(), 6, RoundingMode.HALF_UP);
} break;
}
break;
default:
log.error("不支持的移动类型!");
break;
@ -1390,12 +1466,11 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
* @param id ID
* @param leftId ID ID
* @param rightId ID ID
*
* <p>
* ==>
* ==>
*
* <p>
*
*
* @Author: 87966
* @Date: 2023/1/9 16:44
*/
@ -1506,8 +1581,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
if (!updatePOList.isEmpty()) {
updateBatchTemplate(updatePOList);
log.info("修复课程全路径成功,成功修复数量:{}", allFullIdIsNullList.size());
}
else {
} else {
log.info("暂无待修复的数据!");
}
@ -1516,6 +1590,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
/**
*
*
* @return
*/
public PageQuery<CourseInfo> examCourseQuestionDO(PageQuery<CourseInfoQuery> pageQuery) {
@ -1525,6 +1600,7 @@ public class CourseInfoService extends CoreBaseService<CourseInfo>{
/**
*
*
* @return
*/
public List<CourseInfo> getByIds(String courseInfoIds) {

@ -96,6 +96,15 @@ public class ResourcesInfoService extends CoreBaseService<ResourcesInfo> {
return ret;
}
/**
*
* @param query
* @return
*/
public PageQuery<ResourcesInfo> getCurriculumResourceManagementList(PageQuery query) {
return resourcesInfoDao.getCurriculumResourceManagementList(query);
}
public ResourcesInfo getById(Long resourcesInfoId) {
ResourcesInfo resourcesInfo = queryById(resourcesInfoId);
if (null != resourcesInfo) {
@ -128,6 +137,7 @@ public class ResourcesInfoService extends CoreBaseService<ResourcesInfo> {
public void deleteResourcesInfo(String ids) {
for (int i = 0; i < ids.split(",").length; i++) {
ResourcesInfo oldResourcesInfo = queryById(Long.parseLong(ids.split(",")[i]));
if (ObjectUtil.isNotEmpty(oldResourcesInfo)){
CourseInfo oldCourseInfo = courseInfoDao.single(oldResourcesInfo.getCourseInfoId());
if (null != oldCourseInfo) {
//资源类型(1视频 2课件 3附件)
@ -149,6 +159,7 @@ public class ResourcesInfoService extends CoreBaseService<ResourcesInfo> {
}
}
}
}
resourcesInfoDao.deleteResourcesInfoByIds(ids);
}

@ -247,7 +247,7 @@ public class UniversitiesCollegesJurisdictionCurriculumResourcesService extends
*
*/
public List<CourseInfo> getCourseSystemOAndUniversities(Long orgId){
return courseInfoDao.getCourseSystemOAndUniversities(ObjectUtil.equal(orgId,1) ? null : orgId);
return courseInfoDao.getCourseSystemOAndUniversities(Objects.equals(orgId,1L) ? null : orgId);
}
/**

@ -322,6 +322,13 @@ public class CourseInfoController {
return JsonResult.success(list);
}
@GetMapping(MODEL + "/getChapterSystemOAndUniversities.json")
@ResponseBody
public JsonResult<List<CourseInfo>> getChapterSystemOAndUniversities(CourseInfoQuery param) {
List<CourseInfo> list = courseInfoService.getChapterSystemOAndUniversities(param);
return JsonResult.success(list);
}
@PostMapping(MODEL + "/delete.json")
@Function("courseInfo.delete")
@ResponseBody

@ -1,5 +1,6 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.jlw.Interceptor.SCoreUser;
@ -169,6 +170,29 @@ public class ResourcesInfoController{
return JsonResult.success(page);
}
@PostMapping(MODEL + "/getCurriculumResourceManagementList.json")
@ResponseBody
public JsonResult<PageQuery> getCurriculumResourceManagementList(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, "未授权应用"));
}
resourcesInfoService.getCurriculumResourceManagementList(page);
return JsonResult.success(page);
}
//批量保存
@PostMapping(MODEL + "/addAll.json")
@Function("resourcesInfo.add")
@ -327,8 +351,11 @@ public class ResourcesInfoController{
@ResponseBody
public JsonResult delete(String ids) {
for(int i=0;i<ids.split(",").length;i++){
ResourcesInfo byId = resourcesInfoService.getById(Long.parseLong(ids.split(",")[i]));
//移除缓存
courseInfoService.flushCache(resourcesInfoService.getById(Long.parseLong(ids.split(",")[i])).getCourseInfoId());
if (!ObjectUtil.isNull(byId)){
courseInfoService.flushCache(byId.getCourseInfoId());
}
}
resourcesInfoService.deleteResourcesInfo(ids);

@ -61,6 +61,11 @@ public class ResourcesInfoQuery extends PageParam {
private Date endTime;
/**
*
*/
private String addTypeText;
public Long getResourcesInfoId(){
return resourcesInfoId;
}
@ -231,4 +236,12 @@ public class ResourcesInfoQuery extends PageParam {
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public String getAddTypeText() {
return addTypeText;
}
public void setAddTypeText(String addTypeText) {
this.addTypeText = addTypeText;
}
}

@ -894,7 +894,8 @@ getCourseSystemOAndUniversities
ta.course_info_id,
ta.course_info_name,
a.course_label_type,
a.course_label_name
a.course_label_name,
'2' AS source_type
FROM
course_info ta
LEFT JOIN course_label a ON a.course_label_id = ta.course_label_id
@ -916,7 +917,8 @@ getCourseSystemOAndUniversities
tb.teacher_open_course_id AS course_info_id,
tb.teacher_open_course_title AS course_info_name,
'院校' `course_label_type`,
'开课类' `course_label_name`
'开课类' `course_label_name`,
'1' AS source_type
FROM
teacher_open_course tb
LEFT JOIN teacher_open_course_merge_teacher lba ON lba.teacher_open_course_id = tb.teacher_open_course_id

@ -174,3 +174,88 @@ getCourseInfoQuestionCountGroup
@}
group by t.course_info_id
getCurriculumResourceManagementList
===
* 获取课程资源管理系统授权课+院校开课
SELECT
@pageTag(){
tt.*
@}
FROM
(
(
SELECT
'超级管理员' AS add_type_text,
la.course_info_name,
ta.course_info_id,
lb.course_info_name AS course_info_parent_name,
lb.course_info_id AS course_info_parent_id,
lc.course_info_name AS course_info_parent_parent_name,
lc.course_info_id AS course_info_parent_parent_id,
ta.add_time,
ta.order_index,
ta.org_id,
ta.resources_info_content,
ta.resources_info_files,
ta.resources_info_id,
ta.resources_info_name,
ta.resources_info_type,
ta.user_id,
'2' AS source_type
FROM
resources_info ta
LEFT JOIN course_info la ON la.course_info_id = ta.course_info_id AND la.course_info_status = 1
LEFT JOIN course_info lb ON lb.course_info_id = la.course_info_parent_id AND lb.course_info_status = 1
LEFT JOIN course_info lc ON lc.course_info_id = lb.course_info_parent_id AND lc.course_info_status = 1
LEFT JOIN core_org ld ON ld.`ID` = ta.org_id AND ld.DEL_FLAG = 0
)
UNION ALL
(
SELECT
lbd.`NAME` AS add_type_text,
lba.course_info_name,
tb.teacher_open_course_merge_course_info_id,
lbb.course_info_name AS course_info_parent_name,
lbb.teacher_open_course_merge_course_info_id AS course_info_parent_id,
lbc.course_info_name AS course_info_parent_parent_name,
lbc.teacher_open_course_merge_course_info_id AS course_info_parent_parent_id,
tb.add_time,
tb.order_index,
tb.org_id,
tb.resources_info_content,
tb.resources_info_files AS resources_info_files,
tb.teacher_open_course_merge_resources_info_id AS resources_info_id,
tb.resources_info_name,
tb.resources_info_type,
tb.user_id,
'1' AS source_type
FROM
teacher_open_course_merge_resources_info tb
LEFT JOIN teacher_open_course_merge_course_info lba ON lba.teacher_open_course_merge_course_info_id = tb.teacher_open_course_merge_course_info_id AND lba.course_info_status = 1
LEFT JOIN teacher_open_course_merge_course_info lbb ON lbb.teacher_open_course_merge_course_info_id = lba.course_info_parent_id AND lbb.course_info_status = 1
LEFT JOIN teacher_open_course_merge_course_info lbc ON lbc.teacher_open_course_merge_course_info_id = lbb.course_info_parent_id AND lbc.course_info_status = 1
LEFT JOIN core_org lbd ON lbd.`ID` = tb.org_id AND lbd.DEL_FLAG = 0
WHERE
tb.resources_info_status = 1
)
) tt
WHERE 1=1
@if(!isEmpty(resourcesInfoType)) {
AND tt.resources_info_type = #resourcesInfoType#
@}
@if(!isEmpty(resourcesInfoName)) {
AND tt.resources_info_name LIKE #'%'+resourcesInfoName+'%'#
@}
@if(!isEmpty(courseInfoId_0)) {
AND tt.course_info_parent_parent_id = #courseInfoId_0#
@}
@if(!isEmpty(courseInfoId_2)) {
AND tt.course_info_parent_id = #courseInfoId_2#
@}
@if(!isEmpty(courseInfoId_3)) {
AND tt.course_info_id = #courseInfoId_3#
@}
@if(!isEmpty(addTypeText)) {
AND tt.add_type_text LIKE #'%'+addTypeText+'%'#
@}
ORDER BY tt.add_time DESC

@ -65,7 +65,7 @@ layui.define(['form', 'laydate', 'table'], function (exports) {
method: 'post',
even: true,
size: "lg",
url: Common.ctxPath + '/jlw/resourcesInfo/list.json' // 数据接口
url: Common.ctxPath + '/jlw/resourcesInfo/getCurriculumResourceManagementList.json' // 数据接口
, page: Lib.tablePage // 开启分页
, limit: 10,
cols: [[ // 表头

Loading…
Cancel
Save