From de84f8ff9e0def7c014fbb0fe790de917a784da5 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 8 Feb 2023 15:51:14 +0800 Subject: [PATCH] //vodeo --- .../controller/video/VideoController.java | 20 +++++-- .../com/iformall/schedule/VideoSchedule.java | 53 +++++++++++++++++++ .../iformall/domain/po/sm/UserMouldVideo.java | 2 +- .../iformall/mapper/UserMouldVideoMapper.java | 2 + .../service/sm/UserMouldVideoService.java | 6 +++ .../sm/impl/UserMouldVideoServiceImpl.java | 13 ++++- .../java/com/iformall/sm/AiVideoHelper.java | 2 +- .../resources/mapper/UserMouldVideoMapper.xml | 7 ++- 8 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java diff --git a/suimangAdmin/src/main/java/com/iformall/controller/video/VideoController.java b/suimangAdmin/src/main/java/com/iformall/controller/video/VideoController.java index 39b281c..3af2056 100644 --- a/suimangAdmin/src/main/java/com/iformall/controller/video/VideoController.java +++ b/suimangAdmin/src/main/java/com/iformall/controller/video/VideoController.java @@ -94,9 +94,9 @@ public class VideoController extends BaseController { title = multiReq.getOriginalFilename().substring(0,dot); } } -// if(!fileFormat.endsWith("mp4")){ -// return new ResultData(ErrorCode.PICTURE_ENDWIDTH_ERROR); -// } + if(!fileFormat.endsWith("mp4") || !fileFormat.endsWith("mp3")){ + return new ResultData(ErrorCode.PICTURE_ENDWIDTH_ERROR); + } VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoStream(title, multiReq.getInputStream(),fileFormat); result.setSize(String.valueOf(size)); return new ResultData(result); @@ -148,4 +148,18 @@ public class VideoController extends BaseController { } } + @GetMapping(value = "/videoDetial") + @ApiOperation("视频详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "videoId", value = "视频编号", dataType = "String", paramType = "query", required = true)}) + public ResultData videoDetial(String videoId) { + try { + VideUploadResult videoDetail = videoFactory.getExcutor(videoType).getVideoDetailWithCache(videoId); + return new ResultData(videoDetail); + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } + } + } diff --git a/suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java b/suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java new file mode 100644 index 0000000..2340409 --- /dev/null +++ b/suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java @@ -0,0 +1,53 @@ +package com.iformall.schedule; + +import com.iformall.domain.po.sm.UserMouldVideo; +import com.iformall.domain.po.tt.TtCoupon; +import com.iformall.mapper.TtCouponMapper; +import com.iformall.service.sm.UserMouldVideoService; +import com.iformall.video.VideoFactory; +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.List; + +@Configuration +@EnableScheduling +public class VideoSchedule { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private UserMouldVideoService userMouldVideoService; + + @Autowired + VideoFactory videoFactory; + + @Autowired + String videoType; + + @Scheduled(cron = "0 0 */1 * * *?") // 每小时检查一次 + public void couponVideoSchedule() { + List videos = userMouldVideoService.getVideoTimeNullList(); + if (videos != null && videos.size() > 0) { + for (UserMouldVideo video : videos) { + try { + VideUploadResult videoDetail = videoFactory.getExcutor(videoType).getVideoDetailWithCache(video.getVideoId()); + if (videoDetail.isSuccess() && StringUtils.isNotBlank(videoDetail.getDuration()) + && !"0.0".equals(videoDetail.getDuration())) { + video.setVideoTime(videoDetail.getDuration()); + userMouldVideoService.updateById(video); + } + } catch (Exception e) { + logger.error("TtCouponVideoSchedule error.couponVideoSchedule:"+video.getId(),e); + } + } + } + } + +} \ No newline at end of file diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java index 6a67c76..c3c4bea 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java @@ -80,7 +80,7 @@ public class UserMouldVideo extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="",name="videoPath") private String videoPath; @io.swagger.annotations.ApiModelProperty(value="视频时长",name="videoTime") - private float videoTime; + private String videoTime; @io.swagger.annotations.ApiModelProperty(value="EnumVideoStatus 视频状态",name="videoStatus") private Integer videoStatus; @io.swagger.annotations.ApiModelProperty(value="生成视频信息",name="videoMsg") diff --git a/suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java b/suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java index ad3051b..26a93dd 100644 --- a/suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java @@ -20,4 +20,6 @@ public interface UserMouldVideoMapper extends CommonMapper List findCList(UserMouldVideo record); UserMouldVideo findVideo(@Param("id")Long id); + + List getVideoTimeNullList(); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java b/suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java index 6b7728a..a87ec11 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java @@ -5,6 +5,8 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.sm.MouldPatch; import com.iformall.domain.po.sm.UserMouldVideo; +import java.util.List; + public interface UserMouldVideoService { /** @@ -43,4 +45,8 @@ public interface UserMouldVideoService { void createVideo(UserMouldVideo mouldVideo); UserMouldVideo findVideo(Long id); + + List getVideoTimeNullList(); + + int updateById(UserMouldVideo video); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 4f11ee6..5f29c18 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; @Service @@ -90,7 +91,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { AiVideoResult video = AiVideoHelper.createVideo(mouldVideo.getPersonMouldSmId(), mouldVideo.getVoiceMouldSmId(), mouldVideo.getPaperwork()); if(video.isSuccess()){ videoUpd.setVideoPath(video.getUrl()); - videoUpd.setVideoTime(video.getDuration()); + videoUpd.setVideoTime(video.getDuration()+""); videoUpd.setVideoStatus(EnumVideoStatus.success.getCode()); videoUpd.setVideoMsg(video.getMsg()); videoUpd.setCreateVideoDate(new Date()); @@ -117,4 +118,14 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { return userMouldVideoMapper.findVideo(id); } + @Override + public List getVideoTimeNullList() { + return userMouldVideoMapper.getVideoTimeNullList(); + } + + @Override + public int updateById(UserMouldVideo video) { + return userMouldVideoMapper.updateById(video); + } + } diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index d4241f1..8df4810 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -40,7 +40,7 @@ public class AiVideoHelper { params.put("gen_txt",gen_txt); String response = doPost(uri+"/gen_dh_video", params); - log.info("服务端预下单 request:"+params.toString()+" response:"+response); + log.info("生成视频 request:"+params.toString()+" response:"+response); AiVideoResult result = new AiVideoResult(); diff --git a/suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml b/suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml index 3d0971c..524a95a 100644 --- a/suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml +++ b/suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml @@ -18,7 +18,7 @@ - + @@ -121,5 +121,10 @@ where `id` = #{id} +