Commit d332c0b175f353c597b8700cccbec74b45c7f9ec

Authored by cherishsince
1 parent 70cbab9a

【优化】处理 todo 运行异常 action 不能操作问题

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
1   -package cn.iocoder.yudao.framework.ai.config;
  1 +package cn.iocoder.yudao.module.ai.config;
2 2  
3 3 import lombok.Data;
4 4 import org.springframework.boot.context.properties.ConfigurationProperties;
... ...
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
... ... @@ -202,7 +202,7 @@ public class MidjourneyApi {
202 202 public enum ModelEnum {
203 203  
204 204 MIDJOURNEY("midjourney", "midjourney"),
205   - NIJI("Niji", "Niji"),
  205 + NIJI("niji", "niji"),
206 206  
207 207 ;
208 208  
... ...