From 1c0cf4b860596de08a88602b2e3b8725b6f46502 Mon Sep 17 00:00:00 2001 From: cherishsince Date: Thu, 30 May 2024 10:18:55 +0800 Subject: [PATCH] 【解决todo】所有转换都不依赖 convert 采用 BeanUtils --- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java | 82 ---------------------------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImagePageMyRespVO.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java | 74 -------------------------------------------------------------------------- yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/midjourneyHandler/YuDaoMidjourneyMessageHandler.java | 33 +++++++++++++++------------------ 4 files changed, 92 insertions(+), 174 deletions(-) delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java create mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImagePageMyRespVO.java delete mode 100644 yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java deleted file mode 100644 index 1ee14cb..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java +++ /dev/null @@ -1,82 +0,0 @@ -package cn.iocoder.yudao.module.ai.controller.admin.image.vo; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.experimental.Accessors; - -import java.time.LocalDateTime; -import java.util.Map; - -// TODO @fan:可以考虑,复用 AiImageDallRespVO,统一成 AIImageRespVO -/** - * midjourney req - * - * @author fansili - * @time 2024/4/28 17:42 - * @since 1.0 - */ -@Data -@Accessors(chain = true) -public class AiImageListRespVO extends PageParam { - - @Schema(description = "id编号", example = "1") - private Long id; - - @Schema(description = "用户id", example = "1") - private Long userId; - - @Schema(description = "提示词", example = "南极的小企鹅") - private String prompt; - - @Schema(description = "平台", example = "openai") - private String platform; - - @Schema(description = "模型", example = "dall2") - private String model; - - @Schema(description = "图片宽度", example = "1024") - private String width; - - @Schema(description = "图片高度", example = "1024") - private String height; - - @Schema(description = "绘画状态:10 进行中、20 绘画完成、30 绘画失败", example = "10") - private String status; - - @Schema(description = "是否发布", example = "public") - private String publicStatus; - - @Schema(description = "图片地址(自己服务器)", example = "http://") - private String picUrl; - - @Schema(description = "绘画图片地址(绘画好的服务器)", example = "http://") - private String originalPicUrl; - - @Schema(description = "绘画错误信息", example = "图片错误信息") - private String errorMessage; - - // ============ 绘画请求参数 - - // todo @fan:下面的 style、mjNonceId 直接就不用注释啦,直接去看 DO 完事哈 - - /** - * - style - */ - @Schema(description = "绘画请求参数") - private Map drawRequest; - - /** - * - mjNonceId - * - mjOperationId - * - mjOperationName - * - mjOperations - */ - @Schema(description = "绘画请求响应参数") - private Map drawResponse; - -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImagePageMyRespVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImagePageMyRespVO.java new file mode 100644 index 0000000..e542879 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImagePageMyRespVO.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.ai.controller.admin.image.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Map; + +// TODO @fan:可以考虑,复用 AiImageDallRespVO,统一成 AIImageRespVO +/** + * midjourney req + * + * @author fansili + * @time 2024/4/28 17:42 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +public class AiImagePageMyRespVO extends PageParam { + + @Schema(description = "id编号", example = "1") + private Long id; + + @Schema(description = "用户id", example = "1") + private Long userId; + + @Schema(description = "提示词", example = "南极的小企鹅") + private String prompt; + + @Schema(description = "平台", example = "openai") + private String platform; + + @Schema(description = "模型", example = "dall2") + private String model; + + @Schema(description = "图片宽度", example = "1024") + private String width; + + @Schema(description = "图片高度", example = "1024") + private String height; + + @Schema(description = "绘画状态:10 进行中、20 绘画完成、30 绘画失败", example = "10") + private String status; + + @Schema(description = "是否发布", example = "public") + private String publicStatus; + + @Schema(description = "图片地址(自己服务器)", example = "http://") + private String picUrl; + + @Schema(description = "绘画图片地址(绘画好的服务器)", example = "http://") + private String originalPicUrl; + + @Schema(description = "绘画错误信息", example = "图片错误信息") + private String errorMessage; + + // ============ 绘画请求参数 + + // todo @fan:下面的 style、mjNonceId 直接就不用注释啦,直接去看 DO 完事哈 + + /** + * - style + */ + @Schema(description = "绘画请求参数") + private Map drawRequest; + + /** + * - mjNonceId + * - mjOperationId + * - mjOperationName + * - mjOperations + */ + @Schema(description = "绘画请求响应参数") + private Map drawResponse; + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java deleted file mode 100644 index d094f48..0000000 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.iocoder.yudao.module.ai.convert; - -import org.springframework.ai.models.midjourney.MidjourneyMessage; -import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallReqVO; -import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallRespVO; -import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageListRespVO; -import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyOperationsVO; -import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -import java.util.List; - -// TODO @fan:convert 可以考虑去掉,使用 BeanUtils.copy 替代 -/** - * ai image convert - * - * @author fansili - * @time 2024/4/18 16:39 - * @since 1.0 - */ -@Mapper -public interface AiImageConvert { - - AiImageConvert INSTANCE = Mappers.getMapper(AiImageConvert.class); - - /** - * 转换 - AiImageDallDrawingRespVO - * - * @param req - * @return - */ - AiImageDallRespVO convertAiImageDallDrawingRespVO(AiImageDO req); - - /** - * 转换 - AiImageDallDrawingRespVO - * - * @param req - * @return - */ - AiImageDallRespVO convertAiImageDallDrawingRespVO(AiImageDallReqVO req); - - /** - * 转换 - AiImageListRespVO - * - * @param list - * @return - */ - List convertAiImageListRespVO(List list); - - /** - * 转换 - AiImageListRespVO - * - * @param aiImageDO - * @return - */ - AiImageListRespVO convertAiImageListRespVO(AiImageDO aiImageDO); - - /** - * 转换 - AiImageMidjourneyOperationsVO - * - * @param component - * @return - */ - AiImageMidjourneyOperationsVO convertAiImageMidjourneyOperationsVO(MidjourneyMessage.Component component); - - /** - * 转换 - AiImageDO - * - * @param req - * @return - */ - AiImageDO convertAiImageDO(AiImageDallReqVO req); -} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/midjourneyHandler/YuDaoMidjourneyMessageHandler.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/midjourneyHandler/YuDaoMidjourneyMessageHandler.java index 6235a9b..0568bbe 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/midjourneyHandler/YuDaoMidjourneyMessageHandler.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/midjourneyHandler/YuDaoMidjourneyMessageHandler.java @@ -2,23 +2,19 @@ package cn.iocoder.yudao.module.ai.service.image.midjourneyHandler; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; -import org.springframework.ai.models.midjourney.MidjourneyMessage; -import org.springframework.ai.models.midjourney.constants.MidjourneyGennerateStatusEnum; -import org.springframework.ai.models.midjourney.webSocket.MidjourneyMessageHandler; -import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyOperationsVO; -import cn.iocoder.yudao.module.ai.convert.AiImageConvert; 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.AiImageStatusEnum; +import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.ai.models.midjourney.MidjourneyMessage; +import org.springframework.ai.models.midjourney.constants.MidjourneyGennerateStatusEnum; +import org.springframework.ai.models.midjourney.webSocket.MidjourneyMessageHandler; import org.springframework.stereotype.Component; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * yudao message handler @@ -113,15 +109,16 @@ public class YuDaoMidjourneyMessageHandler implements MidjourneyMessageHandler { } private List getMidjourneyOperationsList(MidjourneyMessage midjourneyMessage) { - // 为空直接返回 - if (CollUtil.isEmpty(midjourneyMessage.getComponents())) { - return Collections.emptyList(); - } - // 将 component 转成 AiImageMidjourneyOperationsVO - return midjourneyMessage.getComponents().stream() - .map(componentType -> componentType.getComponents().stream() - .map(AiImageConvert.INSTANCE::convertAiImageMidjourneyOperationsVO) - .collect(Collectors.toList())) - .toList().stream().flatMap(List::stream).toList(); +// // 为空直接返回 +// if (CollUtil.isEmpty(midjourneyMessage.getComponents())) { +// return Collections.emptyList(); +// } +// // 将 component 转成 AiImageMidjourneyOperationsVO +// return midjourneyMessage.getComponents().stream() +// .map(componentType -> componentType.getComponents().stream() +// .map(AiImageConvert.INSTANCE::convertAiImageMidjourneyOperationsVO) +// .collect(Collectors.toList())) +// .toList().stream().flatMap(List::stream).toList(); + return null; } } -- libgit2 0.21.4