You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
294 lines
14 KiB
Java
294 lines
14 KiB
Java
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);
|
|
}
|
|
}
|
|
} |