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

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);
}
}
}