Commit 3d2b0decd9fd1222f82fd18caf4a0de511f77408
1 parent
f20c27a7
【解决todo】增加 finishTime 完成时间
Showing
3 changed files
with
20 additions
and
3 deletions
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageRespVO.java
| @@ -51,7 +51,12 @@ public class AiImageRespVO { | @@ -51,7 +51,12 @@ public class AiImageRespVO { | ||
| 51 | @Schema(description = "mj buttons 按钮") | 51 | @Schema(description = "mj buttons 按钮") |
| 52 | private List<MidjourneyApi.Button> buttons; | 52 | private List<MidjourneyApi.Button> buttons; |
| 53 | 53 | ||
| 54 | + @Schema(description = "完成时间") | ||
| 55 | + private LocalDateTime finishTime; | ||
| 56 | + | ||
| 54 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | 57 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 55 | private LocalDateTime createTime; | 58 | private LocalDateTime createTime; |
| 56 | 59 | ||
| 60 | + | ||
| 61 | + | ||
| 57 | } | 62 | } |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.java
| @@ -16,6 +16,7 @@ import lombok.Data; | @@ -16,6 +16,7 @@ import lombok.Data; | ||
| 16 | import org.springframework.ai.openai.OpenAiImageOptions; | 16 | import org.springframework.ai.openai.OpenAiImageOptions; |
| 17 | import org.springframework.ai.stabilityai.api.StabilityAiImageOptions; | 17 | import org.springframework.ai.stabilityai.api.StabilityAiImageOptions; |
| 18 | 18 | ||
| 19 | +import java.time.LocalDateTime; | ||
| 19 | import java.util.List; | 20 | import java.util.List; |
| 20 | import java.util.Map; | 21 | import java.util.Map; |
| 21 | 22 | ||
| @@ -111,6 +112,11 @@ public class AiImageDO extends BaseDO { | @@ -111,6 +112,11 @@ public class AiImageDO extends BaseDO { | ||
| 111 | */ | 112 | */ |
| 112 | private String taskId; | 113 | private String taskId; |
| 113 | 114 | ||
| 115 | + /** | ||
| 116 | + * 完成时间 | ||
| 117 | + */ | ||
| 118 | + private LocalDateTime finishTime; | ||
| 119 | + | ||
| 114 | public static class ButtonTypeHandler extends AbstractJsonTypeHandler<Object> { | 120 | public static class ButtonTypeHandler extends AbstractJsonTypeHandler<Object> { |
| 115 | 121 | ||
| 116 | @Override | 122 | @Override |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
| @@ -35,6 +35,7 @@ import org.springframework.scheduling.annotation.Async; | @@ -35,6 +35,7 @@ import org.springframework.scheduling.annotation.Async; | ||
| 35 | import org.springframework.stereotype.Service; | 35 | import org.springframework.stereotype.Service; |
| 36 | import org.springframework.transaction.annotation.Transactional; | 36 | import org.springframework.transaction.annotation.Transactional; |
| 37 | 37 | ||
| 38 | +import java.time.LocalDateTime; | ||
| 38 | import java.util.Collections; | 39 | import java.util.Collections; |
| 39 | import java.util.List; | 40 | import java.util.List; |
| 40 | import java.util.Map; | 41 | import java.util.Map; |
| @@ -106,11 +107,12 @@ public class AiImageServiceImpl implements AiImageService { | @@ -106,11 +107,12 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 106 | 107 | ||
| 107 | // 3. 更新数据库 | 108 | // 3. 更新数据库 |
| 108 | imageMapper.updateById(new AiImageDO().setId(image.getId()).setStatus(AiImageStatusEnum.SUCCESS.getStatus()) | 109 | imageMapper.updateById(new AiImageDO().setId(image.getId()).setStatus(AiImageStatusEnum.SUCCESS.getStatus()) |
| 109 | - .setPicUrl(filePath)); | 110 | + .setPicUrl(filePath).setFinishTime(LocalDateTime.now())); |
| 110 | } catch (Exception ex) { | 111 | } catch (Exception ex) { |
| 111 | log.error("[doDall][image({}) 生成异常]", image, ex); | 112 | log.error("[doDall][image({}) 生成异常]", image, ex); |
| 112 | imageMapper.updateById(new AiImageDO().setId(image.getId()) | 113 | imageMapper.updateById(new AiImageDO().setId(image.getId()) |
| 113 | - .setStatus(AiImageStatusEnum.FAIL.getStatus()).setErrorMessage(ex.getMessage())); | 114 | + .setStatus(AiImageStatusEnum.FAIL.getStatus()) |
| 115 | + .setErrorMessage(ex.getMessage()).setFinishTime(LocalDateTime.now())); | ||
| 114 | } | 116 | } |
| 115 | } | 117 | } |
| 116 | 118 | ||
| @@ -254,12 +256,15 @@ public class AiImageServiceImpl implements AiImageService { | @@ -254,12 +256,15 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 254 | private void updateMidjourneyStatus(AiImageDO image, MidjourneyApi.Notify notify) { | 256 | private void updateMidjourneyStatus(AiImageDO image, MidjourneyApi.Notify notify) { |
| 255 | // 1. 转换状态 | 257 | // 1. 转换状态 |
| 256 | Integer status = null; | 258 | Integer status = null; |
| 259 | + LocalDateTime finishTime = null; | ||
| 257 | if (StrUtil.isNotBlank(notify.status())) { | 260 | if (StrUtil.isNotBlank(notify.status())) { |
| 258 | MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notify.status()); | 261 | MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notify.status()); |
| 259 | if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { | 262 | if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { |
| 260 | status = AiImageStatusEnum.SUCCESS.getStatus(); | 263 | status = AiImageStatusEnum.SUCCESS.getStatus(); |
| 264 | + finishTime = LocalDateTime.now(); | ||
| 261 | } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { | 265 | } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { |
| 262 | status = AiImageStatusEnum.FAIL.getStatus(); | 266 | status = AiImageStatusEnum.FAIL.getStatus(); |
| 267 | + finishTime = LocalDateTime.now(); | ||
| 263 | } | 268 | } |
| 264 | } | 269 | } |
| 265 | 270 | ||
| @@ -276,7 +281,8 @@ public class AiImageServiceImpl implements AiImageService { | @@ -276,7 +281,8 @@ public class AiImageServiceImpl implements AiImageService { | ||
| 276 | 281 | ||
| 277 | // 3. 更新 image 状态 | 282 | // 3. 更新 image 状态 |
| 278 | imageMapper.updateById(new AiImageDO().setId(image.getId()).setStatus(status) | 283 | imageMapper.updateById(new AiImageDO().setId(image.getId()).setStatus(status) |
| 279 | - .setPicUrl(picUrl).setButtons(notify.buttons()).setErrorMessage(notify.failReason())); | 284 | + .setPicUrl(picUrl).setButtons(notify.buttons()).setErrorMessage(notify.failReason()) |
| 285 | + .setFinishTime(finishTime)); | ||
| 280 | } | 286 | } |
| 281 | 287 | ||
| 282 | @Override | 288 | @Override |