| @@ -39,7 +39,7 @@ public class VideoSchedule { | |||
| /** | |||
| * 生成视频 | |||
| */ | |||
| @Scheduled(cron = "0 20/30 * * * *?") // 每小时检查一次 | |||
| @Scheduled(cron = "0 20/30 * * * *?") // 每半小时检查一次 | |||
| public void userVideoCreateSchedule() { | |||
| UserMouldVideo userVideo = new UserMouldVideo(); | |||
| userVideo.setVideoStartDate(DateUtils.getHourDateBefore(2,new Date())); | |||
| @@ -60,9 +60,9 @@ public class VideoSchedule { | |||
| /** | |||
| * 上传阿里云 | |||
| */ | |||
| @Scheduled(cron = "0 */30 * * * *?") // 每小时检查一次 | |||
| @Scheduled(cron = "0 */30 * * * *?") // 每半小时检查一次 | |||
| public void userVideoUploadSchedule() { | |||
| List<UserMouldVideo> videos = userMouldVideoService.getVideoIdNullList(); | |||
| List<UserMouldVideo> videos = userMouldVideoService.getNotUploadList(); | |||
| if (videos != null && videos.size() > 0) { | |||
| for (UserMouldVideo video : videos) { | |||
| try { | |||
| @@ -77,9 +77,9 @@ public class VideoSchedule { | |||
| /** | |||
| * 获取时长和大小 | |||
| */ | |||
| @Scheduled(cron = "0 15/30 * * * *?") // 每小时检查一次 | |||
| @Scheduled(cron = "0 15/30 * * * *?") // 每半小时检查一次 | |||
| public void userVideoDetailSchedule() { | |||
| List<UserMouldVideo> videos = userMouldVideoService.getVideoSizeNullList(); | |||
| List<UserMouldVideo> videos = userMouldVideoService.getUpLoadIngList(); | |||
| if (videos != null && videos.size() > 0) { | |||
| for (UserMouldVideo video : videos) { | |||
| try { | |||
| @@ -89,6 +89,7 @@ public class VideoSchedule { | |||
| && !"0.0".equals(videoDetail.getDuration())) { | |||
| video.setVideoTime(videoDetail.getDuration()); | |||
| video.setVideoSize(videoDetail.getSize()); | |||
| video.setVideoStatus(EnumVideoStatus.upload_success.getCode()); | |||
| userMouldVideoService.updateById(video); | |||
| } | |||
| } catch (Exception e) { | |||
| @@ -74,19 +74,10 @@ public class UserMouldVideoController extends BaseController { | |||
| if(mouldVideo == null || !mouldVideo.getUserId().equals(getMemberId())){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到用户数据"); | |||
| } | |||
| if(mouldVideo.getPersonMouldId() != null){ | |||
| mouldVideo.setPersonMould(mouldPatchService.getDetailById(mouldVideo.getPersonMouldId())); | |||
| } | |||
| if(mouldVideo.getVoiceMouldId() != null){ | |||
| mouldVideo.setVoiceMould(mouldPatchService.getDetailById(mouldVideo.getVoiceMouldId())); | |||
| } | |||
| if(mouldVideo.getBackgroundMouldId() != null){ | |||
| mouldVideo.setBackgroundMould(mouldPatchService.getDetailById(mouldVideo.getBackgroundMouldId())); | |||
| } | |||
| return new ResultData(mouldVideo); | |||
| } | |||
| @ApiOperation("根据id查询接口") | |||
| @ApiOperation("根据id删除接口") | |||
| @GetMapping("/del") | |||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
| public ResultData del(Long id) { | |||
| @@ -44,30 +44,82 @@ public class UserMouldVideo extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value="用户Id",name="userId") | |||
| private Long userId; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumMouldVideoType",name="type") | |||
| private Integer type; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumVideoType",name="videoType") | |||
| private Integer videoType; | |||
| @io.swagger.annotations.ApiModelProperty(value="人物模板ID",name="personMouldId") | |||
| private Long personMouldId; | |||
| @io.swagger.annotations.ApiModelProperty(value="人物模板smId",name="personMouldSmId") | |||
| private String personMouldSmId; | |||
| /** | |||
| * { | |||
| * "id":, | |||
| * "videoType":, | |||
| * "title":, | |||
| * "mouldSmId":, | |||
| * "material": | |||
| * } | |||
| */ | |||
| @io.swagger.annotations.ApiModelProperty(value="人物模板",name="personMouldSm") | |||
| private String personMouldSm; | |||
| @TableField(exist = false) | |||
| private MouldPatch personMould; | |||
| private PersonMould personMould; | |||
| @TableField(exist = false) | |||
| private List<Long> voiceMouldIds; | |||
| @io.swagger.annotations.ApiModelProperty(value="声音模板ID",name="voiceMouldId") | |||
| private Long voiceMouldId; | |||
| @io.swagger.annotations.ApiModelProperty(value="声音模板smId",name="voiceMouldSmId") | |||
| private String voiceMouldSmId; | |||
| /** | |||
| * { | |||
| * "title":, | |||
| * "languages":, | |||
| * "mouldSmId":, | |||
| * "personId":, | |||
| * "personType":, | |||
| * "speakId":, | |||
| * "speakType": | |||
| * } | |||
| */ | |||
| @io.swagger.annotations.ApiModelProperty(value="声音模板",name="voiceMouldSm") | |||
| private String voiceMouldSm; | |||
| @TableField(exist = false) | |||
| private MouldPatch voiceMould; | |||
| private VoiceMould voiceMould; | |||
| @io.swagger.annotations.ApiModelProperty(value="文案",name="paperwork") | |||
| private String paperwork; | |||
| @io.swagger.annotations.ApiModelProperty(value="背景模板ID",name="backgroundMouldId") | |||
| private Long backgroundMouldId; | |||
| @io.swagger.annotations.ApiModelProperty(value="背景模板smId",name="backgroundMouldSmId") | |||
| private String backgroundMouldSmId; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumLanguages",name="languages") | |||
| private Integer languages; | |||
| @io.swagger.annotations.ApiModelProperty(value="背景模板ID",name="backgroundId") | |||
| private Long backgroundId; | |||
| /** | |||
| * { | |||
| * "id":, | |||
| * "title":, | |||
| * "material": | |||
| * } | |||
| */ | |||
| @io.swagger.annotations.ApiModelProperty(value="背景模板",name="backgroundSm") | |||
| private String backgroundSm; | |||
| @TableField(exist = false) | |||
| private MouldPatch backgroundMould; | |||
| private MaterialMould backgroundMould; | |||
| /** | |||
| * List<Long> | |||
| */ | |||
| @io.swagger.annotations.ApiModelProperty(value="素材",name="materialIds") | |||
| private String materialIds; | |||
| /** | |||
| * [{ | |||
| * "id":, | |||
| * "type":, | |||
| * "material":, | |||
| * "x":, | |||
| * "y":, | |||
| * "z":, | |||
| * "w":, | |||
| * "h": | |||
| * },... | |||
| * ] | |||
| */ | |||
| @io.swagger.annotations.ApiModelProperty(value="素材层级",name="materialAllJson") | |||
| private String materialAllJson; | |||
| @io.swagger.annotations.ApiModelProperty(value="名称",name="title") | |||
| private String title; | |||
| @@ -106,5 +158,7 @@ public class UserMouldVideo extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||
| private Date updateDate; | |||
| @TableField(exist = false) | |||
| private List<Integer> videoStatuss; | |||
| } | |||
| @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.iformall.common.SortColumn; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumAgeType; | |||
| import com.iformall.enums.EnumPersonaType; | |||
| import com.iformall.enums.EnumPersonType; | |||
| import com.iformall.enums.EnumSex; | |||
| import com.iformall.enums.EnumSpeakType; | |||
| import lombok.Data; | |||
| @@ -132,16 +132,16 @@ public class VoiceMould extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumVoiceType",name="voiceType") | |||
| private Integer voiceType; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumPersonaType",name="personaType") | |||
| private Integer personaType; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumPersonType",name="personaType") | |||
| private Integer personType; | |||
| @TableField(exist = false) | |||
| private String personaTypeStr; | |||
| private String personTypeStr; | |||
| public String getPersonaTypeStr(){ | |||
| EnumPersonaType anEnum = EnumPersonaType.getEnum(this.personaType); | |||
| EnumPersonType anEnum = EnumPersonType.getEnum(this.personType); | |||
| if(anEnum != null){ | |||
| personaTypeStr = anEnum.getMessage(); | |||
| personTypeStr = anEnum.getMessage(); | |||
| } | |||
| return personaTypeStr; | |||
| return personTypeStr; | |||
| } | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumSpeakType",name="speakType") | |||
| @@ -149,7 +149,7 @@ public class VoiceMould extends TenantEntity { | |||
| @TableField(exist = false) | |||
| private String speakTypeStr; | |||
| public String getSpeakTypeStr(){ | |||
| EnumSpeakType anEnum = EnumSpeakType.getEnum(this.personaType); | |||
| EnumSpeakType anEnum = EnumSpeakType.getEnum(this.speakType); | |||
| if(anEnum != null){ | |||
| speakTypeStr = anEnum.getMessage(); | |||
| } | |||
| @@ -1,6 +1,6 @@ | |||
| package com.iformall.enums; | |||
| public enum EnumPersonaType { | |||
| public enum EnumPersonType { | |||
| /** | |||
| * | Boy | 角色风格 | 男孩 | 声音模仿男孩 | | |||
| * | Girl | 角色风格 | 女孩 | 声音模仿女孩 | | |||
| @@ -25,8 +25,8 @@ public enum EnumPersonaType { | |||
| YoungAdultMale(8,"男青年","YoungAdultMale"), | |||
| ; | |||
| public static EnumPersonaType getEnum(Integer code) { | |||
| for (EnumPersonaType value : values()) { | |||
| public static EnumPersonType getEnum(Integer code) { | |||
| for (EnumPersonType value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| @@ -34,7 +34,7 @@ public enum EnumPersonaType { | |||
| return null; | |||
| } | |||
| private EnumPersonaType(Integer code, String message, String type) { | |||
| private EnumPersonType(Integer code, String message, String type) { | |||
| this.code = code; | |||
| this.message = message; | |||
| this.type = type; | |||
| @@ -11,8 +11,12 @@ public enum EnumVideoStatus { | |||
| draft(0, "草稿"), | |||
| ing(1, "生成视频中"), | |||
| success(2, "生成视频成功"), | |||
| success(2,"生成视频成功"), | |||
| fail(3, "生成视频失败"), | |||
| upload_ing(4,"上传视频中"), | |||
| upload_success(5,"上传视频成功"), | |||
| upload_fail(6,"上传视频失败") | |||
| ; | |||
| public static EnumVideoStatus getEnum(Integer code) { | |||
| @@ -6,7 +6,7 @@ package com.iformall.enums; | |||
| public enum EnumVoiceType { | |||
| default_0(0, "默认"), | |||
| persona(1,"角色风格"), | |||
| person(1,"角色风格"), | |||
| speak(2, "说话风格"), | |||
| ; | |||
| @@ -21,7 +21,6 @@ public interface UserMouldVideoMapper extends CommonMapper<UserMouldVideo, Long> | |||
| UserMouldVideo findVideo(@Param("id")Long id); | |||
| List<UserMouldVideo> getVideoIdNullList(); | |||
| List<UserMouldVideo> getSortList(UserMouldVideo record); | |||
| List<UserMouldVideo> getVideoSizeNullList(); | |||
| } | |||
| @@ -51,9 +51,9 @@ public interface UserMouldVideoService { | |||
| UserMouldVideo findVideo(Long id); | |||
| List<UserMouldVideo> getVideoIdNullList(); | |||
| List<UserMouldVideo> getNotUploadList(); | |||
| List<UserMouldVideo> getVideoSizeNullList(); | |||
| List<UserMouldVideo> getUpLoadIngList(); | |||
| int updateById(UserMouldVideo video); | |||
| @@ -1,13 +1,24 @@ | |||
| package com.iformall.service.sm.impl; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.alibaba.fastjson.JSONObject; | |||
| import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.sm.MaterialMould; | |||
| import com.iformall.domain.po.sm.PersonMould; | |||
| import com.iformall.domain.po.sm.UserMouldVideo; | |||
| import com.iformall.domain.po.sm.VoiceMould; | |||
| import com.iformall.enums.EnumMouldPatchType; | |||
| import com.iformall.enums.EnumVideoStatus; | |||
| import com.iformall.enums.EnumVoiceType; | |||
| import com.iformall.mapper.UserMouldVideoMapper; | |||
| import com.iformall.service.sm.MaterialMouldService; | |||
| import com.iformall.service.sm.PersonMouldService; | |||
| import com.iformall.service.sm.UserMouldVideoService; | |||
| import com.iformall.service.sm.VoiceMouldService; | |||
| import com.iformall.sm.AiVideoHelper; | |||
| import com.iformall.sm.AiVideoResult; | |||
| import com.iformall.video.VideoFactory; | |||
| @@ -21,6 +32,7 @@ import org.springframework.scheduling.annotation.AsyncResult; | |||
| import org.springframework.stereotype.Service; | |||
| import java.net.URL; | |||
| import java.util.ArrayList; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| import java.util.concurrent.Future; | |||
| @@ -33,6 +45,15 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||
| @Autowired | |||
| UserMouldVideoMapper userMouldVideoMapper; | |||
| @Autowired | |||
| PersonMouldService personMouldService; | |||
| @Autowired | |||
| VoiceMouldService voiceMouldService; | |||
| @Autowired | |||
| MaterialMouldService materialMouldService; | |||
| @Autowired | |||
| VideoFactory videoFactory; | |||
| @@ -62,6 +83,90 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||
| @Override | |||
| public ResultData saveOrUpdate(UserMouldVideo record) { | |||
| if(record.getPersonMouldId() != null){ | |||
| PersonMould personMould = personMouldService.getById(record.getPersonMouldId()); | |||
| if(personMould == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未查询到人物模板信息"); | |||
| } | |||
| record.setVideoType(personMould.getVideoType()); | |||
| JSONObject personMouldObject = new JSONObject(); | |||
| personMouldObject.put("id",personMould.getId()); | |||
| personMouldObject.put("videoType",personMould.getVideoType()); | |||
| personMouldObject.put("title",personMould.getTitle()); | |||
| personMouldObject.put("mouldSmId",personMould.getMouldSmId()); | |||
| personMouldObject.put("material",personMould.getMaterial()); | |||
| record.setPersonMouldSm(personMouldObject.toJSONString()); | |||
| } | |||
| if(record.getVoiceMouldIds() != null && !record.getVoiceMouldIds().isEmpty()){ | |||
| if(record.getVoiceMouldIds().size() > 1){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"暂不支持声音模板交叉选择"); | |||
| } | |||
| Long voiceMouldId = record.getVoiceMouldIds().get(0); | |||
| VoiceMould voiceMould = voiceMouldService.getById(voiceMouldId); | |||
| if(voiceMould == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未查询到声音模板信息"); | |||
| } | |||
| record.setLanguages(voiceMould.getLanguages()); | |||
| if(voiceMould.getParentId().equals(0L)){ | |||
| record.setVoiceMouldId(voiceMould.getId()); | |||
| }else{ | |||
| record.setVoiceMouldId(voiceMould.getParentId()); | |||
| } | |||
| JSONObject voiceMouldObject = new JSONObject(); | |||
| voiceMouldObject.put("title",voiceMould.getTitle()); | |||
| voiceMouldObject.put("languages",voiceMould.getLanguages()); | |||
| voiceMouldObject.put("mouldSmId",voiceMould.getMouldSmId()); | |||
| voiceMouldObject.put("personId",0l); | |||
| voiceMouldObject.put("personType",0); | |||
| voiceMouldObject.put("speakId",0l); | |||
| voiceMouldObject.put("speakType",0); | |||
| if(EnumVoiceType.person.getCode().equals(voiceMould.getVoiceType())){ | |||
| voiceMouldObject.put("personId",voiceMould.getId()); | |||
| voiceMouldObject.put("personType",voiceMould.getPersonType()); | |||
| }else if(EnumVoiceType.speak.getCode().equals(voiceMould.getVoiceType())){ | |||
| voiceMouldObject.put("speakId",voiceMould.getId()); | |||
| voiceMouldObject.put("speakType",voiceMould.getPersonType()); | |||
| } | |||
| record.setVoiceMouldSm(voiceMouldObject.toJSONString()); | |||
| } | |||
| if(record.getBackgroundId() != null){ | |||
| MaterialMould background = materialMouldService.getById(record.getBackgroundId()); | |||
| if(background == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未查询到背景信息"); | |||
| } | |||
| JSONObject backgroundObject = new JSONObject(); | |||
| backgroundObject.put("id",background.getId()); | |||
| backgroundObject.put("title",background.getTitle()); | |||
| backgroundObject.put("material",background.getMaterial()); | |||
| record.setVoiceMouldSm(backgroundObject.toJSONString()); | |||
| } | |||
| if(StringUtils.isNotBlank(record.getMaterialAllJson())){ | |||
| logger.info("MaterialAllJson--->>" + record.getMaterialAllJson()); | |||
| try{ | |||
| List<Long> materialIds = new ArrayList<>(); | |||
| JSONArray materialAllArray = JSONArray.parseArray(record.getMaterialAllJson()); | |||
| if(materialAllArray != null && !materialAllArray.isEmpty()){ | |||
| for(int i = 0;i < materialAllArray.size();i++) { | |||
| JSONObject jsonObject = materialAllArray.getJSONObject(i); | |||
| Long id = jsonObject.getLong("id"); | |||
| Integer type = jsonObject.getInteger("type"); | |||
| if(EnumMouldPatchType.material_mould.getCode().equals(type)){ | |||
| materialIds.add(id); | |||
| } | |||
| String material = jsonObject.getString("material"); | |||
| Integer x = jsonObject.getInteger("x"); | |||
| Integer y = jsonObject.getInteger("y"); | |||
| Integer z = jsonObject.getInteger("z"); | |||
| Integer w = jsonObject.getInteger("w"); | |||
| Integer h = jsonObject.getInteger("h"); | |||
| } | |||
| } | |||
| record.setMaterialIds(JSONArray.toJSONString(materialIds)); | |||
| }catch(Exception e){ | |||
| e.printStackTrace(); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"素材层级数据错误"); | |||
| } | |||
| } | |||
| Date now = new Date(); | |||
| if (record.getId() == null) { | |||
| @@ -86,35 +191,64 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||
| @Async | |||
| @Override | |||
| public Future createVideo(UserMouldVideo mouldVideo) { | |||
| boolean isCreate = false; | |||
| String msg = ""; | |||
| UserMouldVideo videoUpd = new UserMouldVideo(); | |||
| videoUpd.setId(mouldVideo.getId()); | |||
| if(StringUtils.isBlank(mouldVideo.getPersonMouldSmId())){ | |||
| String personMouldSmId = null; | |||
| if(mouldVideo.getPersonMouldId() == null){ | |||
| msg = "未选择人物模板"; | |||
| }else{ | |||
| try{ | |||
| JSONObject personMouldObject = JSONObject.parseObject(mouldVideo.getPersonMouldSm()); | |||
| personMouldSmId = personMouldObject.getString("mouldSmId"); | |||
| }catch(Exception e){ | |||
| msg = "参数错误,未找到人物模板数据"; | |||
| } | |||
| } | |||
| if(StringUtils.isBlank(personMouldSmId)){ | |||
| videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); | |||
| videoUpd.setVideoMsg("未找到人物模板数据"); | |||
| videoUpd.setVideoMsg(msg); | |||
| this.saveOrUpdate(videoUpd); | |||
| return new AsyncResult<>(0); | |||
| } | |||
| if(StringUtils.isBlank(mouldVideo.getPaperwork())){ | |||
| String voiceMouldSmId = null; | |||
| if(mouldVideo.getVoiceMouldId() == null){ | |||
| msg = "未选择声音模板"; | |||
| }else{ | |||
| try{ | |||
| JSONObject personMouldObject = JSONObject.parseObject(mouldVideo.getVoiceMouldSm()); | |||
| voiceMouldSmId = personMouldObject.getString("mouldSmId"); | |||
| }catch(Exception e){ | |||
| msg = "参数错误,未找到声音模板数据"; | |||
| } | |||
| } | |||
| if(StringUtils.isBlank(voiceMouldSmId)){ | |||
| videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); | |||
| videoUpd.setVideoMsg("未填写视频文案"); | |||
| videoUpd.setVideoMsg(msg); | |||
| this.saveOrUpdate(videoUpd); | |||
| return new AsyncResult<>(0); | |||
| } | |||
| String paperwork = mouldVideo.getPaperwork(); | |||
| if(StringUtils.isBlank(paperwork)){ | |||
| videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); | |||
| videoUpd.setVideoMsg("未填写视频文案数据"); | |||
| this.saveOrUpdate(videoUpd); | |||
| return new AsyncResult<>(0); | |||
| } | |||
| try{ | |||
| AiVideoResult video = AiVideoHelper.createVideo(mouldVideo.getPersonMouldSmId(), mouldVideo.getVoiceMouldSmId(), mouldVideo.getPaperwork()); | |||
| AiVideoResult video = AiVideoHelper.createVideo(personMouldSmId, voiceMouldSmId, paperwork); | |||
| if(video.isSuccess()){ | |||
| videoUpd.setVideoPath(video.getUrl()); | |||
| videoUpd.setVideoTime(video.getDuration()+""); | |||
| videoUpd.setVideoStatus(EnumVideoStatus.success.getCode()); | |||
| videoUpd.setVideoMsg(video.getMsg()); | |||
| videoUpd.setVideoMsg("success"); | |||
| videoUpd.setCreateVideoDate(new Date()); | |||
| this.saveOrUpdate(videoUpd); | |||
| videoUpd.setTitle(mouldVideo.getTitle()); | |||
| this.uploadVideo(videoUpd); | |||
| return new AsyncResult<>(1); | |||
| } | |||
| videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); | |||
| @@ -135,13 +269,14 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||
| @Override | |||
| public void uploadVideo(UserMouldVideo mouldVideo){ | |||
| if(EnumVideoStatus.success.getCode().equals(mouldVideo.getVideoStatus()) | |||
| && StringUtils.isBlank(mouldVideo.getVideoId())){ | |||
| || EnumVideoStatus.upload_fail.getCode().equals(mouldVideo.getVideoStatus())){ | |||
| String url = mouldVideo.getVideoPathUri() + mouldVideo.getVideoPath(); | |||
| VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoPath(mouldVideo.getTitle(), url); | |||
| if(result.isSuccess()){ | |||
| UserMouldVideo videoUpd = new UserMouldVideo(); | |||
| videoUpd.setId(mouldVideo.getId()); | |||
| videoUpd.setVideoId(result.getVideoId()); | |||
| videoUpd.setVideoStatus(EnumVideoStatus.upload_ing.getCode()); | |||
| this.saveOrUpdate(videoUpd); | |||
| } | |||
| } | |||
| @@ -153,13 +288,20 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||
| } | |||
| @Override | |||
| public List<UserMouldVideo> getVideoIdNullList() { | |||
| return userMouldVideoMapper.getVideoIdNullList(); | |||
| public List<UserMouldVideo> getNotUploadList() { | |||
| UserMouldVideo umVideoQ = new UserMouldVideo(); | |||
| List<Integer> videoStatuss = new ArrayList<>(); | |||
| videoStatuss.add(EnumVideoStatus.success.getCode()); | |||
| videoStatuss.add(EnumVideoStatus.upload_fail.getCode()); | |||
| umVideoQ.setVideoStatuss(videoStatuss); | |||
| return userMouldVideoMapper.getSortList(umVideoQ); | |||
| } | |||
| @Override | |||
| public List<UserMouldVideo> getVideoSizeNullList() { | |||
| return userMouldVideoMapper.getVideoSizeNullList(); | |||
| public List<UserMouldVideo> getUpLoadIngList() { | |||
| UserMouldVideo umVideoQ = new UserMouldVideo(); | |||
| umVideoQ.setVideoStatus(EnumVideoStatus.upload_ing.getCode()); | |||
| return userMouldVideoMapper.getSortList(umVideoQ); | |||
| } | |||
| @Override | |||
| @@ -6,14 +6,17 @@ | |||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> | |||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" /> | |||
| <result column="user_id" jdbcType="BIGINT" property="userId"/> | |||
| <result column="type" jdbcType="INTEGER" property="type"/> | |||
| <result column="video_type" jdbcType="INTEGER" property="videoType"/> | |||
| <result column="person_mould_id" jdbcType="BIGINT" property="personMouldId"/> | |||
| <result column="person_mould_sm_id" jdbcType="VARCHAR" property="personMouldSmId"/> | |||
| <result column="person_mould_sm" jdbcType="VARCHAR" property="personMouldSm"/> | |||
| <result column="voice_mould_id" jdbcType="BIGINT" property="voiceMouldId"/> | |||
| <result column="voice_mould_sm_id" jdbcType="VARCHAR" property="voiceMouldSmId"/> | |||
| <result column="voice_mould_sm" jdbcType="VARCHAR" property="voiceMouldSm"/> | |||
| <result column="languages" jdbcType="INTEGER" property="languages"/> | |||
| <result column="paperwork" jdbcType="VARCHAR" property="paperwork"/> | |||
| <result column="background_mould_id" jdbcType="BIGINT" property="backgroundMouldId"/> | |||
| <result column="background_mould_sm_id" jdbcType="VARCHAR" property="backgroundMouldSmId"/> | |||
| <result column="background_id" jdbcType="BIGINT" property="backgroundId"/> | |||
| <result column="background_sm" jdbcType="VARCHAR" property="backgroundSm"/> | |||
| <result column="material_ids" jdbcType="VARCHAR" property="materialIds"/> | |||
| <result column="material_all_json" jdbcType="VARCHAR" property="materialAllJson"/> | |||
| <result column="title" jdbcType="VARCHAR" property="title"/> | |||
| <result column="cover_img" jdbcType="VARCHAR" property="coverImg"/> | |||
| <result column="remark" jdbcType="VARCHAR" property="remark"/> | |||
| @@ -30,8 +33,8 @@ | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `id`, `tenant_id`, `parent_tenant_id`, `user_id`, `type`, | |||
| `person_mould_id`, `person_mould_sm_id`, `voice_mould_id`, `voice_mould_sm_id`, `paperwork`, `background_mould_id`, `background_mould_sm_id`, | |||
| `id`, `tenant_id`, `parent_tenant_id`, `user_id`, `video_type`, | |||
| `person_mould_id`, `person_mould_sm`, `voice_mould_id`, `voice_mould_sm`, `languages`, `paperwork`, `background_id`, `background_sm`,`material_ids`,`material_all_json`, | |||
| `title`, `cover_img`, `remark`, `video_id`, `video_path`, `video_time`, `video_size`, `video_status`, `video_msg`, `create_video_date`, `create_date`, `update_date` | |||
| </sql> | |||
| @@ -53,8 +56,8 @@ | |||
| and `user_id` = #{userId} | |||
| </if> | |||
| <if test=" null != type "> | |||
| and `type` = #{type} | |||
| <if test=" null != videoType "> | |||
| and `video_type` = #{videoType} | |||
| </if> | |||
| <if test=" null != personMouldId "> | |||
| @@ -66,7 +69,7 @@ | |||
| </if> | |||
| <if test=" null != backgroundMouldId "> | |||
| and `background_mould_id` = #{backgroundMouldId} | |||
| and `background_id` = #{backgroundId} | |||
| </if> | |||
| <if test=" null != title and ''!=title"> | |||
| @@ -91,6 +94,13 @@ | |||
| and create_video_date < #{videoEndDate} | |||
| </if> | |||
| <if test=" null != videoStatuss "> | |||
| and video_status in | |||
| <foreach collection="videoStatuss" index="index" item="videoStatusItem" open="(" separator="," close=")"> | |||
| #{videoStatusItem} | |||
| </foreach> | |||
| </if> | |||
| <if test=" null != ids "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| @@ -114,7 +124,7 @@ | |||
| <select id="findCList" parameterType="com.iformall.domain.po.sm.UserMouldVideo" resultMap="BaseResultMap"> | |||
| select | |||
| `id`, `type`, | |||
| `id`, `video_type`, | |||
| `paperwork`, | |||
| `title`, `cover_img`, `remark`, `video_id`, `video_path`, `video_time`, `video_size`, `video_status`, | |||
| `create_video_date`, `create_date`, `update_date` | |||
| @@ -125,25 +135,16 @@ | |||
| <select id="findVideo" parameterType="java.util.HashMap" resultMap="BaseResultMap"> | |||
| select | |||
| `video_id`, `video_path`, `video_time`, `video_size`, `video_status`, `video_msg` | |||
| `video_type`,`video_id`, `video_path`, `video_time`, `video_size`, `video_status`, `video_msg` | |||
| from user_mould_video | |||
| where `id` = #{id} | |||
| </select> | |||
| <select id="getVideoIdNullList" resultMap="BaseResultMap"> | |||
| <select id="getSortList" parameterType="com.iformall.domain.po.sm.UserMouldVideo" resultMap="BaseResultMap"> | |||
| select id,title,video_id,video_path,video_status | |||
| from user_mould_video | |||
| where `is_del` = 0 | |||
| and video_path is not null and video_path != '' | |||
| and (video_id is null or video_id = '') | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||
| <select id="getVideoSizeNullList" resultMap="BaseResultMap"> | |||
| select id,video_id | |||
| from user_mould_video | |||
| where `is_del` = 0 | |||
| and video_id is not null and video_path != '' | |||
| and video_size is null | |||
| </select> | |||
| </mapper> | |||
| @@ -23,7 +23,7 @@ | |||
| <result column="remark" jdbcType="VARCHAR" property="remark"/> | |||
| <result column="mould_sm_id" jdbcType="VARCHAR" property="mouldSmId"/> | |||
| <result column="voice_type" jdbcType="INTEGER" property="voiceType"/> | |||
| <result column="persona_type" jdbcType="INTEGER" property="personaType"/> | |||
| <result column="person_type" jdbcType="INTEGER" property="personType"/> | |||
| <result column="speak_type" jdbcType="INTEGER" property="speakType"/> | |||
| <result column="example_video_id" jdbcType="VARCHAR" property="exampleVideoId"/> | |||
| <result column="status" jdbcType="INTEGER" property="status"/> | |||
| @@ -35,7 +35,7 @@ | |||
| <sql id="allColumns"> | |||
| `id`, `tenant_id`, `parent_tenant_id`, `parent_id`, `count_sub`, `cover_img`, `cover_picture`, `detail_picture`, | |||
| `title`, `sub_title`, `sex`, `age_type`, `languages`, `scene_sign`, `sale_price`, `price`, | |||
| `send_type`, `detail`, `remark`, `mould_sm_id`,`voice_type`,`persona_type`,`speak_type`, `example_video_id`, `status`, `puton_date`, `create_date`, `update_date` | |||
| `send_type`, `detail`, `remark`, `mould_sm_id`,`voice_type`,`person_type`,`speak_type`, `example_video_id`, `status`, `puton_date`, `create_date`, `update_date` | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| @@ -104,8 +104,8 @@ | |||
| and `voice_type` = #{voiceType} | |||
| </if> | |||
| <if test=" null != personaType "> | |||
| and `persona_type` = #{personaType} | |||
| <if test=" null != personType "> | |||
| and `person_type` = #{personType} | |||
| </if> | |||
| <if test=" null != speakType "> | |||
| @@ -144,7 +144,7 @@ | |||
| select | |||
| `id`, `parent_tenant_id`, `parent_id`, `cover_img`, `cover_picture`, | |||
| `title`, `sub_title`, `sex`, `age_type`, `languages`, `scene_sign`, `sale_price`, `price`, | |||
| `send_type`, `mould_sm_id`,`voice_type`,`persona_type`,`speak_type`, `status`,`example_video_id`, `create_date`, `update_date` | |||
| `send_type`, `mould_sm_id`,`voice_type`,`person_type`,`speak_type`, `status`,`example_video_id`, `create_date`, `update_date` | |||
| from voice_mould | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||