diff --git a/open-api/src/main/java/com/iformall/controller/BaseController.java b/open-api/src/main/java/com/iformall/controller/BaseController.java index 676828e..b4814f0 100644 --- a/open-api/src/main/java/com/iformall/controller/BaseController.java +++ b/open-api/src/main/java/com/iformall/controller/BaseController.java @@ -64,4 +64,9 @@ public class BaseController { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); return IPUtil.getIpAddr(request); } + + public Long getServiceId() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + return (Long) request.getAttribute(Constant.SERVICE_ID); + } } diff --git a/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java b/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java index d8c8daa..af542c2 100644 --- a/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java +++ b/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java @@ -1,13 +1,11 @@ package com.iformall.controller.ai; import com.iformall.common.ResultData; -import com.iformall.domain.po.sm.UserMouldVideo; +import com.iformall.controller.BaseController; import com.iformall.dto.GenerateVideoDTO; import com.iformall.dto.PreviewVideoDTO; import com.iformall.service.AiVideoService; -import com.iformall.sm.AiPreviewParam; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -18,13 +16,13 @@ import org.springframework.web.bind.annotation.RestController; @Api(tags = "视频相关api") @RestController @RequestMapping("/ai/video") -public class AiVideoController { +public class AiVideoController extends BaseController { @Autowired private AiVideoService aiVideoService; @ApiOperation("预览") - @PostMapping("/preview") + @PostMapping("/previewVideo") public ResultData previewVideo(@RequestBody PreviewVideoDTO dto) { return new ResultData(aiVideoService.previewVideo(PreviewVideoDTO.mappingParam(dto))); } @@ -32,6 +30,6 @@ public class AiVideoController { @ApiOperation("生成视频") @PostMapping("generateVideo") public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) { - return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId())); + return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId(), getServiceId())); } } diff --git a/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 76fc99b..11bd0fd 100644 --- a/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -50,6 +50,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(apiConfig == null){ throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"非法请求"); } + request.setAttribute(Constant.SERVICE_ID, apiConfig.getServiceId()); request.setAttribute(Constant.APP_Id, apiConfig.getAppId()); request.setAttribute(Constant.TENANT_ID, apiConfig.getTenantId()); request.setAttribute(Constant.PARENT_TENANT_ID, apiConfig.getParentTenantId()); @@ -77,7 +78,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(timeStamp)){ throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"缺少timeStamp"); } - long timestampDate = Long.valueOf(timeStamp) + 1000*60*5;//五分钟有效 + long timestampDate = Long.parseLong(timeStamp) + 1000*60*5;//五分钟有效 long currDate = System.currentTimeMillis(); // 请求过期 if (timestampDate < currDate) { @@ -85,9 +86,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } for (String key:notKeys) { - if(parameterMap.containsKey(key)){ - parameterMap.remove(key); - } + parameterMap.remove(key); } String newSignature = SignUtils.getSign(apiConfig.getSignKey(), parameterMap, "MD5"); diff --git a/open-api/src/main/java/com/iformall/service/AiVideoService.java b/open-api/src/main/java/com/iformall/service/AiVideoService.java index f984f32..16577f8 100644 --- a/open-api/src/main/java/com/iformall/service/AiVideoService.java +++ b/open-api/src/main/java/com/iformall/service/AiVideoService.java @@ -23,5 +23,5 @@ public interface AiVideoService { * @param aiVideoParam * @return {@link AiVideoResult} */ - AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId); + AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId, Long serviceId); } diff --git a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java b/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java index 5c90403..19ba4c7 100644 --- a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java +++ b/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java @@ -1,12 +1,14 @@ package com.iformall.service.impl; import com.iformall.common.ErrorCode; +import com.iformall.domain.dto.neuver.SaveServiceVideoRecordDTO; import com.iformall.domain.po.sm.UserMouldVideo; import com.iformall.dto.GenerateVideoDTO; import com.iformall.dto.PreviewVideoDTO; import com.iformall.enums.EnumVideoStatus; import com.iformall.exception.BizException; import com.iformall.service.AiVideoService; +import com.iformall.service.sm.ServiceVideoRecordService; import com.iformall.service.sm.UserMouldVideoService; import com.iformall.service.sm.VoiceInfoService; import com.iformall.sm.*; @@ -26,10 +28,10 @@ import java.util.Optional; @Service public class AiVideoServiceImpl implements AiVideoService { - @Autowired - private VoiceInfoService voiceInfoService; @Autowired private UserMouldVideoService userMouldVideoService; + @Autowired + private ServiceVideoRecordService serviceVideoRecordService; @Override public AiPreviewResult previewVideo(AiPreviewParam aiPreviewParam) { @@ -37,7 +39,7 @@ public class AiVideoServiceImpl implements AiVideoService { } @Override - public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId) { + public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId, Long serviceId) { // // 参数校验 // UserMouldVideo userMouldVideo = Optional.ofNullable(userMouldVideoService.getById(dto.getId())).orElseThrow(() -> new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未找到用户数据")); // if (StringUtils.isBlank(userMouldVideo.getPaperwork())) { @@ -60,6 +62,11 @@ public class AiVideoServiceImpl implements AiVideoService { AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam, taskId); if (video.isSuccess()) { // 记录时长 + SaveServiceVideoRecordDTO dto = SaveServiceVideoRecordDTO.builder() + .serviceId(serviceId) + .videoTime(String.valueOf(video.getDuration())) + .build(); + serviceVideoRecordService.saveServiceVideoRecord(dto); } return video; } diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java index a588e77..8f83fde 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java @@ -9,7 +9,7 @@ import lombok.Data; import java.util.Date; -@ApiModel(value = "获取语种") +@ApiModel(value = "新增接入商") @Data public class SaveServiceInfoDTO { @ApiModelProperty("客户名称") diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java new file mode 100644 index 0000000..a9abc44 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java @@ -0,0 +1,30 @@ +package com.iformall.domain.dto.neuver; + +import com.iformall.common.IdWorker; +import com.iformall.domain.po.sm.ServiceVideoRecord; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +@ApiModel(value = "新增生成视频时长记录") +@Data +@Builder +public class SaveServiceVideoRecordDTO { + @ApiModelProperty("接入商标识") + private Long serviceId; + @ApiModelProperty("视频时长") + private String videoTime; + + public static ServiceVideoRecord mapping(SaveServiceVideoRecordDTO dto) { + ServiceVideoRecord serviceVideoRecord = new ServiceVideoRecord(); + serviceVideoRecord.setId(IdWorker.get().nextId()); + serviceVideoRecord.setCreateTime(new Date()); + serviceVideoRecord.setUpdateTime(new Date()); + serviceVideoRecord.setServiceId(dto.getServiceId()); + serviceVideoRecord.setVideoTime(dto.getVideoTime()); + return serviceVideoRecord; + } +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/WxThirdPartyApi.java b/suimangService/src/main/java/com/iformall/domain/po/WxThirdPartyApi.java index 337f4c6..ad8234f 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/WxThirdPartyApi.java +++ b/suimangService/src/main/java/com/iformall/domain/po/WxThirdPartyApi.java @@ -2,6 +2,7 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -52,5 +53,8 @@ public class WxThirdPartyApi extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="",name="tpId") private String tpId; + + @ApiModelProperty("接入商id") + private Long serviceId; } diff --git a/suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java b/suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java index cc17804..40652d2 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/ServiceVideoRecordService.java @@ -1,4 +1,15 @@ package com.iformall.service.sm; +import com.iformall.domain.dto.neuver.SaveServiceVideoRecordDTO; + +/** + * @author xmzhao71 + * @date 2023-10-20 + */ public interface ServiceVideoRecordService { + + /** + * @param dto + */ + void saveServiceVideoRecord(SaveServiceVideoRecordDTO dto); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java index fcb83a8..a60afbc 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceVideoRecordServiceImpl.java @@ -1,8 +1,20 @@ package com.iformall.service.sm.impl; +import com.iformall.domain.dto.neuver.SaveServiceVideoRecordDTO; +import com.iformall.domain.po.sm.ServiceVideoRecord; +import com.iformall.mapper.ServiceVideoRecordMapper; import com.iformall.service.sm.ServiceVideoRecordService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ServiceVideoRecordServiceImpl implements ServiceVideoRecordService { + + @Autowired + private ServiceVideoRecordMapper serviceVideoRecordMapper; + + @Override + public void saveServiceVideoRecord(SaveServiceVideoRecordDTO dto) { + serviceVideoRecordMapper.insert(SaveServiceVideoRecordDTO.mapping(dto)); + } } diff --git a/suimangService/src/main/java/com/iformall/utils/Constant.java b/suimangService/src/main/java/com/iformall/utils/Constant.java index a5236ed..eb25613 100644 --- a/suimangService/src/main/java/com/iformall/utils/Constant.java +++ b/suimangService/src/main/java/com/iformall/utils/Constant.java @@ -69,7 +69,8 @@ public class Constant { public static final String APP_Id = "APP_Id"; public static final String APP_NAME = "APP_NAME"; public static final String APP_INFO = "APPINFO"; - + public static final String SERVICE_ID = "SERVICE_ID"; + public static final String LOGIN_B_USER_KEY = "LOGIN_B_USER_KEY";