TASK:1. 通过定时任务,补偿获取第三方api的运行结果;
2. pose 生成,对使用万相模型的生成限流,最大支持5个并发 3. Slogan限流,一分钟内,最多接收3个请求
This commit is contained in:
@@ -293,7 +293,7 @@ public class GenerateConsumer {
|
|||||||
} else {
|
} else {
|
||||||
// 修改redis中的数据状态为exception
|
// 修改redis中的数据状态为exception
|
||||||
String key = generateResultKey + ":" + generateResult.get("tasks_id");
|
String key = generateResultKey + ":" + generateResult.get("tasks_id");
|
||||||
generateService.updatePoseTransferStatus(generateResult.get("tasks_id"), "Fail");
|
generateService.updatePoseTransferStatus(generateResult.get("tasks_id"), "Fail", null);
|
||||||
redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.get("tasks_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.get("tasks_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
||||||
// 将异常信息存到exception中
|
// 将异常信息存到exception中
|
||||||
HashMap<String, String> exceptionInfo = new HashMap<>();
|
HashMap<String, String> exceptionInfo = new HashMap<>();
|
||||||
@@ -529,7 +529,7 @@ public class GenerateConsumer {
|
|||||||
} else {
|
} else {
|
||||||
// 修改redis中的数据状态为exception
|
// 修改redis中的数据状态为exception
|
||||||
String key = generateResultKey + ":" + generateResult.getString("task_id");
|
String key = generateResultKey + ":" + generateResult.getString("task_id");
|
||||||
generateService.updatePoseTransferStatus(generateResult.getString("task_id"), "Fail");
|
generateService.updatePoseTransferStatus(generateResult.getString("task_id"), "Fail", null);
|
||||||
redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.getString("task_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
redisUtil.addToString(key, new Gson().toJson(new PoseTransformationVO(null, generateResult.getString("task_id"),null, null, null, (byte)0, "Fail")), CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
||||||
// 将异常信息存到exception中
|
// 将异常信息存到exception中
|
||||||
HashMap<String, String> exceptionInfo = new HashMap<>();
|
HashMap<String, String> exceptionInfo = new HashMap<>();
|
||||||
|
|||||||
134
src/main/java/com/ai/da/common/task/GenerateTask.java
Normal file
134
src/main/java/com/ai/da/common/task/GenerateTask.java
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
package com.ai.da.common.task;
|
||||||
|
|
||||||
|
import com.ai.da.common.config.exception.BusinessException;
|
||||||
|
import com.ai.da.common.utils.DateUtil;
|
||||||
|
import com.ai.da.mapper.primary.PoseTransformationMapper;
|
||||||
|
import com.ai.da.mapper.primary.ToProductImageResultMapper;
|
||||||
|
import com.ai.da.mapper.primary.entity.*;
|
||||||
|
import com.ai.da.service.APIGenerateService;
|
||||||
|
import com.ai.da.service.CreditsService;
|
||||||
|
import com.ai.da.service.GenerateService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import io.netty.util.internal.StringUtil;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static com.ai.da.common.enums.CreditsEventsEnum.TO_PRODUCT_IMAGE;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class GenerateTask {
|
||||||
|
@Resource
|
||||||
|
private APIGenerateService apiGenerateService;
|
||||||
|
@Resource
|
||||||
|
private CreditsService creditsService;
|
||||||
|
@Resource
|
||||||
|
private GenerateService generateService;
|
||||||
|
@Resource
|
||||||
|
private ToProductImageResultMapper toProductImageResultMapper;
|
||||||
|
@Resource
|
||||||
|
private PoseTransformationMapper poseTransformationMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 对于使用了第三方api的允许异步获得结果的生成功能,可能在第三方接口的结果Ready时没有及时存储结果,导致第三方链接失效
|
||||||
|
* 万相 24h失效,
|
||||||
|
* flux 10mins失效 (使用了flux接口的功能 ToProductImage || Relight, Pattern这里不做补偿)
|
||||||
|
* 故这里通过定时任务做补偿
|
||||||
|
* flux五分钟查询一次,万相1小时查询一次
|
||||||
|
*/
|
||||||
|
@Scheduled(cron = "0 */4 * * * ?")
|
||||||
|
public void fluxCompensationMechanism(){
|
||||||
|
// 1、查所有 任务还没成功、还没失败,正在等待或者执行中的任务id有哪些
|
||||||
|
// (由于获取结果的polling_url在redis中只存一天,大部分结果超过一天之后就无法再找到任务,小部分可以通过公共路径查到结果)
|
||||||
|
List<APIGenerate> apiGenerates = apiGenerateService.getPendingTaskByStatus("flux");
|
||||||
|
if (apiGenerates != null && !apiGenerates.isEmpty()){
|
||||||
|
for (APIGenerate apiGenerate : apiGenerates){
|
||||||
|
String taskId = apiGenerate.getTaskId();
|
||||||
|
// 1. 根据taskId查toProductImageResult, 判断当前任务状态与超时状态
|
||||||
|
ToProductImageResult toProductImageResult = toProductImageResultMapper.selectOne(new QueryWrapper<ToProductImageResult>().eq("task_id", taskId));
|
||||||
|
if (Objects.nonNull(toProductImageResult) && "Pending".equals(toProductImageResult.getStatus())){
|
||||||
|
// 判断当前任务的超时状态
|
||||||
|
if (!DateUtil.isMoreThanOneDayApart(toProductImageResult.getCreateTime())){
|
||||||
|
// 1. 未超时,获取当前任务结果
|
||||||
|
String fileName = toProductImageResult.getResultType().equals(TO_PRODUCT_IMAGE.getName()) ? "product_image" : "relight_image";
|
||||||
|
String objectName = apiGenerate.getAccountId() + "/" + fileName +"/" + taskId + ".png";
|
||||||
|
String fluxResult = generateService.getFluxResult(taskId, objectName);
|
||||||
|
|
||||||
|
// 2. 成功,获取结果,下载图片,上传至minio,更新toProductImageResult表
|
||||||
|
if (StringUtil.isNullOrEmpty(fluxResult) || fluxResult.equals("Fail")){
|
||||||
|
toProductImageResult.setStatus("Fail");
|
||||||
|
toProductImageResultMapper.updateById(toProductImageResult);
|
||||||
|
|
||||||
|
apiGenerate.setStatus("Fail");
|
||||||
|
apiGenerate.setUpdateTime(LocalDateTime.now());
|
||||||
|
apiGenerateService.updateById(apiGenerate);
|
||||||
|
} else if (!fluxResult.equals("Pending")){
|
||||||
|
if (StringUtil.isNullOrEmpty(toProductImageResult.getUrl())){
|
||||||
|
toProductImageResult.setStatus("Success");
|
||||||
|
toProductImageResult.setUrl(fluxResult);
|
||||||
|
toProductImageResultMapper.updateById(toProductImageResult);
|
||||||
|
|
||||||
|
apiGenerate.setStatus("Success");
|
||||||
|
apiGenerate.setUpdateTime(LocalDateTime.now());
|
||||||
|
apiGenerateService.updateById(apiGenerate);
|
||||||
|
}
|
||||||
|
// 扣积分
|
||||||
|
Boolean flag = creditsService.taskCreditsDeduction(apiGenerate.getAccountId(), taskId);
|
||||||
|
if (flag) creditsService.updateChangedCredits(String.valueOf(apiGenerate.getAccountId()), taskId);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 超时,设置状态为失败
|
||||||
|
toProductImageResult.setStatus("Fail");
|
||||||
|
toProductImageResultMapper.updateById(toProductImageResult);
|
||||||
|
|
||||||
|
apiGenerate.setStatus("Fail");
|
||||||
|
apiGenerate.setUpdateTime(LocalDateTime.now());
|
||||||
|
apiGenerateService.updateById(apiGenerate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 万相 -> pose transformation 补偿 一小时执行一次
|
||||||
|
@Scheduled(fixedDelay = 60 * 60 * 1000)
|
||||||
|
public void wxCompensationMechanism(){
|
||||||
|
List<APIGenerate> apiGenerates = apiGenerateService.getPendingTaskByStatus("wx");
|
||||||
|
if (apiGenerates != null && !apiGenerates.isEmpty()){
|
||||||
|
for (APIGenerate apiGenerate : apiGenerates){
|
||||||
|
String taskId = apiGenerate.getTaskId();
|
||||||
|
PoseTransformation poseTransformation = poseTransformationMapper.selectOne(new QueryWrapper<PoseTransformation>().eq("unique_id", taskId));
|
||||||
|
if (Objects.nonNull(poseTransformation) && "Pending".equals(poseTransformation.getTaskStatus())){
|
||||||
|
// 判断当前任务的超时状态
|
||||||
|
if (!DateUtil.isMoreThanOneDayApart(poseTransformation.getCreateTime())){
|
||||||
|
try {
|
||||||
|
// 方法中已经完成了pose_transformation和api_generate表的更新,不用额外做处理
|
||||||
|
generateService.getAnimateResult(taskId);
|
||||||
|
} catch (BusinessException e){
|
||||||
|
log.warn("万相 animation 生成失败,原因:{}", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
poseTransformation.setTaskStatus("Fail");
|
||||||
|
poseTransformation.setUpdateTime(LocalDateTime.now());
|
||||||
|
poseTransformationMapper.updateById(poseTransformation);
|
||||||
|
|
||||||
|
apiGenerate.setStatus("Fail");
|
||||||
|
apiGenerate.setUpdateTime(LocalDateTime.now());
|
||||||
|
apiGenerateService.updateById(apiGenerate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,10 +5,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Instant;
|
import java.time.*;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -101,4 +98,10 @@ public class DateUtil {
|
|||||||
return localDate.format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT_MMM_dd_yyyy_EEEE, Locale.US));
|
return localDate.format(DateTimeFormatter.ofPattern(CommonConstant.TIME_FORMAT_MMM_dd_yyyy_EEEE, Locale.US));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isMoreThanOneDayApart(LocalDateTime givenDateTime) {
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
Duration duration = Duration.between(givenDateTime, now);
|
||||||
|
return duration.toHours() >= 24;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.data.redis.core.ValueOperations;
|
||||||
import org.springframework.data.redis.core.ZSetOperations;
|
import org.springframework.data.redis.core.ZSetOperations;
|
||||||
import org.springframework.data.redis.core.script.DefaultRedisScript;
|
import org.springframework.data.redis.core.script.DefaultRedisScript;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -594,4 +595,19 @@ public class RedisUtil {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean allowRequest(String apiKey) {
|
||||||
|
String key = "rate_limit:" + apiKey;
|
||||||
|
ValueOperations<String, String> ops = redisTemplate.opsForValue();
|
||||||
|
|
||||||
|
// 使用Redis的INCR命令
|
||||||
|
Long count = ops.increment(key, 1);
|
||||||
|
|
||||||
|
if (count == 1) {
|
||||||
|
// 第一次调用,设置过期时间
|
||||||
|
redisTemplate.expire(key, 1, TimeUnit.MINUTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
return count <= 3;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,233 +1,240 @@
|
|||||||
package com.ai.da.controller;
|
package com.ai.da.controller;
|
||||||
|
|
||||||
import com.ai.da.common.enums.CreditsEventsEnum;
|
import com.ai.da.common.enums.CreditsEventsEnum;
|
||||||
import com.ai.da.common.response.Response;
|
import com.ai.da.common.response.Response;
|
||||||
import com.ai.da.mapper.primary.entity.CollectionSort;
|
import com.ai.da.mapper.primary.entity.CollectionSort;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.vo.*;
|
||||||
import com.ai.da.service.GenerateService;
|
import com.ai.da.service.GenerateService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.validation.Valid;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Map;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
/**
|
|
||||||
* @author XP
|
/**
|
||||||
*/
|
* @author XP
|
||||||
@Api(tags = "Generate模块")
|
*/
|
||||||
@Slf4j
|
@Api(tags = "Generate模块")
|
||||||
@RestController
|
@Slf4j
|
||||||
@RequestMapping("/api/generate")
|
@RestController
|
||||||
public class GenerateController {
|
@RequestMapping("/api/generate")
|
||||||
|
public class GenerateController {
|
||||||
@Resource
|
|
||||||
private GenerateService generateService;
|
@Resource
|
||||||
|
private GenerateService generateService;
|
||||||
/*@ApiOperation("自动识别sketch的caption 暂时未上")
|
|
||||||
@PostMapping("/caption")
|
/*@ApiOperation("自动识别sketch的caption 暂时未上")
|
||||||
public Response<GenerateCaptionVO> generateCaption(@RequestParam Long sketchElementId) {
|
@PostMapping("/caption")
|
||||||
return Response.success(generateService.generateCaption(sketchElementId));
|
public Response<GenerateCaptionVO> generateCaption(@RequestParam Long sketchElementId) {
|
||||||
}*/
|
return Response.success(generateService.generateCaption(sketchElementId));
|
||||||
|
}*/
|
||||||
/*@ApiOperation("通过文字、图片生成图片")
|
|
||||||
@PostMapping("/sketchAndPrint")
|
/*@ApiOperation("通过文字、图片生成图片")
|
||||||
public void generateThroughImageText(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
|
@PostMapping("/sketchAndPrint")
|
||||||
// return Response.success(generateService.generateThroughImageText(generateThroughImageTextDTO));
|
public void generateThroughImageText(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
|
||||||
generateService.generateThroughImageText(generateThroughImageTextDTO);
|
// return Response.success(generateService.generateThroughImageText(generateThroughImageTextDTO));
|
||||||
}*/
|
generateService.generateThroughImageText(generateThroughImageTextDTO);
|
||||||
|
}*/
|
||||||
@ApiOperation("喜欢生成的图片")
|
|
||||||
@PostMapping("/like")
|
@ApiOperation("喜欢生成的图片")
|
||||||
public Response<GenerateLikeVO> like(@Valid @RequestBody GenerateLikeDTO generateLikeDTO) {
|
@PostMapping("/like")
|
||||||
return Response.success(generateService.generateLike(generateLikeDTO));
|
public Response<GenerateLikeVO> like(@Valid @RequestBody GenerateLikeDTO generateLikeDTO) {
|
||||||
}
|
return Response.success(generateService.generateLike(generateLikeDTO));
|
||||||
|
}
|
||||||
@ApiOperation(value = "取消喜欢")
|
|
||||||
@GetMapping("/dislike")
|
@ApiOperation(value = "取消喜欢")
|
||||||
public Response<Boolean> dislike(@ApiParam("generateDetailId") @RequestParam Long generateDetailId,
|
@GetMapping("/dislike")
|
||||||
@ApiParam("timeZone") @RequestParam String timeZone) {
|
public Response<Boolean> dislike(@ApiParam("generateDetailId") @RequestParam Long generateDetailId,
|
||||||
return Response.success(generateService.generateDislike(generateDetailId, timeZone));
|
@ApiParam("timeZone") @RequestParam String timeZone) {
|
||||||
}
|
return Response.success(generateService.generateDislike(generateDetailId, timeZone));
|
||||||
|
}
|
||||||
@ApiOperation(value = "发起生成请求,异步获取结果")
|
|
||||||
@PostMapping("/prepare")
|
@ApiOperation(value = "发起生成请求,异步获取结果")
|
||||||
public Response<PrepareForGenerateVO> prepareForGenerate(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
|
@PostMapping("/prepare")
|
||||||
return Response.success(generateService.prepareForGenerate(generateThroughImageTextDTO));
|
public ResponseEntity<Response<PrepareForGenerateVO>> prepareForGenerate(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
|
||||||
}
|
PrepareForGenerateVO prepareForGenerateVO = generateService.prepareForGenerate(generateThroughImageTextDTO);
|
||||||
|
if (prepareForGenerateVO.getStatus().equals(200)){
|
||||||
@ApiOperation(value = "取消继续生成")
|
prepareForGenerateVO.setStatus(0);
|
||||||
@GetMapping("/stopWaiting")
|
return ResponseEntity.ok(Response.success(prepareForGenerateVO));
|
||||||
public Response<String> stopWaiting(@RequestParam("userId") Long userId,
|
} else {
|
||||||
@RequestParam("uniqueId") List<String> uniqueId,
|
return ResponseEntity.status(prepareForGenerateVO.getStatus()).body(Response.fail("The rate limit has been exceeded. Please wait 1 minute before retrying."));
|
||||||
@RequestParam("timeZone") String timeZone,
|
}
|
||||||
@RequestParam("type") String type) {
|
}
|
||||||
generateService.cancelGenerate(userId, uniqueId, timeZone, type);
|
|
||||||
return Response.success("stop waiting successfully");
|
@ApiOperation(value = "取消继续生成")
|
||||||
}
|
@GetMapping("/stopWaiting")
|
||||||
|
public Response<String> stopWaiting(@RequestParam("userId") Long userId,
|
||||||
/*@ApiOperation(value = "获取生成结果")
|
@RequestParam("uniqueId") List<String> uniqueId,
|
||||||
@GetMapping("/result")
|
@RequestParam("timeZone") String timeZone,
|
||||||
public Response<GenerateCollectionVO> getGenerateResult(@RequestParam("uniqueId") String uniqueId) {
|
@RequestParam("type") String type) {
|
||||||
GenerateCollectionVO generateResult = generateService.getGenerateResult(uniqueId);
|
generateService.cancelGenerate(userId, uniqueId, timeZone, type);
|
||||||
return Response.success(generateResult);
|
return Response.success("stop waiting successfully");
|
||||||
}*/
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取生成结果")
|
/*@ApiOperation(value = "获取生成结果")
|
||||||
@PostMapping("/result")
|
@GetMapping("/result")
|
||||||
public Response<List<GenerateResultVO>> getGenerateResults(@Valid @RequestBody List<String> taskIdList) {
|
public Response<GenerateCollectionVO> getGenerateResult(@RequestParam("uniqueId") String uniqueId) {
|
||||||
List<GenerateResultVO> generateResult = generateService.getGenerateResultList(taskIdList);
|
GenerateCollectionVO generateResult = generateService.getGenerateResult(uniqueId);
|
||||||
return Response.success(generateResult);
|
return Response.success(generateResult);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@ApiOperation(value = "imageToSketch")
|
@ApiOperation(value = "获取生成结果")
|
||||||
@PostMapping("/imageToSketch")
|
@PostMapping("/result")
|
||||||
public Response<String> imageToSketch(@Valid @RequestBody ImageToSketchDTO imageToSketchDTO) {
|
public Response<List<GenerateResultVO>> getGenerateResults(@Valid @RequestBody List<String> taskIdList) {
|
||||||
return Response.success(generateService.imageToSketchAsync(imageToSketchDTO, null, null));
|
List<GenerateResultVO> generateResult = generateService.getGenerateResultList(taskIdList);
|
||||||
// return Response.success(generateService.imageToSketch(imageToSketchDTO, null, null));
|
return Response.success(generateResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
// modifySketch
|
@ApiOperation(value = "imageToSketch")
|
||||||
@ApiOperation(value = "modifySketch")
|
@PostMapping("/imageToSketch")
|
||||||
@PostMapping("/modifySketch")
|
public Response<String> imageToSketch(@Valid @RequestBody ImageToSketchDTO imageToSketchDTO) {
|
||||||
public Response<GenerateResultVO> modifySketch(@Valid @RequestBody GenerateModifyDTO generateModifyDTO) {
|
return Response.success(generateService.imageToSketchAsync(imageToSketchDTO, null, null));
|
||||||
return Response.success(generateService.modifySketch(generateModifyDTO));
|
// return Response.success(generateService.imageToSketch(imageToSketchDTO, null, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "请求进行姿势变换")
|
// modifySketch
|
||||||
@PostMapping("/poseTransform")
|
@ApiOperation(value = "modifySketch")
|
||||||
public Response<ToProductImageResultVO> poseTransform(@Valid @RequestBody PoseTransformDTO poseTransformDTO) {
|
@PostMapping("/modifySketch")
|
||||||
return Response.success(generateService.poseTransform(poseTransformDTO));
|
public Response<GenerateResultVO> modifySketch(@Valid @RequestBody GenerateModifyDTO generateModifyDTO) {
|
||||||
}
|
return Response.success(generateService.modifySketch(generateModifyDTO));
|
||||||
|
}
|
||||||
@ApiOperation(value = "获取姿势变换生成结果")
|
|
||||||
@PostMapping("/poseTransformResult")
|
@ApiOperation(value = "请求进行姿势变换")
|
||||||
public Response<List<PoseTransformationVO>> getPoseTransformationResults(@Valid @RequestBody List<String> taskIdList) {
|
@PostMapping("/poseTransform")
|
||||||
List<PoseTransformationVO> generateResult = generateService.getPoseTransformationResult(taskIdList, null, null);
|
public Response<ToProductImageResultVO> poseTransform(@Valid @RequestBody PoseTransformDTO poseTransformDTO) {
|
||||||
return Response.success(generateResult);
|
return Response.success(generateService.poseTransform(poseTransformDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("喜欢或取消喜欢姿势变换生成的图片")
|
@ApiOperation(value = "获取姿势变换生成结果")
|
||||||
@PostMapping("/likeOrDislike")
|
@PostMapping("/poseTransformResult")
|
||||||
public Response<CollectionSort> likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike, @RequestParam("projectId") Long projectId, @RequestParam(value = "collectionSortParentId", required = false) Long collectionSortParentId) {
|
public Response<List<PoseTransformationVO>> getPoseTransformationResults(@Valid @RequestBody List<String> taskIdList) {
|
||||||
return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike, projectId, collectionSortParentId));
|
List<PoseTransformationVO> generateResult = generateService.getPoseTransformationResult(taskIdList, null, null);
|
||||||
}
|
return Response.success(generateResult);
|
||||||
|
}
|
||||||
@ApiOperation(value = "修改模特比例")
|
|
||||||
@PostMapping("/modifyProportion")
|
@ApiOperation("喜欢或取消喜欢姿势变换生成的图片")
|
||||||
public Response<String> modifyModelProportion(@Valid @RequestBody ModifyModelProportionDTO proportionDTO){
|
@PostMapping("/likeOrDislike")
|
||||||
String path = generateService.modifyModelProportion(proportionDTO);
|
public Response<CollectionSort> likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike, @RequestParam("projectId") Long projectId, @RequestParam(value = "collectionSortParentId", required = false) Long collectionSortParentId) {
|
||||||
return Response.success(path);
|
return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike, projectId, collectionSortParentId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "拼贴图生成线稿")
|
@ApiOperation(value = "修改模特比例")
|
||||||
@PostMapping("/genSketchRecon")
|
@PostMapping("/modifyProportion")
|
||||||
public Response<GenerateResultVO> sketchReconstructionGenerate(@Valid @RequestBody SketchReconstructionDTO sketchReconstructionDTO){
|
public Response<String> modifyModelProportion(@Valid @RequestBody ModifyModelProportionDTO proportionDTO){
|
||||||
GenerateResultVO generateResultVO = generateService.sketchReconstructionGenerate(sketchReconstructionDTO);
|
String path = generateService.modifyModelProportion(proportionDTO);
|
||||||
return Response.success(generateResultVO);
|
return Response.success(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取拼贴图最后一次生成结果")
|
@ApiOperation(value = "拼贴图生成线稿")
|
||||||
@GetMapping("/getReconLastResult")
|
@PostMapping("/genSketchRecon")
|
||||||
public Response<SketchReconstructionVO> getSketchReconstruction(@RequestParam("projectId") Long projectId){
|
public Response<GenerateResultVO> sketchReconstructionGenerate(@Valid @RequestBody SketchReconstructionDTO sketchReconstructionDTO){
|
||||||
SketchReconstructionVO sketchReconstruction = generateService.getSketchReconstruction(projectId);
|
GenerateResultVO generateResultVO = generateService.sketchReconstructionGenerate(sketchReconstructionDTO);
|
||||||
return Response.success(sketchReconstruction);
|
return Response.success(generateResultVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取pose transfer的所有pose")
|
@ApiOperation(value = "获取拼贴图最后一次生成结果")
|
||||||
@GetMapping("/getAllPose")
|
@GetMapping("/getReconLastResult")
|
||||||
public Response<List<Map<String, String>>> getAllPose(){
|
public Response<SketchReconstructionVO> getSketchReconstruction(@RequestParam("projectId") Long projectId){
|
||||||
return Response.success(generateService.getAllPose());
|
SketchReconstructionVO sketchReconstruction = generateService.getSketchReconstruction(projectId);
|
||||||
}
|
return Response.success(sketchReconstruction);
|
||||||
|
}
|
||||||
@ApiOperation(value = "删除pose transfer的结果")
|
|
||||||
@GetMapping("/deleteResult")
|
@ApiOperation(value = "获取pose transfer的所有pose")
|
||||||
public Response<String> deleteToProductRelightResult(@RequestParam("projectId") @NotNull Long projectId,
|
@GetMapping("/getAllPose")
|
||||||
@RequestParam("id") @NotNull Long id){
|
public Response<List<Map<String, String>>> getAllPose(){
|
||||||
try{
|
return Response.success(generateService.getAllPose());
|
||||||
generateService.deleteGeneratedPose(projectId, id);
|
}
|
||||||
return Response.success();
|
|
||||||
}catch (Exception e){
|
@ApiOperation(value = "删除pose transfer的结果")
|
||||||
return Response.fail(e.getMessage());
|
@GetMapping("/deleteResult")
|
||||||
}
|
public Response<String> deleteToProductRelightResult(@RequestParam("projectId") @NotNull Long projectId,
|
||||||
}
|
@RequestParam("id") @NotNull Long id){
|
||||||
|
try{
|
||||||
/*@ApiOperation(value = "万象 t2i 创建异步任务")
|
generateService.deleteGeneratedPose(projectId, id);
|
||||||
@GetMapping("/createAsyncTask")
|
return Response.success();
|
||||||
public Response<String> createAsyncTask(@RequestParam("prompt") String prompt){
|
}catch (Exception e){
|
||||||
return Response.success(generateService.createAsyncTask(87L, prompt, ""));
|
return Response.fail(e.getMessage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@ApiOperation(value = "万象 t2i 获取异步任务结果")
|
|
||||||
@GetMapping("/waitAsyncTask")
|
/*@ApiOperation(value = "万象 t2i 创建异步任务")
|
||||||
public Response<GenerateResultVO> waitAsyncTask(@RequestParam("taskId") String taskId){
|
@GetMapping("/createAsyncTask")
|
||||||
return Response.success(generateService.getAsyncTaskResult(taskId));
|
public Response<String> createAsyncTask(@RequestParam("prompt") String prompt){
|
||||||
}
|
return Response.success(generateService.createAsyncTask(87L, prompt, ""));
|
||||||
|
}
|
||||||
@ApiOperation(value = "万象 图生动图")
|
|
||||||
@GetMapping("/animateAnyone")
|
@ApiOperation(value = "万象 t2i 获取异步任务结果")
|
||||||
public Response<String> animateAnyone(@Valid @RequestBody PoseTransformDTO poseTransformDTO){
|
@GetMapping("/waitAsyncTask")
|
||||||
return Response.success(generateService.animateAnyone(poseTransformDTO, null));
|
public Response<GenerateResultVO> waitAsyncTask(@RequestParam("taskId") String taskId){
|
||||||
}
|
return Response.success(generateService.getAsyncTaskResult(taskId));
|
||||||
|
}
|
||||||
@ApiOperation(value = "万象 获取动图模板id")
|
|
||||||
@GetMapping("/getVideoTemplateId")
|
@ApiOperation(value = "万象 图生动图")
|
||||||
public Response<String> getVideoTemplateId(@RequestParam("videoPath") String videoPath){
|
@GetMapping("/animateAnyone")
|
||||||
return Response.success(generateService.getVideoTemplateId(videoPath));
|
public Response<String> animateAnyone(@Valid @RequestBody PoseTransformDTO poseTransformDTO){
|
||||||
}
|
return Response.success(generateService.animateAnyone(poseTransformDTO, null));
|
||||||
|
}
|
||||||
@ApiOperation(value = "万象 获取动图结果")
|
|
||||||
@GetMapping("/getAnimateResult")
|
@ApiOperation(value = "万象 获取动图模板id")
|
||||||
public Response<PoseTransformationVO> getAnimateResult(@RequestParam("taskId") String taskId){
|
@GetMapping("/getVideoTemplateId")
|
||||||
return Response.success(generateService.getAnimateResult(taskId));
|
public Response<String> getVideoTemplateId(@RequestParam("videoPath") String videoPath){
|
||||||
}
|
return Response.success(generateService.getVideoTemplateId(videoPath));
|
||||||
|
}
|
||||||
@ApiOperation(value = "freepik toProductImage")
|
|
||||||
@GetMapping("/reimagineFreePik")
|
@ApiOperation(value = "万象 获取动图结果")
|
||||||
public Response<String> reimagineFreePik(@RequestParam("path") String path,
|
@GetMapping("/getAnimateResult")
|
||||||
@RequestParam("prompt") String prompt,
|
public Response<PoseTransformationVO> getAnimateResult(@RequestParam("taskId") String taskId){
|
||||||
@RequestParam("style") String style) throws IOException {
|
return Response.success(generateService.getAnimateResult(taskId));
|
||||||
return Response.success(generateService.reimagineFreePik(path, prompt, style));
|
}
|
||||||
}
|
|
||||||
|
@ApiOperation(value = "freepik toProductImage")
|
||||||
@ApiOperation(value = "获取图片描述")
|
@GetMapping("/reimagineFreePik")
|
||||||
@GetMapping("/getImageDescription")
|
public Response<String> reimagineFreePik(@RequestParam("path") String path,
|
||||||
public Response<String> getImageDescription(@RequestParam("path") String path) {
|
@RequestParam("prompt") String prompt,
|
||||||
return Response.success(generateService.getImageDescription(path));
|
@RequestParam("style") String style) throws IOException {
|
||||||
}*/
|
return Response.success(generateService.reimagineFreePik(path, prompt, style));
|
||||||
|
}
|
||||||
// @ApiOperation(value = "试用flux")
|
|
||||||
// @GetMapping("/flux")
|
@ApiOperation(value = "获取图片描述")
|
||||||
public Response<String> flux(@RequestParam(value = "path", required = false) String path,
|
@GetMapping("/getImageDescription")
|
||||||
@RequestParam("type") int type,
|
public Response<String> getImageDescription(@RequestParam("path") String path) {
|
||||||
@RequestParam(value = "prompt", required = false) String prompt){
|
return Response.success(generateService.getImageDescription(path));
|
||||||
CreditsEventsEnum typeEnum = CreditsEventsEnum.RELIGHT;
|
}*/
|
||||||
switch (type){
|
|
||||||
case 1:
|
// @ApiOperation(value = "试用flux")
|
||||||
typeEnum = CreditsEventsEnum.TO_PRODUCT_IMAGE;
|
// @GetMapping("/flux")
|
||||||
break;
|
public Response<String> flux(@RequestParam(value = "path", required = false) String path,
|
||||||
case 2:
|
@RequestParam("type") int type,
|
||||||
typeEnum = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
@RequestParam(value = "prompt", required = false) String prompt){
|
||||||
break;
|
CreditsEventsEnum typeEnum = CreditsEventsEnum.RELIGHT;
|
||||||
case 3:
|
switch (type){
|
||||||
typeEnum = CreditsEventsEnum.PATTERN;
|
case 1:
|
||||||
break;
|
typeEnum = CreditsEventsEnum.TO_PRODUCT_IMAGE;
|
||||||
}
|
break;
|
||||||
return Response.success(generateService.flux(typeEnum, prompt, path, false));
|
case 2:
|
||||||
}
|
typeEnum = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
||||||
|
break;
|
||||||
// @ApiOperation(value = "获取flux结果")
|
case 3:
|
||||||
// @GetMapping("/fluxResult")
|
typeEnum = CreditsEventsEnum.PATTERN;
|
||||||
public Response<String> fluxResult(@RequestParam("taskId") String taskId){
|
break;
|
||||||
return Response.success(generateService.getFluxResult(taskId, "87/" + taskId + ".png"));
|
}
|
||||||
}
|
return Response.success(generateService.flux(typeEnum, prompt, path, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
// @ApiOperation(value = "获取flux结果")
|
||||||
}
|
// @GetMapping("/fluxResult")
|
||||||
|
public Response<String> fluxResult(@RequestParam("taskId") String taskId){
|
||||||
|
return Response.success(generateService.getFluxResult(taskId, "87/" + taskId + ".png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
package com.ai.da.model.vo;
|
package com.ai.da.model.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel("prepare for generate响应vo")
|
@ApiModel("prepare for generate响应vo")
|
||||||
public class PrepareForGenerateVO {
|
public class PrepareForGenerateVO {
|
||||||
|
|
||||||
@ApiModelProperty("uniqueId")
|
@ApiModelProperty("uniqueId")
|
||||||
private List<String> uniqueId;
|
private List<String> uniqueId;
|
||||||
|
|
||||||
@ApiModelProperty("剩余使用次数")
|
@ApiModelProperty("剩余使用次数")
|
||||||
private Integer leftUsageCount;
|
private Integer status;
|
||||||
|
|
||||||
public PrepareForGenerateVO(List<String> uniqueId, Integer leftUsageCount) {
|
public PrepareForGenerateVO(List<String> uniqueId, Integer status) {
|
||||||
this.uniqueId = uniqueId;
|
this.uniqueId = uniqueId;
|
||||||
this.leftUsageCount = leftUsageCount;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PrepareForGenerateVO(Integer leftUsageCount) {
|
public PrepareForGenerateVO(Integer status) {
|
||||||
this.leftUsageCount = leftUsageCount;
|
this.status = status;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,99 +1,99 @@
|
|||||||
package com.ai.da.service;
|
package com.ai.da.service;
|
||||||
|
|
||||||
import com.ai.da.common.enums.CreditsEventsEnum;
|
import com.ai.da.common.enums.CreditsEventsEnum;
|
||||||
import com.ai.da.mapper.primary.entity.CollectionSort;
|
import com.ai.da.mapper.primary.entity.CollectionSort;
|
||||||
import com.ai.da.mapper.primary.entity.Generate;
|
import com.ai.da.mapper.primary.entity.Generate;
|
||||||
import com.ai.da.mapper.primary.entity.GenerateDetail;
|
import com.ai.da.mapper.primary.entity.GenerateDetail;
|
||||||
import com.ai.da.model.dto.*;
|
import com.ai.da.mapper.primary.entity.PoseTransformation;
|
||||||
import com.ai.da.model.vo.*;
|
import com.ai.da.model.dto.*;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.ai.da.model.vo.*;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
public interface GenerateService extends IService<Generate> {
|
|
||||||
|
public interface GenerateService extends IService<Generate> {
|
||||||
GenerateCaptionVO generateCaption(Long sketchElementId);
|
|
||||||
|
GenerateCaptionVO generateCaption(Long sketchElementId);
|
||||||
void generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
|
||||||
|
void generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
||||||
void processGenerateResult(String taskId, String url, String category);
|
|
||||||
|
void processGenerateResult(String taskId, String url, String category);
|
||||||
void processToProductImageResult(String taskId, String url, String category);
|
|
||||||
|
void processToProductImageResult(String taskId, String url, String category);
|
||||||
void updateToProductTaskStatus(String taskId, String status);
|
|
||||||
|
void updateToProductTaskStatus(String taskId, String status);
|
||||||
GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO);
|
|
||||||
|
GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO);
|
||||||
Boolean generateDislike(Long generateDetailId, String timeZone);
|
|
||||||
|
Boolean generateDislike(Long generateDetailId, String timeZone);
|
||||||
void updateLikeStatusBatch(List<Long> generateDetailIdList, Byte hasLike, Long libraryId, String timeZone);
|
|
||||||
|
void updateLikeStatusBatch(List<Long> generateDetailIdList, Byte hasLike, Long libraryId, String timeZone);
|
||||||
List<GenerateDetail> selectBatchByLibraryId(List<Long> libraryId);
|
|
||||||
|
List<GenerateDetail> selectBatchByLibraryId(List<Long> libraryId);
|
||||||
// GenerateCollectionVO getGenerateResult(String uniqueId);
|
|
||||||
|
// GenerateCollectionVO getGenerateResult(String uniqueId);
|
||||||
List<GenerateResultVO> getGenerateResultList(List<String> taskIdList);
|
|
||||||
|
List<GenerateResultVO> getGenerateResultList(List<String> taskIdList);
|
||||||
PrepareForGenerateVO prepareForGenerate(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
|
||||||
|
PrepareForGenerateVO prepareForGenerate(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
||||||
Long getRankPosition(String uniqueId);
|
|
||||||
|
Long getRankPosition(String uniqueId);
|
||||||
void cancelGenerate(Long userId, List<String> uniqueId, String timeZone, String type);
|
|
||||||
|
void cancelGenerate(Long userId, List<String> uniqueId, String timeZone, String type);
|
||||||
void processRelightResult(String taskId, String url, String category);
|
|
||||||
|
void processRelightResult(String taskId, String url, String category);
|
||||||
List<Map<String, Object>> getCountByUserAndTime(String startTime, String endTime, List<Long> accountIdList);
|
|
||||||
|
List<Map<String, Object>> getCountByUserAndTime(String startTime, String endTime, List<Long> accountIdList);
|
||||||
GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO, String collagePictureUrl, Long projectId);
|
|
||||||
|
GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO, String collagePictureUrl, Long projectId);
|
||||||
String imageToSketchAsync(ImageToSketchDTO imageToSketchDTO, String collagePictureUrl, Long projectId);
|
|
||||||
|
String imageToSketchAsync(ImageToSketchDTO imageToSketchDTO, String collagePictureUrl, Long projectId);
|
||||||
GenerateResultVO modifySketch(GenerateModifyDTO generateModifyDTO);
|
|
||||||
|
GenerateResultVO modifySketch(GenerateModifyDTO generateModifyDTO);
|
||||||
ToProductImageResultVO poseTransform(PoseTransformDTO poseTransformDTO);
|
|
||||||
|
ToProductImageResultVO poseTransform(PoseTransformDTO poseTransformDTO);
|
||||||
void processPoseTransformResult(String taskId, String gifUrl, String videoUrl, String imageUrl);
|
|
||||||
|
void processPoseTransformResult(String taskId, String gifUrl, String videoUrl, String imageUrl);
|
||||||
List<PoseTransformationVO> getPoseTransformationResult(List<String> taskIdList, Long projectId, Boolean like);
|
|
||||||
|
List<PoseTransformationVO> getPoseTransformationResult(List<String> taskIdList, Long projectId, Boolean like);
|
||||||
void updatePoseTransferStatus(String taskId, String status);
|
|
||||||
|
void updatePoseTransferStatus(String taskId, String status, PoseTransformation poseTransformation);
|
||||||
|
|
||||||
CollectionSort disOrLikePose(Long transformedId, String likeOrDislike, Long projectId, Long sortLikeParentId);
|
CollectionSort disOrLikePose(Long transformedId, String likeOrDislike, Long projectId, Long sortLikeParentId);
|
||||||
|
|
||||||
String modifyModelProportion(ModifyModelProportionDTO proportionDTO);
|
String modifyModelProportion(ModifyModelProportionDTO proportionDTO);
|
||||||
|
|
||||||
GenerateResultVO sketchReconstructionGenerate(SketchReconstructionDTO sketchReconstructionDTO);
|
GenerateResultVO sketchReconstructionGenerate(SketchReconstructionDTO sketchReconstructionDTO);
|
||||||
|
|
||||||
SketchReconstructionVO getSketchReconstruction(Long projectId);
|
SketchReconstructionVO getSketchReconstruction(Long projectId);
|
||||||
|
|
||||||
List<Map<String, String>> getAllPose();
|
List<Map<String, String>> getAllPose();
|
||||||
|
|
||||||
void processPoseTransformResultBatch(String taskId, String gifUrl, String videoUrl, String imageUrl, String progress);
|
void processPoseTransformResultBatch(String taskId, String gifUrl, String videoUrl, String imageUrl, String progress);
|
||||||
|
|
||||||
void processPoseTransformResultBatch(String taskId, String progress);
|
void processPoseTransformResultBatch(String taskId, String progress);
|
||||||
|
|
||||||
void deleteGeneratedPose(Long projectId, Long id);
|
void deleteGeneratedPose(Long projectId, Long id);
|
||||||
|
|
||||||
String createAsyncTask(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
String createAsyncTask(GenerateThroughImageTextDTO generateThroughImageTextDTO);
|
||||||
|
|
||||||
GenerateResultVO getAsyncTaskResult(String taskId);
|
GenerateResultVO getAsyncTaskResult(String taskId);
|
||||||
|
|
||||||
String animateAnyone(PoseTransformDTO poseTransformDTO, Long accountId);
|
String animateAnyone(PoseTransformDTO poseTransformDTO, Long accountId);
|
||||||
|
|
||||||
String getVideoTemplateId(String videoPath);
|
String getVideoTemplateId(String videoPath);
|
||||||
|
|
||||||
PoseTransformationVO getAnimateResult(String taskId);
|
PoseTransformationVO getAnimateResult(String taskId);
|
||||||
|
|
||||||
String reimagineFreePik(String path, String prompt, String style) throws IOException;
|
String reimagineFreePik(String path, String prompt, String style) throws IOException;
|
||||||
|
|
||||||
String getImageDescription(String imagePath);
|
String getImageDescription(String imagePath);
|
||||||
|
|
||||||
String flux(CreditsEventsEnum func, String prompt, String imagePath, boolean childStyle);
|
String flux(CreditsEventsEnum func, String prompt, String imagePath, boolean childStyle);
|
||||||
|
|
||||||
String getFluxResult(String taskId, String objectName);
|
String getFluxResult(String taskId, String objectName);
|
||||||
|
|
||||||
byte[] downloadVideoOrImage(String url);
|
byte[] downloadVideoOrImage(String url);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ public class APIGenerateServiceImpl extends ServiceImpl<APIGenerateMapper, APIGe
|
|||||||
qw.lambda().eq(APIGenerate::getTaskId, taskId);
|
qw.lambda().eq(APIGenerate::getTaskId, taskId);
|
||||||
APIGenerate apiGenerate = baseMapper.selectOne(qw);
|
APIGenerate apiGenerate = baseMapper.selectOne(qw);
|
||||||
if (Objects.nonNull(apiGenerate)){
|
if (Objects.nonNull(apiGenerate)){
|
||||||
if (apiGenerate.getStatus().equals("Ready") || apiGenerate.getStatus().equals("SUCCEEDED")) {
|
if (apiGenerate.getStatus().equals("Ready") || apiGenerate.getStatus().equals("SUCCEEDED")
|
||||||
|
|| apiGenerate.getStatus().equals("Success")) {
|
||||||
log.warn("当前任务 {} 状态已达Success, 不做修改", taskId);
|
log.warn("当前任务 {} 状态已达Success, 不做修改", taskId);
|
||||||
} else {
|
} else {
|
||||||
apiGenerate.setStatus(status);
|
apiGenerate.setStatus(status);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user