Commit d332c0b175f353c597b8700cccbec74b45c7f9ec
1 parent
70cbab9a
【优化】处理 todo 运行异常 action 不能操作问题
Showing
5 changed files
with
20 additions
and
12 deletions
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java
| 1 | -package cn.iocoder.yudao.framework.ai.config; | |
| 1 | +package cn.iocoder.yudao.module.ai.config; | |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.ai.core.model.midjourney.MidjourneyConfig; |
| 4 | 4 | import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | +import org.springframework.boot.autoconfigure.AutoConfiguration; | |
| 6 | 7 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| 7 | 8 | import org.springframework.context.annotation.Bean; |
| 8 | 9 | import org.springframework.context.annotation.Configuration; | ... | ... |
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java renamed to yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/job/MidjourneyJob.java
| ... | ... | @@ -4,7 +4,10 @@ import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; |
| 5 | 5 | import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 7 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | |
| 8 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 7 | 9 | import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; |
| 10 | +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.MidjourneyNotifyReqVO; | |
| 8 | 11 | import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; |
| 9 | 12 | import cn.iocoder.yudao.module.ai.dal.mysql.image.AiImageMapper; |
| 10 | 13 | import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum; |
| ... | ... | @@ -38,7 +41,7 @@ public class MidjourneyJob implements JobHandler { |
| 38 | 41 | |
| 39 | 42 | // TODO @fan:这个方法,建议实现到 AiImageService,例如说 midjourneySync,返回 int 同步数量。 |
| 40 | 43 | @Override |
| 41 | - public String execute(String param) throws Exception { | |
| 44 | + public String execute(String param) { | |
| 42 | 45 | // 1、获取 midjourney 平台,状态在 “进行中” 的 image |
| 43 | 46 | List<AiImageDO> imageList = imageMapper.selectByStatusAndPlatform(AiImageStatusEnum.IN_PROGRESS, AiPlatformEnum.MIDJOURNEY); |
| 44 | 47 | log.info("Midjourney 同步 - 任务数量 {}!", imageList.size()); |
| ... | ... | @@ -61,10 +64,12 @@ public class MidjourneyJob implements JobHandler { |
| 61 | 64 | } |
| 62 | 65 | // TODO @ 3.1 和 3.2 是不是融合下;get,然后判空,continue; |
| 63 | 66 | // 3.2 获取通知对象 |
| 64 | -// MidjourneyNotifyReqVO notifyReqVO = taskIdMap.get(aiImageDO.getTaskId()); | |
| 67 | + MidjourneyApi.NotifyRequest notifyRequest = taskIdMap.get(aiImageDO.getTaskId()); | |
| 65 | 68 | // 3.2 构建更新对象 |
| 66 | 69 | // TODO @fan:建议 List<MidjourneyNotifyReqVO> 作为 imageService 去更新; |
| 67 | -// updateImageList.add(imageService.buildUpdateImage(aiImageDO.getId(), notifyReqVO)); | |
| 70 | + // TODO @芋艿 BeanUtils.toBean 转换为 null | |
| 71 | + updateImageList.add(imageService.buildUpdateImage(aiImageDO.getId(), | |
| 72 | + JsonUtils.parseObject(JsonUtils.toJsonString(notifyRequest), MidjourneyNotifyReqVO.class))); | |
| 68 | 73 | } |
| 69 | 74 | // 4、批了更新 updateImageList |
| 70 | 75 | imageMapper.updateBatch(updateImageList); | ... | ... |
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
| ... | ... | @@ -186,11 +186,13 @@ public class AiImageServiceImpl implements AiImageService { |
| 186 | 186 | public AiImageDO buildUpdateImage(Long imageId, MidjourneyNotifyReqVO notifyReqVO) { |
| 187 | 187 | // 1、转换状态 |
| 188 | 188 | String imageStatus = null; |
| 189 | - MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notifyReqVO.getStatus()); | |
| 190 | - if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { | |
| 191 | - imageStatus = AiImageStatusEnum.SUCCESS.getStatus(); | |
| 192 | - } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { | |
| 193 | - imageStatus = AiImageStatusEnum.FAIL.getStatus(); | |
| 189 | + if (StrUtil.isNotBlank(notifyReqVO.getStatus())) { | |
| 190 | + MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notifyReqVO.getStatus()); | |
| 191 | + if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { | |
| 192 | + imageStatus = AiImageStatusEnum.SUCCESS.getStatus(); | |
| 193 | + } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { | |
| 194 | + imageStatus = AiImageStatusEnum.FAIL.getStatus(); | |
| 195 | + } | |
| 194 | 196 | } |
| 195 | 197 | |
| 196 | 198 | // 2、上传图片 |
| ... | ... | @@ -261,7 +263,7 @@ public class AiImageServiceImpl implements AiImageService { |
| 261 | 263 | break; |
| 262 | 264 | } |
| 263 | 265 | } |
| 264 | - if (isTrue) { | |
| 266 | + if (!isTrue) { | |
| 265 | 267 | throw exception(AI_IMAGE_CUSTOM_ID_NOT_EXISTS); |
| 266 | 268 | } |
| 267 | 269 | } | ... | ... |
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java