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