From d332c0b175f353c597b8700cccbec74b45c7f9ec Mon Sep 17 00:00:00 2001 From: cherishsince Date: Mon, 17 Jun 2024 21:38:17 +0800 Subject: [PATCH] 【优化】处理 todo 运行异常 action 不能操作问题 --- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java | 25 +++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java | 22 ++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/job/MidjourneyJob.java | 11 ++++++++--- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java | 14 ++++++++------ yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java | 24 ------------------------ yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java | 22 ---------------------- yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java | 2 +- 7 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java delete mode 100644 yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java delete mode 100644 yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java new file mode 100644 index 0000000..fbdb49a --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyConfiguration.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.ai.config; + +import cn.iocoder.yudao.framework.ai.core.model.midjourney.MidjourneyConfig; +import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 配置 + * + * @author fansili + * @time 2024/6/13 09:50 + */ +@Configuration +public class YudaoMidjourneyConfiguration { + + @Bean + @ConditionalOnProperty(value = "ai.midjourney-proxy.enable", havingValue = "true") + public MidjourneyApi midjourneyApi(YudaoMidjourneyProperties midjourneyProperties) { + return new MidjourneyApi(BeanUtils.toBean(midjourneyProperties, MidjourneyConfig.class)); + } +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java new file mode 100644 index 0000000..c58e20b --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/config/YudaoMidjourneyProperties.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.ai.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * Midjourney 属性 + * + * @author fansili + * @time 2024/6/5 15:02 + * @since 1.0 + */ +@Configuration +@ConfigurationProperties(prefix = "ai.midjourney-proxy") +@Data +public class YudaoMidjourneyProperties { + + private String enable; + private String key; + private String url; +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/job/MidjourneyJob.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/job/MidjourneyJob.java index ff64915..023e500 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/job/MidjourneyJob.java +++ b/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; import cn.iocoder.yudao.framework.ai.core.enums.AiPlatformEnum; import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.module.ai.controller.admin.image.vo.MidjourneyNotifyReqVO; import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; import cn.iocoder.yudao.module.ai.dal.mysql.image.AiImageMapper; import cn.iocoder.yudao.module.ai.enums.image.AiImageStatusEnum; @@ -38,7 +41,7 @@ public class MidjourneyJob implements JobHandler { // TODO @fan:这个方法,建议实现到 AiImageService,例如说 midjourneySync,返回 int 同步数量。 @Override - public String execute(String param) throws Exception { + public String execute(String param) { // 1、获取 midjourney 平台,状态在 “进行中” 的 image List imageList = imageMapper.selectByStatusAndPlatform(AiImageStatusEnum.IN_PROGRESS, AiPlatformEnum.MIDJOURNEY); log.info("Midjourney 同步 - 任务数量 {}!", imageList.size()); @@ -61,10 +64,12 @@ public class MidjourneyJob implements JobHandler { } // TODO @ 3.1 和 3.2 是不是融合下;get,然后判空,continue; // 3.2 获取通知对象 -// MidjourneyNotifyReqVO notifyReqVO = taskIdMap.get(aiImageDO.getTaskId()); + MidjourneyApi.NotifyRequest notifyRequest = taskIdMap.get(aiImageDO.getTaskId()); // 3.2 构建更新对象 // TODO @fan:建议 List 作为 imageService 去更新; -// updateImageList.add(imageService.buildUpdateImage(aiImageDO.getId(), notifyReqVO)); + // TODO @芋艿 BeanUtils.toBean 转换为 null + updateImageList.add(imageService.buildUpdateImage(aiImageDO.getId(), + JsonUtils.parseObject(JsonUtils.toJsonString(notifyRequest), MidjourneyNotifyReqVO.class))); } // 4、批了更新 updateImageList imageMapper.updateBatch(updateImageList); diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java index e38d609..706ef79 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java +++ b/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 { public AiImageDO buildUpdateImage(Long imageId, MidjourneyNotifyReqVO notifyReqVO) { // 1、转换状态 String imageStatus = null; - MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notifyReqVO.getStatus()); - if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { - imageStatus = AiImageStatusEnum.SUCCESS.getStatus(); - } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { - imageStatus = AiImageStatusEnum.FAIL.getStatus(); + if (StrUtil.isNotBlank(notifyReqVO.getStatus())) { + MidjourneyApi.TaskStatusEnum taskStatusEnum = MidjourneyApi.TaskStatusEnum.valueOf(notifyReqVO.getStatus()); + if (MidjourneyApi.TaskStatusEnum.SUCCESS == taskStatusEnum) { + imageStatus = AiImageStatusEnum.SUCCESS.getStatus(); + } else if (MidjourneyApi.TaskStatusEnum.FAILURE == taskStatusEnum) { + imageStatus = AiImageStatusEnum.FAIL.getStatus(); + } } // 2、上传图片 @@ -261,7 +263,7 @@ public class AiImageServiceImpl implements AiImageService { break; } } - if (isTrue) { + if (!isTrue) { throw exception(AI_IMAGE_CUSTOM_ID_NOT_EXISTS); } } diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java deleted file mode 100644 index 40a017b..0000000 --- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyConfiguration.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.iocoder.yudao.framework.ai.config; - -import cn.iocoder.yudao.framework.ai.core.model.midjourney.MidjourneyConfig; -import cn.iocoder.yudao.framework.ai.core.model.midjourney.api.MidjourneyApi; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 配置 - * - * @author fansili - * @time 2024/6/13 09:50 - */ -@Configuration -public class YudaoMidjourneyConfiguration { - - @Bean - @ConditionalOnProperty(value = "ai.midjourney-proxy.enable", havingValue = "true") - public MidjourneyApi midjourneyApi(YudaoMidjourneyProperties midjourneyProperties) { - return new MidjourneyApi(BeanUtils.toBean(midjourneyProperties, MidjourneyConfig.class)); - } -} diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java deleted file mode 100644 index 98e98eb..0000000 --- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/config/YudaoMidjourneyProperties.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.iocoder.yudao.framework.ai.config; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; - -/** - * Midjourney 属性 - * - * @author fansili - * @time 2024/6/5 15:02 - * @since 1.0 - */ -@Configuration -@ConfigurationProperties(prefix = "ai.midjourney-proxy") -@Data -public class YudaoMidjourneyProperties { - - private String enable; - private String key; - private String url; -} diff --git a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java index c00a9b8..962776d 100644 --- a/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java +++ b/yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/core/model/midjourney/api/MidjourneyApi.java @@ -202,7 +202,7 @@ public class MidjourneyApi { public enum ModelEnum { MIDJOURNEY("midjourney", "midjourney"), - NIJI("Niji", "Niji"), + NIJI("niji", "niji"), ; -- libgit2 0.21.4