Переглянути джерело

修改生成视频接口

private_deployment
lrh 1 рік тому
джерело
коміт
88b031e8c1
1 змінених файлів з 106 додано та 0 видалено
  1. +106
    -0
      suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java

+ 106
- 0
suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java Переглянути файл

@@ -0,0 +1,106 @@
package com.iformall.schedule;

import com.iformall.domain.po.sm.PhotoSpeakVideo;
import com.iformall.domain.po.sm.UserMouldVideo;
import com.iformall.domain.po.sm.VideoTrans;
import com.iformall.enums.EnumVideoStatus;
import com.iformall.enums.EnumaVideoTransStatus;
import com.iformall.mapper.VideoTransMapper;
import com.iformall.service.sm.PhotoSpeakVideoService;
import com.iformall.service.sm.UserMouldVideoService;
import com.iformall.utils.DateUtils;
import com.iformall.video.VideoFactory;
import com.iformall.video.entity.VideTransResult;
import com.iformall.video.entity.VideUploadResult;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import java.util.Date;
import java.util.List;
import java.util.concurrent.Future;

@Configuration
@EnableScheduling
public class PhotoSpeakSchedule {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private PhotoSpeakVideoService photoSpeakVideoService;

@Autowired
VideoFactory videoFactory;

@Autowired
String videoType;

/**
* 生成视频
*/
@Scheduled(cron = "0 20/30 * * * *?") // 每半小时检查一次
public void photoSpeakCreateSchedule() {
PhotoSpeakVideo videoUpd = new PhotoSpeakVideo();
videoUpd.setVideoStartDate(DateUtils.getHourDateBefore(2,new Date()));
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
List<PhotoSpeakVideo> list = photoSpeakVideoService.findList(videoUpd);
if (list != null && list.size() > 0) {
for (PhotoSpeakVideo video : list) {
try {
Future future = photoSpeakVideoService.createVideo(video);
future.get();
} catch (Exception e) {
logger.error("TtCouponVideoSchedule error.couponVideoSchedule:"+video.getId(),e);
}
}
}
}

/**
* 上传阿里云
*/
@Scheduled(cron = "0 */30 * * * *?") // 每半小时检查一次
public void userVideoUploadSchedule() {
List<PhotoSpeakVideo> videos = photoSpeakVideoService.getNotUploadList();
if (videos != null && videos.size() > 0) {
for (PhotoSpeakVideo video : videos) {
try {
photoSpeakVideoService.uploadVideo(video);
} catch (Exception e) {
logger.error("TtCouponVideoSchedule error.couponVideoSchedule:"+video.getId(),e);
}
}
}
}

/**
* 获取时长和大小
*/
@Scheduled(cron = "0 1/5 * * * *?") // 每五分钟检查一次
public void userVideoDetailSchedule() {
List<PhotoSpeakVideo> videos = photoSpeakVideoService.getUpLoadIngList();
if (videos != null && videos.size() > 0) {
for (PhotoSpeakVideo video : videos) {
try {
VideUploadResult videoDetail = videoFactory.getExcutor(videoType).getVideoDetailWithCache(video.getVideoId());
if (videoDetail.isSuccess()
&& StringUtils.isNotBlank(videoDetail.getDuration())
&& !"0.0".equals(videoDetail.getDuration())) {
video.setCoverImg(videoDetail.getCoverURL());
video.setVideoPlayUrl(videoDetail.getVideoUrl());
video.setVideoTime(videoDetail.getDuration());
video.setVideoSize(videoDetail.getSize());
video.setVideoStatus(EnumVideoStatus.upload_success.getCode());
photoSpeakVideoService.updateById(video);
}
} catch (Exception e) {
logger.error("TtCouponVideoSchedule error.couponVideoSchedule:"+video.getId(),e);
}
}
}
}
}

Завантаження…
Відмінити
Зберегти