Browse Source

//Mould

private_deployment
xhxu 2 years ago
parent
commit
ae32af4a8c
12 changed files with 280 additions and 88 deletions
  1. +6
    -5
      suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java
  2. +1
    -10
      suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java
  3. +67
    -13
      suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java
  4. +8
    -8
      suimangService/src/main/java/com/iformall/domain/po/sm/VoiceMould.java
  5. +4
    -4
      suimangService/src/main/java/com/iformall/enums/EnumPersonType.java
  6. +5
    -1
      suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java
  7. +1
    -1
      suimangService/src/main/java/com/iformall/enums/EnumVoiceType.java
  8. +1
    -2
      suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java
  9. +2
    -2
      suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java
  10. +156
    -14
      suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java
  11. +24
    -23
      suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml
  12. +5
    -5
      suimangService/src/main/resources/mapper/VoiceMouldMapper.xml

+ 6
- 5
suimangAdmin/src/main/java/com/iformall/schedule/VideoSchedule.java View File

@@ -39,7 +39,7 @@ public class VideoSchedule {
/** /**
* 生成视频 * 生成视频
*/ */
@Scheduled(cron = "0 20/30 * * * *?") // 每小时检查一次
@Scheduled(cron = "0 20/30 * * * *?") // 每小时检查一次
public void userVideoCreateSchedule() { public void userVideoCreateSchedule() {
UserMouldVideo userVideo = new UserMouldVideo(); UserMouldVideo userVideo = new UserMouldVideo();
userVideo.setVideoStartDate(DateUtils.getHourDateBefore(2,new Date())); 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() { public void userVideoUploadSchedule() {
List<UserMouldVideo> videos = userMouldVideoService.getVideoIdNullList();
List<UserMouldVideo> videos = userMouldVideoService.getNotUploadList();
if (videos != null && videos.size() > 0) { if (videos != null && videos.size() > 0) {
for (UserMouldVideo video : videos) { for (UserMouldVideo video : videos) {
try { try {
@@ -77,9 +77,9 @@ public class VideoSchedule {
/** /**
* 获取时长和大小 * 获取时长和大小
*/ */
@Scheduled(cron = "0 15/30 * * * *?") // 每小时检查一次
@Scheduled(cron = "0 15/30 * * * *?") // 每小时检查一次
public void userVideoDetailSchedule() { public void userVideoDetailSchedule() {
List<UserMouldVideo> videos = userMouldVideoService.getVideoSizeNullList();
List<UserMouldVideo> videos = userMouldVideoService.getUpLoadIngList();
if (videos != null && videos.size() > 0) { if (videos != null && videos.size() > 0) {
for (UserMouldVideo video : videos) { for (UserMouldVideo video : videos) {
try { try {
@@ -89,6 +89,7 @@ public class VideoSchedule {
&& !"0.0".equals(videoDetail.getDuration())) { && !"0.0".equals(videoDetail.getDuration())) {
video.setVideoTime(videoDetail.getDuration()); video.setVideoTime(videoDetail.getDuration());
video.setVideoSize(videoDetail.getSize()); video.setVideoSize(videoDetail.getSize());
video.setVideoStatus(EnumVideoStatus.upload_success.getCode());
userMouldVideoService.updateById(video); userMouldVideoService.updateById(video);
} }
} catch (Exception e) { } catch (Exception e) {


+ 1
- 10
suimangCApi/src/main/java/com/iformall/controller/UserMouldVideoController.java View File

@@ -74,19 +74,10 @@ public class UserMouldVideoController extends BaseController {
if(mouldVideo == null || !mouldVideo.getUserId().equals(getMemberId())){ if(mouldVideo == null || !mouldVideo.getUserId().equals(getMemberId())){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到用户数据"); 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); return new ResultData(mouldVideo);
} }


@ApiOperation("根据id查询接口")
@ApiOperation("根据id删除接口")
@GetMapping("/del") @GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
public ResultData del(Long id) { public ResultData del(Long id) {


+ 67
- 13
suimangService/src/main/java/com/iformall/domain/po/sm/UserMouldVideo.java View File

@@ -44,30 +44,82 @@ public class UserMouldVideo extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="用户Id",name="userId") @io.swagger.annotations.ApiModelProperty(value="用户Id",name="userId")
private Long 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") @io.swagger.annotations.ApiModelProperty(value="人物模板ID",name="personMouldId")
private Long 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) @TableField(exist = false)
private MouldPatch personMould;
private PersonMould personMould;


@TableField(exist = false)
private List<Long> voiceMouldIds;
@io.swagger.annotations.ApiModelProperty(value="声音模板ID",name="voiceMouldId") @io.swagger.annotations.ApiModelProperty(value="声音模板ID",name="voiceMouldId")
private Long 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) @TableField(exist = false)
private MouldPatch voiceMould;
private VoiceMould voiceMould;


@io.swagger.annotations.ApiModelProperty(value="文案",name="paperwork") @io.swagger.annotations.ApiModelProperty(value="文案",name="paperwork")
private String 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) @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") @io.swagger.annotations.ApiModelProperty(value="名称",name="title")
private String title; private String title;
@@ -106,5 +158,7 @@ public class UserMouldVideo extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate; private Date updateDate;


@TableField(exist = false)
private List<Integer> videoStatuss;
} }

+ 8
- 8
suimangService/src/main/java/com/iformall/domain/po/sm/VoiceMould.java View File

@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.common.SortColumn; import com.iformall.common.SortColumn;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumAgeType; import com.iformall.enums.EnumAgeType;
import com.iformall.enums.EnumPersonaType;
import com.iformall.enums.EnumPersonType;
import com.iformall.enums.EnumSex; import com.iformall.enums.EnumSex;
import com.iformall.enums.EnumSpeakType; import com.iformall.enums.EnumSpeakType;
import lombok.Data; import lombok.Data;
@@ -132,16 +132,16 @@ public class VoiceMould extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="EnumVoiceType",name="voiceType") @io.swagger.annotations.ApiModelProperty(value="EnumVoiceType",name="voiceType")
private Integer 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) @TableField(exist = false)
private String personaTypeStr;
private String personTypeStr;
public String getPersonaTypeStr(){ public String getPersonaTypeStr(){
EnumPersonaType anEnum = EnumPersonaType.getEnum(this.personaType);
EnumPersonType anEnum = EnumPersonType.getEnum(this.personType);
if(anEnum != null){ if(anEnum != null){
personaTypeStr = anEnum.getMessage();
personTypeStr = anEnum.getMessage();
} }
return personaTypeStr;
return personTypeStr;
} }


@io.swagger.annotations.ApiModelProperty(value="EnumSpeakType",name="speakType") @io.swagger.annotations.ApiModelProperty(value="EnumSpeakType",name="speakType")
@@ -149,7 +149,7 @@ public class VoiceMould extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private String speakTypeStr; private String speakTypeStr;
public String getSpeakTypeStr(){ public String getSpeakTypeStr(){
EnumSpeakType anEnum = EnumSpeakType.getEnum(this.personaType);
EnumSpeakType anEnum = EnumSpeakType.getEnum(this.speakType);
if(anEnum != null){ if(anEnum != null){
speakTypeStr = anEnum.getMessage(); speakTypeStr = anEnum.getMessage();
} }


suimangService/src/main/java/com/iformall/enums/EnumPersonaType.java → suimangService/src/main/java/com/iformall/enums/EnumPersonType.java View File

@@ -1,6 +1,6 @@
package com.iformall.enums; package com.iformall.enums;


public enum EnumPersonaType {
public enum EnumPersonType {
/** /**
* | Boy | 角色风格 | 男孩 | 声音模仿男孩 | * | Boy | 角色风格 | 男孩 | 声音模仿男孩 |
* | Girl | 角色风格 | 女孩 | 声音模仿女孩 | * | Girl | 角色风格 | 女孩 | 声音模仿女孩 |
@@ -25,8 +25,8 @@ public enum EnumPersonaType {
YoungAdultMale(8,"男青年","YoungAdultMale"), 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)) { if (value.getCode().equals(code)) {
return value; return value;
} }
@@ -34,7 +34,7 @@ public enum EnumPersonaType {
return null; return null;
} }


private EnumPersonaType(Integer code, String message, String type) {
private EnumPersonType(Integer code, String message, String type) {
this.code = code; this.code = code;
this.message = message; this.message = message;
this.type = type; this.type = type;

+ 5
- 1
suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java View File

@@ -11,8 +11,12 @@ public enum EnumVideoStatus {


draft(0, "草稿"), draft(0, "草稿"),
ing(1, "生成视频中"), ing(1, "生成视频中"),
success(2, "生成视频成功"),
success(2,"生成视频成功"),
fail(3, "生成视频失败"), fail(3, "生成视频失败"),
upload_ing(4,"上传视频中"),
upload_success(5,"上传视频成功"),
upload_fail(6,"上传视频失败")

; ;


public static EnumVideoStatus getEnum(Integer code) { public static EnumVideoStatus getEnum(Integer code) {


+ 1
- 1
suimangService/src/main/java/com/iformall/enums/EnumVoiceType.java View File

@@ -6,7 +6,7 @@ package com.iformall.enums;
public enum EnumVoiceType { public enum EnumVoiceType {


default_0(0, "默认"), default_0(0, "默认"),
persona(1,"角色风格"),
person(1,"角色风格"),
speak(2, "说话风格"), speak(2, "说话风格"),
; ;




+ 1
- 2
suimangService/src/main/java/com/iformall/mapper/UserMouldVideoMapper.java View File

@@ -21,7 +21,6 @@ public interface UserMouldVideoMapper extends CommonMapper<UserMouldVideo, Long>


UserMouldVideo findVideo(@Param("id")Long id); UserMouldVideo findVideo(@Param("id")Long id);


List<UserMouldVideo> getVideoIdNullList();
List<UserMouldVideo> getSortList(UserMouldVideo record);


List<UserMouldVideo> getVideoSizeNullList();
} }

+ 2
- 2
suimangService/src/main/java/com/iformall/service/sm/UserMouldVideoService.java View File

@@ -51,9 +51,9 @@ public interface UserMouldVideoService {


UserMouldVideo findVideo(Long id); UserMouldVideo findVideo(Long id);


List<UserMouldVideo> getVideoIdNullList();
List<UserMouldVideo> getNotUploadList();


List<UserMouldVideo> getVideoSizeNullList();
List<UserMouldVideo> getUpLoadIngList();


int updateById(UserMouldVideo video); int updateById(UserMouldVideo video);




+ 156
- 14
suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java View File

@@ -1,13 +1,24 @@
package com.iformall.service.sm.impl; 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.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.ResultData; 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.UserMouldVideo;
import com.iformall.domain.po.sm.VoiceMould;
import com.iformall.enums.EnumMouldPatchType;
import com.iformall.enums.EnumVideoStatus; import com.iformall.enums.EnumVideoStatus;
import com.iformall.enums.EnumVoiceType;
import com.iformall.mapper.UserMouldVideoMapper; 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.UserMouldVideoService;
import com.iformall.service.sm.VoiceMouldService;
import com.iformall.sm.AiVideoHelper; import com.iformall.sm.AiVideoHelper;
import com.iformall.sm.AiVideoResult; import com.iformall.sm.AiVideoResult;
import com.iformall.video.VideoFactory; import com.iformall.video.VideoFactory;
@@ -21,6 +32,7 @@ import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.Future; import java.util.concurrent.Future;
@@ -33,6 +45,15 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
@Autowired @Autowired
UserMouldVideoMapper userMouldVideoMapper; UserMouldVideoMapper userMouldVideoMapper;


@Autowired
PersonMouldService personMouldService;

@Autowired
VoiceMouldService voiceMouldService;

@Autowired
MaterialMouldService materialMouldService;

@Autowired @Autowired
VideoFactory videoFactory; VideoFactory videoFactory;


@@ -62,6 +83,90 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {


@Override @Override
public ResultData saveOrUpdate(UserMouldVideo record) { 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(); Date now = new Date();
if (record.getId() == null) { if (record.getId() == null) {
@@ -86,35 +191,64 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
@Async @Async
@Override @Override
public Future createVideo(UserMouldVideo mouldVideo) { public Future createVideo(UserMouldVideo mouldVideo) {
boolean isCreate = false;
String msg = "";
UserMouldVideo videoUpd = new UserMouldVideo(); UserMouldVideo videoUpd = new UserMouldVideo();
videoUpd.setId(mouldVideo.getId()); 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.setVideoStatus(EnumVideoStatus.fail.getCode());
videoUpd.setVideoMsg("未找到人物模板数据");
videoUpd.setVideoMsg(msg);
this.saveOrUpdate(videoUpd); this.saveOrUpdate(videoUpd);
return new AsyncResult<>(0); 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.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); this.saveOrUpdate(videoUpd);
return new AsyncResult<>(0); return new AsyncResult<>(0);
} }


try{ try{
AiVideoResult video = AiVideoHelper.createVideo(mouldVideo.getPersonMouldSmId(), mouldVideo.getVoiceMouldSmId(), mouldVideo.getPaperwork());
AiVideoResult video = AiVideoHelper.createVideo(personMouldSmId, voiceMouldSmId, paperwork);
if(video.isSuccess()){ if(video.isSuccess()){
videoUpd.setVideoPath(video.getUrl()); videoUpd.setVideoPath(video.getUrl());
videoUpd.setVideoTime(video.getDuration()+""); videoUpd.setVideoTime(video.getDuration()+"");
videoUpd.setVideoStatus(EnumVideoStatus.success.getCode()); videoUpd.setVideoStatus(EnumVideoStatus.success.getCode());
videoUpd.setVideoMsg(video.getMsg());
videoUpd.setVideoMsg("success");
videoUpd.setCreateVideoDate(new Date()); videoUpd.setCreateVideoDate(new Date());
this.saveOrUpdate(videoUpd); this.saveOrUpdate(videoUpd);

videoUpd.setTitle(mouldVideo.getTitle());
this.uploadVideo(videoUpd);
return new AsyncResult<>(1); return new AsyncResult<>(1);
} }
videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode());
@@ -135,13 +269,14 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
@Override @Override
public void uploadVideo(UserMouldVideo mouldVideo){ public void uploadVideo(UserMouldVideo mouldVideo){
if(EnumVideoStatus.success.getCode().equals(mouldVideo.getVideoStatus()) if(EnumVideoStatus.success.getCode().equals(mouldVideo.getVideoStatus())
&& StringUtils.isBlank(mouldVideo.getVideoId())){
|| EnumVideoStatus.upload_fail.getCode().equals(mouldVideo.getVideoStatus())){
String url = mouldVideo.getVideoPathUri() + mouldVideo.getVideoPath(); String url = mouldVideo.getVideoPathUri() + mouldVideo.getVideoPath();
VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoPath(mouldVideo.getTitle(), url); VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoPath(mouldVideo.getTitle(), url);
if(result.isSuccess()){ if(result.isSuccess()){
UserMouldVideo videoUpd = new UserMouldVideo(); UserMouldVideo videoUpd = new UserMouldVideo();
videoUpd.setId(mouldVideo.getId()); videoUpd.setId(mouldVideo.getId());
videoUpd.setVideoId(result.getVideoId()); videoUpd.setVideoId(result.getVideoId());
videoUpd.setVideoStatus(EnumVideoStatus.upload_ing.getCode());
this.saveOrUpdate(videoUpd); this.saveOrUpdate(videoUpd);
} }
} }
@@ -153,13 +288,20 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
} }


@Override @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 @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 @Override


+ 24
- 23
suimangService/src/main/resources/mapper/UserMouldVideoMapper.xml View File

@@ -6,14 +6,17 @@
<result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> <result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/>
<result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" /> <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId" />
<result column="user_id" jdbcType="BIGINT" property="userId"/> <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_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_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="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="title" jdbcType="VARCHAR" property="title"/>
<result column="cover_img" jdbcType="VARCHAR" property="coverImg"/> <result column="cover_img" jdbcType="VARCHAR" property="coverImg"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/> <result column="remark" jdbcType="VARCHAR" property="remark"/>
@@ -30,8 +33,8 @@
</resultMap> </resultMap>


<sql id="allColumns"> <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` `title`, `cover_img`, `remark`, `video_id`, `video_path`, `video_time`, `video_size`, `video_status`, `video_msg`, `create_video_date`, `create_date`, `update_date`
</sql> </sql>


@@ -53,8 +56,8 @@
and `user_id` = #{userId} and `user_id` = #{userId}
</if> </if>


<if test=" null != type ">
and `type` = #{type}
<if test=" null != videoType ">
and `video_type` = #{videoType}
</if> </if>


<if test=" null != personMouldId "> <if test=" null != personMouldId ">
@@ -66,7 +69,7 @@
</if> </if>


<if test=" null != backgroundMouldId "> <if test=" null != backgroundMouldId ">
and `background_mould_id` = #{backgroundMouldId}
and `background_id` = #{backgroundId}
</if> </if>


<if test=" null != title and ''!=title"> <if test=" null != title and ''!=title">
@@ -91,6 +94,13 @@
and create_video_date &lt; #{videoEndDate} and create_video_date &lt; #{videoEndDate}
</if> </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 "> <if test=" null != ids ">
and id in and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> <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="findCList" parameterType="com.iformall.domain.po.sm.UserMouldVideo" resultMap="BaseResultMap">
select select
`id`, `type`,
`id`, `video_type`,
`paperwork`, `paperwork`,
`title`, `cover_img`, `remark`, `video_id`, `video_path`, `video_time`, `video_size`, `video_status`, `title`, `cover_img`, `remark`, `video_id`, `video_path`, `video_time`, `video_size`, `video_status`,
`create_video_date`, `create_date`, `update_date` `create_video_date`, `create_date`, `update_date`
@@ -125,25 +135,16 @@


<select id="findVideo" parameterType="java.util.HashMap" resultMap="BaseResultMap"> <select id="findVideo" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select 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 from user_mould_video
where `id` = #{id} where `id` = #{id}
</select> </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 select id,title,video_id,video_path,video_status
from user_mould_video 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>


<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> </mapper>

+ 5
- 5
suimangService/src/main/resources/mapper/VoiceMouldMapper.xml View File

@@ -23,7 +23,7 @@
<result column="remark" jdbcType="VARCHAR" property="remark"/> <result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="mould_sm_id" jdbcType="VARCHAR" property="mouldSmId"/> <result column="mould_sm_id" jdbcType="VARCHAR" property="mouldSmId"/>
<result column="voice_type" jdbcType="INTEGER" property="voiceType"/> <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="speak_type" jdbcType="INTEGER" property="speakType"/>
<result column="example_video_id" jdbcType="VARCHAR" property="exampleVideoId"/> <result column="example_video_id" jdbcType="VARCHAR" property="exampleVideoId"/>
<result column="status" jdbcType="INTEGER" property="status"/> <result column="status" jdbcType="INTEGER" property="status"/>
@@ -35,7 +35,7 @@
<sql id="allColumns"> <sql id="allColumns">
`id`, `tenant_id`, `parent_tenant_id`, `parent_id`, `count_sub`, `cover_img`, `cover_picture`, `detail_picture`, `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`, `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>


<sql id="dynamicWhereConditions"> <sql id="dynamicWhereConditions">
@@ -104,8 +104,8 @@
and `voice_type` = #{voiceType} and `voice_type` = #{voiceType}
</if> </if>


<if test=" null != personaType ">
and `persona_type` = #{personaType}
<if test=" null != personType ">
and `person_type` = #{personType}
</if> </if>


<if test=" null != speakType "> <if test=" null != speakType ">
@@ -144,7 +144,7 @@
select select
`id`, `parent_tenant_id`, `parent_id`, `cover_img`, `cover_picture`, `id`, `parent_tenant_id`, `parent_id`, `cover_img`, `cover_picture`,
`title`, `sub_title`, `sex`, `age_type`, `languages`, `scene_sign`, `sale_price`, `price`, `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 from voice_mould
<include refid="dynamicWhereConditions"/> <include refid="dynamicWhereConditions"/>
</select> </select>


Loading…
Cancel
Save