Commit 7268f002d830c09fb93b040374a826cc4d7a4acb

Authored by cherishsince
1 parent 9878abb0

【优化】dall保存

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/image/vo/AiImageListRespVO.java
1 1 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import com.baomidou.mybatisplus.annotation.FieldFill;
4 5 import com.baomidou.mybatisplus.annotation.IdType;
  6 +import com.baomidou.mybatisplus.annotation.TableField;
5 7 import com.baomidou.mybatisplus.annotation.TableId;
6 8 import io.swagger.v3.oas.annotations.media.Schema;
7 9 import lombok.Data;
8 10 import lombok.experimental.Accessors;
9 11  
  12 +import java.time.LocalDateTime;
  13 +
10 14 /**
11 15 * midjourney req
12 16 *
... ... @@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam {
50 54 @Schema(description = "是否发布")
51 55 private String publicStatus;
52 56  
  57 + @Schema(description = "创建时间")
  58 + private LocalDateTime createTime;
  59 +
  60 + @Schema(description = "更新时间")
  61 + private LocalDateTime updateTime;
  62 +
53 63 // ============ mj 需要字段
54 64  
55 65 @Schema(description = "用户操作的Nonce编号(MJ返回)")
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/convert/AiImageConvert.java
... ... @@ -62,4 +62,12 @@ public interface AiImageConvert {
62 62 * @return
63 63 */
64 64 AiImageMidjourneyOperationsVO convertAiImageMidjourneyOperationsVO(MidjourneyMessage.Component component);
  65 +
  66 + /**
  67 + * 转换 - AiImageDO
  68 + *
  69 + * @param req
  70 + * @return
  71 + */
  72 + AiImageDO convertAiImageDO(AiImageDallReqVO req);
65 73 }
... ...
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/service/image/AiImageServiceImpl.java
... ... @@ -100,10 +100,12 @@ public class AiImageServiceImpl implements AiImageService {
100 100  
101 101 @Override
102 102 public AiImageDallRespVO dallDrawing(AiImageDallReqVO req) {
  103 + Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
103 104 // 保存数据库
104   - AiImageDO aiImageDO = doSave(req.getPrompt(), req.getSize(), req.getModel(),
105   - null, null, AiImageStatusEnum.IN_PROGRESS, null,
106   - null, null, null);
  105 + AiImageDO aiImageDO = AiImageConvert.INSTANCE.convertAiImageDO(req);
  106 + aiImageDO.setStatus(AiImageStatusEnum.IN_PROGRESS.getStatus());
  107 + aiImageDO.setUserId(loginUserId);
  108 + aiImageMapper.insert(aiImageDO);
107 109 // 异步执行
108 110 EXECUTOR.execute(() -> {
109 111 try {
... ... @@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService {
149 151 public void midjourney(AiImageMidjourneyReqVO req) {
150 152 // 保存数据库
151 153 String messageId = String.valueOf(IdUtil.getSnowflakeNextId());
152   - AiImageDO aiImageDO = doSave(req.getPrompt(), null, "midjoureny",
153   - null, null, AiImageStatusEnum.SUBMIT, null,
154   - messageId, null, null);
  154 + // todo
  155 +// AiImageDO aiImageDO = doSave(req.getPrompt(), null, "midjoureny",
  156 +// null, null, AiImageStatusEnum.SUBMIT, null,
  157 +// messageId, null, null);
155 158 // 提交 midjourney 任务
156 159 Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt());
157 160 if (!imagine) {
... ... @@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService {
173 176 // 获取 mjOperationName
174 177 String mjOperationName = midjourneyOperationsVO.getLabel();
175 178 // 保存一个 image 任务记录
176   - doSave(aiImageDO.getPrompt(), aiImageDO.getSize(), aiImageDO.getModel(),
177   - null, null, AiImageStatusEnum.SUBMIT, null,
178   - req.getMessageId(), req.getOperateId(), mjOperationName);
  179 + // todo
  180 +// doSave(aiImageDO.getPrompt(), aiImageDO.getSize(), aiImageDO.getModel(),
  181 +// null, null, AiImageStatusEnum.SUBMIT, null,
  182 +// req.getMessageId(), req.getOperateId(), mjOperationName);
179 183 // 提交操作
180 184 midjourneyInteractionsApi.reRoll(
181 185 new ReRollReq()
... ... @@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService {
222 226 }
223 227 return aiImageDO;
224 228 }
225   -
226   - private AiImageDO doSave(String prompt,
227   - String size,
228   - String model,
229   - String picUrl,
230   - String originalPicUrl,
231   - AiImageStatusEnum statusEnum,
232   - String errorMessage,
233   - String mjMessageId,
234   - String mjOperationId,
235   - String mjOperationName) {
236   - // 保存数据库
237   - Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
238   - AiImageDO aiImageDO = new AiImageDO();
239   - aiImageDO.setId(null);
240   - aiImageDO.setPrompt(prompt);
241   - aiImageDO.setSize(size);
242   - aiImageDO.setModel(model);
243   - aiImageDO.setUserId(loginUserId);
244   - // TODO @芋艿 如何上传到自己服务器
245   - aiImageDO.setPicUrl(null);
246   - aiImageDO.setStatus(statusEnum.getStatus());
247   - aiImageDO.setPicUrl(picUrl);
248   - aiImageDO.setOriginalPicUrl(originalPicUrl);
249   - aiImageDO.setErrorMessage(errorMessage);
250   - //
251   - aiImageDO.setMjNonceId(mjMessageId);
252   - aiImageDO.setMjOperationId(mjOperationId);
253   - aiImageDO.setMjOperationName(mjOperationName);
254   - aiImageMapper.insert(aiImageDO);
255   - return aiImageDO;
256   - }
257 229 }
... ...