Bladeren bron

//vodeo

private_deployment
xhxu 2 jaren geleden
bovenliggende
commit
98f2e58d0b
5 gewijzigde bestanden met toevoegingen van 66 en 11 verwijderingen
  1. +31
    -3
      suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java
  2. +5
    -1
      suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java
  3. +13
    -6
      suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java
  4. +14
    -0
      suimangService/src/main/java/com/iformall/utils/DateUtils.java
  5. +3
    -1
      suimangVideo/src/main/java/com/iformall/video/aliyun/AliyunVideoExcutor.java

+ 31
- 3
suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java Bestand weergeven

@@ -2,9 +2,12 @@ package com.iformall.schedule;

import com.iformall.domain.po.sm.UserMouldVideo;
import com.iformall.domain.po.tt.TtCoupon;
import com.iformall.enums.EnumVideoStatus;
import com.iformall.mapper.TtCouponMapper;
import com.iformall.service.sm.UserMouldVideoService;
import com.iformall.utils.DateUtils;
import com.iformall.video.VideoFactory;
import com.iformall.video.aliyun.sdk.server.UploadCacheHelper;
import com.iformall.video.entity.VideUploadResult;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -14,7 +17,9 @@ 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
@@ -31,11 +36,32 @@ public class VideoSchedule {
@Autowired
String videoType;

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

/**
* 上传阿里云
*/
@Scheduled(cron = "0 */30 * * * *?") // 每小时检查一次
public void couponVideoUploadSchedule() {
public void userVideoUploadSchedule() {
List<UserMouldVideo> videos = userMouldVideoService.getVideoIdNullList();
if (videos != null && videos.size() > 0) {
for (UserMouldVideo video : videos) {
@@ -52,13 +78,15 @@ public class VideoSchedule {
* 获取时长和大小
*/
@Scheduled(cron = "0 15/30 * * * *?") // 每小时检查一次
public void couponVideoDetailSchedule() {
public void userVideoDetailSchedule() {
List<UserMouldVideo> videos = userMouldVideoService.getVideoSizeNullList();
if (videos != null && videos.size() > 0) {
for (UserMouldVideo video : videos) {
try {
VideUploadResult videoDetail = videoFactory.getExcutor(videoType).getVideoDetailWithCache(video.getVideoId());
if (videoDetail.isSuccess()) {
if (videoDetail.isSuccess()
&& StringUtils.isNotBlank(videoDetail.getDuration())
&& !"0.0".equals(videoDetail.getDuration())) {
video.setVideoTime(videoDetail.getDuration());
video.setVideoSize(videoDetail.getSize());
userMouldVideoService.updateById(video);


+ 5
- 1
suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java Bestand weergeven

@@ -6,6 +6,7 @@ import com.iformall.domain.po.sm.MouldPatch;
import com.iformall.domain.po.sm.UserMouldVideo;

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

public interface UserMouldVideoService {

@@ -20,6 +21,8 @@ public interface UserMouldVideoService {
PageInfo<UserMouldVideo> listAsPage(UserMouldVideo record, Integer pageIndex, Integer pageSize);
PageInfo<UserMouldVideo> cListAsPage(UserMouldVideo record, Integer pageIndex, Integer pageSize);

List<UserMouldVideo> findList(UserMouldVideo record);

/**
* 根据Id获得实体
*
@@ -42,7 +45,7 @@ public interface UserMouldVideoService {
*/
void deleteById(Long id);

void createVideo(UserMouldVideo mouldVideo);
Future createVideo(UserMouldVideo mouldVideo);

void uploadVideo(UserMouldVideo mouldVideo);

@@ -53,4 +56,5 @@ public interface UserMouldVideoService {
List<UserMouldVideo> getVideoSizeNullList();

int updateById(UserMouldVideo video);

}

+ 13
- 6
suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java Bestand weergeven

@@ -17,11 +17,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;

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


@Service
@@ -48,6 +50,11 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> userMouldVideoMapper.findCList(record));
}

@Override
public List<UserMouldVideo> findList(UserMouldVideo record) {
return userMouldVideoMapper.findList(record);
}

@Override
public UserMouldVideo getById(Long id) {
return userMouldVideoMapper.selectById(id);
@@ -78,7 +85,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {

@Async
@Override
public void createVideo(UserMouldVideo mouldVideo) {
public Future createVideo(UserMouldVideo mouldVideo) {
UserMouldVideo videoUpd = new UserMouldVideo();
videoUpd.setId(mouldVideo.getId());

@@ -86,14 +93,14 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoMsg("未找到人物模板数据");
this.saveOrUpdate(videoUpd);
return;
return new AsyncResult<>(0);
}

if(StringUtils.isBlank(mouldVideo.getPaperwork())){
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoMsg("未填写视频文案");
this.saveOrUpdate(videoUpd);
return;
return new AsyncResult<>(0);
}

try{
@@ -108,19 +115,19 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {

videoUpd.setTitle(mouldVideo.getTitle());
this.uploadVideo(videoUpd);
return;
return new AsyncResult<>(1);
}
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoMsg(video.getMsg());
this.saveOrUpdate(videoUpd);
return;
return new AsyncResult<>(0);

}catch(Exception e){
e.printStackTrace();
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoMsg(e.getMessage());
this.saveOrUpdate(videoUpd);
return;
return new AsyncResult<>(0);
}

}


+ 14
- 0
suimangService/src/main/java/com/iformall/utils/DateUtils.java Bestand weergeven

@@ -387,6 +387,20 @@ public class DateUtils {
Date date = new Date(myTime * 1000);
return formatter.format(date);
}

/**
* 获得当前时间前几小时的时间
*
* @param hour
* 前几小时
* @return
*/
public static Date getHourDateBefore(int hour, Date myDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long myTime = (myDate.getTime() / 1000) - 60 * 60 * hour;
Date date = new Date(myTime * 1000);
return date;
}
/**
* 获得当前时间前几秒的时间


+ 3
- 1
suimangVideo/src/main/java/com/iformall/video/aliyun/AliyunVideoExcutor.java Bestand weergeven

@@ -145,7 +145,9 @@ public class AliyunVideoExcutor implements VideoExcutor {
}else{
VideUploadResult result = getVideoDetailFromApi(videoId);
if(this.videoStatus.equals(result.getStatus())){
UploadCacheHelper.cacheVideoDetail(redisTemplate, videoId,result);
if(StringUtils.isNotBlank(result.getDuration()) && !"0.0".equals(result.getDuration())){
UploadCacheHelper.cacheVideoDetail(redisTemplate, videoId,result);
}
}else{
//还不能播放
result.setSuccess(false);


Laden…
Annuleren
Opslaan