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 | 51 | @Schema(description = "mj buttons 按钮") |
| 52 | 52 | private List<MidjourneyApi.Button> buttons; |
| 53 | 53 | |
| 54 | + @Schema(description = "完成时间") | |
| 55 | + private LocalDateTime finishTime; | |
| 56 | + | |
| 54 | 57 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 55 | 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 | 16 | import org.springframework.ai.openai.OpenAiImageOptions; |
| 17 | 17 | import org.springframework.ai.stabilityai.api.StabilityAiImageOptions; |
| 18 | 18 | |
| 19 | +import java.time.LocalDateTime; | |
| 19 | 20 | import java.util.List; |
| 20 | 21 | import java.util.Map; |
| 21 | 22 | |
| ... | ... | @@ -111,6 +112,11 @@ public class AiImageDO extends BaseDO { |
| 111 | 112 | */ |
| 112 | 113 | private String taskId; |
| 113 | 114 | |
| 115 | + /** | |
| 116 | + * 完成时间 | |
| 117 | + */ | |
| 118 | + private LocalDateTime finishTime; | |
| 119 | + | |
| 114 | 120 | public static class ButtonTypeHandler extends AbstractJsonTypeHandler<Object> { |
| 115 | 121 | |
| 116 | 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 | 35 | import org.springframework.stereotype.Service; |
| 36 | 36 | import org.springframework.transaction.annotation.Transactional; |
| 37 | 37 | |
| 38 | +import java.time.LocalDateTime; | |
| 38 | 39 | import java.util.Collections; |
| 39 | 40 | import java.util.List; |
| 40 | 41 | import java.util.Map; |
| ... | ... | @@ -106,11 +107,12 @@ public class AiImageServiceImpl implements AiImageService { |
| 106 | 107 | |
| 107 | 108 | // 3. 更新数据库 |
| 108 | 109 | imageMapper.updateById(new AiImageDO().setId(image.getId()).setStatus(AiImageStatusEnum.SUCCESS.getStatus()) |
| 109 | - .setPicUrl(filePath)); | |
| 110 | + .setPicUrl(filePath).setFinishTime(LocalDateTime.now())); | |
| 110 | 111 | } catch (Exception ex) { |
| 111 | 112 | log.error("[doDall][image({}) 生成异常]", image, ex); |
| 112 | 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 | 256 | private void updateMidjourneyStatus(AiImageDO image, MidjourneyApi.Notify notify) { |
| 255 | 257 | // 1. 转换状态 |
| 256 | 258 | Integer status = null; |
| 259 | + LocalDateTime finishTime = null; | |
| 257 | 260 | if (StrUtil.isNotBlank(notify.status())) { |
| 258 | 261 | MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notify.status()); |
| 259 | 262 | if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { |
| 260 | 263 | status = AiImageStatusEnum.SUCCESS.getStatus(); |
| 264 | + finishTime = LocalDateTime.now(); | |
| 261 | 265 | } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { |
| 262 | 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 | 281 | |
| 277 | 282 | // 3. 更新 image 状态 |
| 278 | 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 | 288 | @Override | ... | ... |