xhxu 1 year ago
parent
commit
f5dac01eea
15 changed files with 307 additions and 22 deletions
  1. +1
    -2
      open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java
  2. +11
    -0
      open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java
  3. +6
    -2
      open-api/src/main/java/com/iformall/service/AiVideoService.java
  4. +27
    -18
      open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java
  5. +15
    -0
      suimangService/src/main/java/com/iformall/common/CommonConstant.java
  6. +36
    -0
      suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java
  7. +66
    -0
      suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java
  8. +41
    -0
      suimangService/src/main/java/com/iformall/domain/po/sm/ServiceVideoRecord.java
  9. +7
    -0
      suimangService/src/main/java/com/iformall/domain/vo/neuver/PageServiceInfoVO.java
  10. +7
    -0
      suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java
  11. +8
    -0
      suimangService/src/main/java/com/iformall/mapper/ServiceVideoRecordMapper.java
  12. +30
    -0
      suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java
  13. +4
    -0
      suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java
  14. +40
    -0
      suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java
  15. +8
    -0
      suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java

+ 1
- 2
open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java View File

@@ -32,7 +32,6 @@ public class AiVideoController {
@ApiOperation("生成视频")
@PostMapping("generateVideo")
public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) {
aiVideoService.generateVideo(dto);
return new ResultData();
return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId()));
}
}

+ 11
- 0
open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java View File

@@ -1,5 +1,6 @@
package com.iformall.dto;

import com.iformall.sm.AiVideoParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -9,4 +10,14 @@ import lombok.Data;
public class GenerateVideoDTO {
@ApiModelProperty(value = "视频唯一标识")
private Long id;
@ApiModelProperty(value = "生成视频参数")
private AiVideoParam aiVideoParam;


public static GenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) {
GenerateVideoDTO dto = new GenerateVideoDTO();
dto.setId(id);
dto.setAiVideoParam(aiVideoParam);
return dto;
}
}

+ 6
- 2
open-api/src/main/java/com/iformall/service/AiVideoService.java View File

@@ -3,6 +3,8 @@ package com.iformall.service;
import com.iformall.dto.GenerateVideoDTO;
import com.iformall.dto.PreviewVideoDTO;
import com.iformall.sm.AiPreviewParam;
import com.iformall.sm.AiVideoParam;
import com.iformall.sm.AiVideoResult;

/**
* ai视频服务
@@ -13,10 +15,12 @@ import com.iformall.sm.AiPreviewParam;
public interface AiVideoService {

Double previewVideo(PreviewVideoDTO dto);

/**
* 生成视频
*
* @param dto
* @param aiVideoParam
* @return {@link AiVideoResult}
*/
void generateVideo(GenerateVideoDTO dto);
AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId);
}

+ 27
- 18
open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java View File

@@ -9,6 +9,9 @@ import com.iformall.exception.BizException;
import com.iformall.service.AiVideoService;
import com.iformall.service.sm.UserMouldVideoService;
import com.iformall.service.sm.VoiceInfoService;
import com.iformall.sm.AiVideoHelper;
import com.iformall.sm.AiVideoParam;
import com.iformall.sm.AiVideoResult;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,25 +39,31 @@ public class AiVideoServiceImpl implements AiVideoService {
}

