package com.qxueyou.scc.teach.res.service.impl.resitem;
|
|
import java.util.Date;
|
|
import com.qxueyou.scc.teach.res.model.ResItemVideo;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.ICacheService;
|
import com.qxueyou.scc.base.service.impl.CommonAppService;
|
import com.qxueyou.scc.base.util.TraceUtils;
|
import com.qxueyou.scc.media.model.MediaVideo;
|
import com.qxueyou.scc.media.model.VideoConverTask;
|
import com.qxueyou.scc.teach.res.model.Res;
|
import com.qxueyou.scc.teach.res.model.ResFile;
|
import com.qxueyou.scc.teach.res.model.ResItemAudio;
|
import com.qxueyou.scc.teach.res.service.IFileService;
|
import com.qxueyou.scc.teach.res.service.IResAudioService;
|
import com.qxueyou.scc.teach.res.service.IResItemService;
|
|
@Service(value = "ResItemAudioService")
|
public class ResItemAudioService extends CommonAppService implements IResItemService, IResAudioService {
|
@Autowired
|
IFileService fileService;
|
|
@Autowired
|
ICacheService cacheService;
|
|
@Override
|
public String add(String fileId, String name) {
|
ResFile file = fileService.read(fileId);
|
String mediaVideoId = addVideoConverTask(file);
|
ResItemAudio audio = new ResItemAudio();
|
TraceUtils.setCreateTrace(audio);
|
audio.setStatus(ResItemAudio.STATUS_LINEUP);
|
audio.setFileId(fileId);
|
audio.setName(name);
|
audio.setMediaVideoId(mediaVideoId);
|
// ½«mediaVideoId·Å½ø»º´æ
|
cacheService.lstRightPush(ResItemVideoService.RES_VIDEO_CONVER_LST, mediaVideoId);
|
save(audio);
|
|
return audio.getAudioId();
|
}
|
|
private String addVideoConverTask(ResFile file) {
|
|
MediaVideo video = insertMediaVideo(file);
|
insertMediaVideoConverTask(video);
|
|
return video.getVideoId();
|
|
}
|
|
private MediaVideo insertMediaVideo(ResFile file) {
|
|
MediaVideo video = new MediaVideo();
|
|
TraceUtils.setCreateTrace(video);
|
|
video.setDeleteFlag(false);
|
video.setName(file.getFileName());
|
video.setOrigUrl(file.getPath());
|
video.setStatus(MediaVideo.STATUS_LINEUP);
|
video.setType(MediaVideo.MEDIA_AUDIO);
|
|
save(video);
|
|
return video;
|
}
|
|
private Result insertMediaVideoConverTask(MediaVideo resVideo) {
|
|
VideoConverTask task = new VideoConverTask();
|
|
task.setCreateTime(new Date());
|
task.setDeleteFlag(false);
|
task.setVideoId(resVideo.getVideoId());
|
task.setVideoUrl(resVideo.getOrigUrl());
|
task.setType(MediaVideo.MEDIA_AUDIO);
|
task.setPriority(5);
|
|
save(task);
|
|
return new Result(true);
|
}
|
|
@Override
|
public Result update(String id, String name) {
|
|
ResItemAudio audio = read(ResItemAudio.class, id);
|
|
TraceUtils.setUpdateTrace(audio);
|
|
audio.setName(name);
|
|
save(audio);
|
|
return new Result(true, "success");
|
}
|
|
@Override
|
public String readAccessPath(String resId, String attribute) {
|
ResItemAudio resItemAudio = read(ResItemAudio.class, resId);
|
|
if (resItemAudio != null && resItemAudio.getStatus() != ResItemAudio.STATUS_DRAFT) {
|
ResFile resFile = read(ResFile.class,resItemAudio.getFileId());
|
return resFile.getPath();
|
//return null;
|
}
|
|
MediaVideo video = read(MediaVideo.class, resItemAudio.getMediaVideoId());
|
|
if (video == null) {
|
return null;
|
}
|
|
return StringUtils.isNotEmpty(video.getAndroidHD()) ? video.getAndroidHD()
|
: StringUtils.isNotEmpty(video.getAndroidSD()) ? video.getAndroidSD() : video.getAndroidLD();
|
}
|
|
@Override
|
public String getResItemType() {
|
return Res.FILE_TYPE_AUDIO;
|
}
|
|
@Override
|
public Result updateDuration(String audioId, int duration) {
|
|
ResItemAudio audio = read(ResItemAudio.class, audioId);
|
|
audio.setSeconds(duration);
|
|
save(audio);
|
|
return new Result(true);
|
}
|
|
}
|