package com.ibeetl.jlw.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.jlw.aliPay.utils.StringUtils; import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.jlw.dao.CourseInfoDao; import com.ibeetl.jlw.dao.ResourcesInfoDao; import com.ibeetl.jlw.entity.CourseInfo; import com.ibeetl.jlw.entity.ResourcesInfo; import com.ibeetl.jlw.web.query.ResourcesInfoQuery; import org.beetl.sql.core.SqlId; import org.beetl.sql.core.engine.PageQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import static cn.jlw.util.ConvertM3U8.booleanMap; /** * ResourcesInfo Service */ @Service @Transactional public class ResourcesInfoService extends CoreBaseService<ResourcesInfo>{ @Autowired private ResourcesInfoDao resourcesInfoDao; @Autowired private CourseInfoService courseInfoService; @Autowired private CourseInfoDao courseInfoDao; public PageQuery<ResourcesInfo>queryByCondition(PageQuery query){ PageQuery ret = resourcesInfoDao.queryByCondition(query); queryListAfter(ret.getList()); List<ResourcesInfo> resourcesInfoList = ret.getList(); for(int i=0;i<resourcesInfoList.size();i++){ List<CourseInfo> courseInfoList = new ArrayList<>(); Long courseInfoId = resourcesInfoList.get(i).getCourseInfoId(); CourseInfo c = courseInfoService.queryById(courseInfoId); if(null != c){ if(!((Integer)1).equals(c.getCourseInfoType())){ courseInfoId = c.getCourseInfoParentId(); for(int j=0;j<25;j++){ CourseInfo courseInfoParent = courseInfoService.queryById(courseInfoId); courseInfoList.add(courseInfoParent); if(((Integer)1).equals(courseInfoParent.getCourseInfoType())){ break; }else { courseInfoId = courseInfoParent.getCourseInfoParentId(); } } } } if(courseInfoList.size() >= 2){ resourcesInfoList.get(i).set("courseInfoParentId",courseInfoList.get(courseInfoList.size()-2).getCourseInfoId()); resourcesInfoList.get(i).set("courseInfoParentName",courseInfoList.get(courseInfoList.size()-2).getCourseInfoName()); resourcesInfoList.get(i).set("courseInfoParentParentId",courseInfoList.get(courseInfoList.size()-1).getCourseInfoId()); resourcesInfoList.get(i).set("courseInfoParentParentName",courseInfoList.get(courseInfoList.size()-1).getCourseInfoName()); }else { resourcesInfoList.get(i).set("courseInfoParentId",null); resourcesInfoList.get(i).set("courseInfoParentName",null); resourcesInfoList.get(i).set("courseInfoParentParentId",null); resourcesInfoList.get(i).set("courseInfoParentParentName",null); } } return ret; } public ResourcesInfo getById(Long resourcesInfoId){ ResourcesInfo resourcesInfo = queryById(resourcesInfoId); if(null != resourcesInfo){ try { String path = resourcesInfo.getResourcesInfoContent().replace("\\","/"); String fileName = path.substring(path.lastIndexOf("/") + 1); String formatSpot = fileName.substring(fileName.lastIndexOf(".")); System.out.println(path); path = path .replace("/filesystem/temp/", "/filesystem/temp/" + fileName.replace(formatSpot, "") + "/") .replace("server/", "") .replace(formatSpot, ".m3u8"); System.out.println(path); Boolean flag = booleanMap.get(fileName.replace(formatSpot, "")); if (null == flag) { flag = false; } if(flag){ resourcesInfo.setResourcesInfoContent(path); } }catch (Exception e){ e.printStackTrace(); } } return resourcesInfo; } public void deleteResourcesInfo(String ids){ for(int i=0;i<ids.split(",").length;i++){ ResourcesInfo oldResourcesInfo = queryById(Long.parseLong(ids.split(",")[i])); CourseInfo oldCourseInfo = courseInfoDao.single(oldResourcesInfo.getCourseInfoId()); if(null != oldCourseInfo){ //资源类型(1视频 2课件 3附件) if(((Integer)1).equals(oldResourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); c.setCourseVideoId(null != oldCourseInfo.getCourseVideoId() && oldCourseInfo.getCourseVideoId().equals(oldResourcesInfo.getResourcesInfoId())?null:oldCourseInfo.getCourseVideoId()); courseInfoDao.updateVideoIdById(c); }else if(((Integer)2).equals(oldResourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); c.setCourseCoursewareId(null != oldCourseInfo.getCourseCoursewareId() && oldCourseInfo.getCourseCoursewareId().equals(oldResourcesInfo.getResourcesInfoId())?null:oldCourseInfo.getCourseCoursewareId()); courseInfoDao.updateCoursewareIdById(c); }else if(((Integer)3).equals(oldResourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(oldCourseInfo.getCourseInfoId()); c.setCourseEnclosureIds(StringUtils.isNotBlank(oldCourseInfo.getCourseEnclosureIds())?(oldCourseInfo.getCourseEnclosureIds().replace(oldResourcesInfo.getResourcesInfoId().toString(),"").replace(",,",",")):oldCourseInfo.getCourseEnclosureIds()); courseInfoDao.updateEnclosureIdsById(c); } } } resourcesInfoDao.deleteResourcesInfoByIds(ids); } public boolean addAll (List<ResourcesInfo> resourcesInfoList){ insertBatch(resourcesInfoList); List<CourseInfo> courseInfoList = new ArrayList<>(); for(int i=0;i<resourcesInfoList.size();i++){ CourseInfo courseInfo = courseInfoDao.single(resourcesInfoList.get(i).getCourseInfoId()); if(null != courseInfo){ //资源类型(1视频 2课件 3附件) if(((Integer)1).equals(resourcesInfoList.get(i).getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseVideoId(null != courseInfo.getCourseVideoId()?courseInfo.getCourseVideoId():resourcesInfoList.get(i).getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)2).equals(resourcesInfoList.get(i).getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseCoursewareId(null != courseInfo.getCourseCoursewareId()?courseInfo.getCourseCoursewareId():resourcesInfoList.get(i).getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)3).equals(resourcesInfoList.get(i).getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseEnclosureIds(StringUtils.isNotBlank(courseInfo.getCourseEnclosureIds())?(courseInfo.getCourseEnclosureIds()+","+resourcesInfoList.get(i).getResourcesInfoId()):resourcesInfoList.get(i).getResourcesInfoId().toString()); courseInfoList.add(c); } } } if(courseInfoList.size()>0){ courseInfoService.updateBatchTemplate(courseInfoList); } return true; } public boolean add (ResourcesInfo resourcesInfo){ insert(resourcesInfo); List<CourseInfo> courseInfoList = new ArrayList<>(); CourseInfo courseInfo = courseInfoDao.single(resourcesInfo.getCourseInfoId()); if(null != courseInfo){ //资源类型(1视频 2课件 3附件) if(((Integer)1).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseVideoId(null != courseInfo.getCourseVideoId()?courseInfo.getCourseVideoId():resourcesInfo.getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)2).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseCoursewareId(null != courseInfo.getCourseCoursewareId()?courseInfo.getCourseCoursewareId():resourcesInfo.getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)3).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseEnclosureIds(StringUtils.isNotBlank(courseInfo.getCourseEnclosureIds())?(courseInfo.getCourseEnclosureIds()+","+resourcesInfo.getResourcesInfoId()):resourcesInfo.getResourcesInfoId().toString()); courseInfoList.add(c); } } if(courseInfoList.size()>0){ courseInfoService.updateBatchTemplate(courseInfoList); } return true; } public boolean edit (ResourcesInfo resourcesInfo){ ResourcesInfo oldResourcesInfo = queryById(resourcesInfo.getResourcesInfoId()); CourseInfo oldCourseInfo = courseInfoDao.single(oldResourcesInfo.getCourseInfoId()); if(null != oldCourseInfo){ //资源类型(1视频 2课件 3附件) if(((Integer)1).equals(oldResourcesInfo.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(oldResourcesInfo.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(oldResourcesInfo.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); } } updateTemplate(resourcesInfo); List<CourseInfo> courseInfoList = new ArrayList<>(); CourseInfo courseInfo = courseInfoDao.single(resourcesInfo.getCourseInfoId()); if(null != courseInfo){ //资源类型(1视频 2课件 3附件) if(((Integer)1).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseVideoId(null != courseInfo.getCourseVideoId()?courseInfo.getCourseVideoId():resourcesInfo.getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)2).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseCoursewareId(null != courseInfo.getCourseCoursewareId()?courseInfo.getCourseCoursewareId():resourcesInfo.getResourcesInfoId()); courseInfoList.add(c); }else if(((Integer)3).equals(resourcesInfo.getResourcesInfoType())){ CourseInfo c = new CourseInfo(); c.setCourseInfoId(courseInfo.getCourseInfoId()); c.setCourseEnclosureIds(StringUtils.isNotBlank(courseInfo.getCourseEnclosureIds())?(courseInfo.getCourseEnclosureIds()+","+resourcesInfo.getResourcesInfoId()):resourcesInfo.getResourcesInfoId().toString()); courseInfoList.add(c); } } if(courseInfoList.size()>0){ courseInfoService.updateBatchTemplate(courseInfoList); } return true; } public List<ResourcesInfo> getValuesByQuery (ResourcesInfoQuery resourcesInfoQuery){ return resourcesInfoDao.getValuesByQuery(resourcesInfoQuery); } public List<ResourcesInfo> getValues (Object paras){ return sqlManager.select(SqlId.of("jlw.resourcesInfo.getResourcesInfoValues"),ResourcesInfo.class,paras); } /** * 从系统资源中拷贝 * @param resourcesInfoIds * @param courseId */ public void copy(String resourcesInfoIds, Long courseId) { ResourcesInfoQuery resourcesInfoQuery = new ResourcesInfoQuery(); resourcesInfoQuery.setResourcesInfoIds(resourcesInfoIds); List<ResourcesInfo> list = getValuesByQuery(resourcesInfoQuery); List<ResourcesInfo> insertList = CollectionUtil.emptyIfNull(list).stream().map(item -> { item.setCourseInfoId(courseId); item.setResourcesInfoId(null); return item; }).collect(Collectors.toList()); if (ObjectUtil.isEmpty(insertList)) { insertBatch(insertList); } } }