@Override
public void generateVideo(GenerateVideoDTO dto) {
// 参数校验
UserMouldVideo userMouldVideo = Optional.ofNullable(userMouldVideoService.getById(dto.getId())).orElseThrow(() -> new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未找到用户数据"));
if (StringUtils.isBlank(userMouldVideo.getPaperwork())) {
throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未填写视频文案");
}
if (EnumVideoStatus.ing.getCode().equals(userMouldVideo.getVideoStatus())
|| EnumVideoStatus.success.getCode().equals(userMouldVideo.getVideoStatus())
|| EnumVideoStatus.upload_ing.getCode().equals(userMouldVideo.getVideoStatus())
|| EnumVideoStatus.upload_fail.getCode().equals(userMouldVideo.getVideoStatus())) {
throw new BizException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "视频生成中");
}
if (EnumVideoStatus.upload_success.getCode().equals(userMouldVideo.getVideoStatus())) {
throw new BizException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "视频已生成完成");
}
public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId) {
// // 参数校验
// UserMouldVideo userMouldVideo = Optional.ofNullable(userMouldVideoService.getById(dto.getId())).orElseThrow(() -> new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未找到用户数据"));
// if (StringUtils.isBlank(userMouldVideo.getPaperwork())) {
// throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未填写视频文案");
// }
// if (EnumVideoStatus.ing.getCode().equals(userMouldVideo.getVideoStatus())
// || EnumVideoStatus.success.getCode().equals(userMouldVideo.getVideoStatus())
// || EnumVideoStatus.upload_ing.getCode().equals(userMouldVideo.getVideoStatus())
// || EnumVideoStatus.upload_fail.getCode().equals(userMouldVideo.getVideoStatus())) {
// throw new BizException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "视频生成中");
// }
// if (EnumVideoStatus.upload_success.getCode().equals(userMouldVideo.getVideoStatus())) {
// throw new BizException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "视频已生成完成");
// }
//
// // 更新视频信息
// updateUserMouldVideo(userMouldVideo);
// userMouldVideoService.createVideo(userMouldVideo);

// 更新视频信息
updateUserMouldVideo(userMouldVideo);
userMouldVideoService.createVideo(userMouldVideo);
AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam, taskId);
if (video.isSuccess()) {
// 记录时长
}
return video;
}

private void updateUserMouldVideo(UserMouldVideo userMouldVideo) {


+ 15
- 0
suimangService/src/main/java/com/iformall/common/CommonConstant.java View File

@@ -0,0 +1,15 @@
package com.iformall.common;

public interface CommonConstant {
/**
* 状态(0:锁定,1:正常)
*/
Integer STATUS_NORMAL = 1;
Integer STATUS_ABNORMAL = 0;

/**
* 删除状态(0:未删除,1:已删除)
*/
Integer DEL_FLAG_DELETED = 1;
Integer DEL_FLAG_NORMAL = 0;
}

+ 36
- 0
suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java View File

@@ -0,0 +1,36 @@
package com.iformall.domain.dto.neuver;

import com.iformall.common.CommonConstant;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.sm.ServiceInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@ApiModel(value = "获取语种")
@Data
public class SaveServiceInfoDTO {
@ApiModelProperty("客户名称")
private String name;
@ApiModelProperty("所在地址")
private String address;
@ApiModelProperty("客户唯一凭证,api接入需提供")
private String code;
@ApiModelProperty("接入方式(1:api接入,2:私有化接入)")
private Integer type;

public static ServiceInfo mapping(SaveServiceInfoDTO dto) {
ServiceInfo serviceInfo = new ServiceInfo();
serviceInfo.setId(IdWorker.get().nextId());
serviceInfo.setCreateTime(new Date());
serviceInfo.setUpdateTime(new Date());
serviceInfo.setName(dto.getName());
serviceInfo.setAddress(dto.getAddress());
serviceInfo.setCode(dto.getCode());
serviceInfo.setType(dto.getType());
serviceInfo.setStatus(CommonConstant.STATUS_NORMAL);
return serviceInfo;
}
}

+ 66
- 0
suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java View File

@@ -0,0 +1,66 @@
package com.iformall.domain.po.sm;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;

/**
* 接入商实体
*
* @author xmzhao71
* @date 2023-10-19
*/
@TableName(value = "service_info")
@Data
public class ServiceInfo {

/**
* 接入商id,唯一标识
*/
@TableField("id")
private Long id;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField("update_time")
private Date updateTime;
/**
* 客户名称
*/
@TableField("name")
private String name;
/**
* 所在地址
*/
@TableField("address")
private String address;
/**
* 客户唯一凭证,api接入需提供
*/
@TableField("code")
private String code;
/**
* 接入方式(1:api接入,2:私有化接入)
*/
@TableField("type")
private Integer type;
/**
* 状态(0:锁定,1:正常)
*/
@TableField("status")
private Integer status;
/**
* 删除状态(0:未删除,1:已删除)
*/
@TableField("del_flag")
private Integer delFlag;
}

+ 41
- 0
suimangService/src/main/java/com/iformall/domain/po/sm/ServiceVideoRecord.java View File

@@ -0,0 +1,41 @@
package com.iformall.domain.po.sm;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
* @author xmzhao71
* @date 2023-10-19
*/
@TableName(value = "service_video_record")
@Data
public class ServiceVideoRecord {
/**
* 主键id
*/
@TableField("id")
private Long id;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField("update_time")
private Date updateTime;
/**
* 接入商标识
*/
@TableField("service_id")
private Long serviceId;
/**
* 视频时长
*/
@TableField("video_time")
private String videoTime;
}

+ 7
- 0
suimangService/src/main/java/com/iformall/domain/vo/neuver/PageServiceInfoVO.java View File

@@ -0,0 +1,7 @@
package com.iformall.domain.vo.neuver;

import lombok.Data;

@Data
public class PageServiceInfoVO {
}

+ 7
- 0
suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java View File

@@ -0,0 +1,7 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.sm.ServiceInfo;

public interface ServiceInfoMapper extends CommonMapper<ServiceInfo, Long> {
}

+ 8
- 0
suimangService/src/main/java/com/iformall/mapper/ServiceVideoRecordMapper.java View File

@@ -0,0 +1,8 @@
package com.iformall.mapper;

import com.iformall.common.CommonMapper;
import com.iformall.domain.po.sm.ServiceInfo;
import com.iformall.domain.po.sm.ServiceVideoRecord;

public interface ServiceVideoRecordMapper extends CommonMapper<ServiceVideoRecord, Long> {
}

+ 30
- 0
suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java View File

@@ -0,0 +1,30 @@
package com.iformall.service.sm;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.dto.neuver.SaveServiceInfoDTO;
import com.iformall.domain.vo.neuver.PageServiceInfoVO;

/**
* 接入商service
*
* @author xmzhao71
* @date 2023-10-19
*/
public interface ServiceInfoService {

/**
* 创建接入商
*
* @param dto
*/
void saveServiceInfo(SaveServiceInfoDTO dto);

/**
* 接入商分页查询
*
* @param pageNum
* @param pageSize
* @return {@link PageInfo}<{@link PageServiceInfoVO}>
*/
PageInfo<PageServiceInfoVO> pageServiceInfo(Integer pageNum, Integer pageSize);
}

+ 4
- 0
suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java View File

@@ -0,0 +1,4 @@
package com.iformall.service.sm;

public interface ServiceVideoRecordService {
}

+ 40
- 0
suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java View File

@@ -0,0 +1,40 @@
package com.iformall.service.sm.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.CommonConstant;
import com.iformall.common.ErrorCode;
import com.iformall.domain.dto.neuver.SaveServiceInfoDTO;
import com.iformall.domain.po.sm.ServiceInfo;
import com.iformall.domain.vo.neuver.PageServiceInfoVO;
import com.iformall.exception.BizException;
import com.iformall.mapper.ServiceInfoMapper;
import com.iformall.service.sm.ServiceInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
public class ServiceInfoServiceImpl implements ServiceInfoService {

@Autowired
private ServiceInfoMapper serviceInfoMapper;

@Override
public void saveServiceInfo(SaveServiceInfoDTO dto) {
// 校验
ServiceInfo serviceInfo = serviceInfoMapper.selectOne(new LambdaQueryWrapper<ServiceInfo>()
.eq(ServiceInfo::getDelFlag, CommonConstant.DEL_FLAG_NORMAL)
.eq(ServiceInfo::getCode, dto.getCode()));
Optional.ofNullable(serviceInfo).orElseThrow(() -> new BizException(ErrorCode.CODE_ALREADY_EXISTS));

serviceInfoMapper.insert(SaveServiceInfoDTO.mapping(dto));
}

@Override
public PageInfo<PageServiceInfoVO> pageServiceInfo(Integer pageNum, Integer pageSize) {
return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> serviceInfoMapper.selectList(null));
}
}

+ 8
- 0
suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java View File

@@ -0,0 +1,8 @@
package com.iformall.service.sm.impl;

import com.iformall.service.sm.ServiceVideoRecordService;
import org.springframework.stereotype.Service;

@Service
public class ServiceVideoRecordServiceImpl implements ServiceVideoRecordService {
}

Loading…
Cancel
Save