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 package cn.iocoder.yudao.module.ai.controller.admin.image.vo; 1 package cn.iocoder.yudao.module.ai.controller.admin.image.vo;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import com.baomidou.mybatisplus.annotation.FieldFill;
4 import com.baomidou.mybatisplus.annotation.IdType; 5 import com.baomidou.mybatisplus.annotation.IdType;
  6 +import com.baomidou.mybatisplus.annotation.TableField;
5 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
6 import io.swagger.v3.oas.annotations.media.Schema; 8 import io.swagger.v3.oas.annotations.media.Schema;
7 import lombok.Data; 9 import lombok.Data;
8 import lombok.experimental.Accessors; 10 import lombok.experimental.Accessors;
9 11
  12 +import java.time.LocalDateTime;
  13 +
10 /** 14 /**
11 * midjourney req 15 * midjourney req
12 * 16 *
@@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam { @@ -50,6 +54,12 @@ public class AiImageListRespVO extends PageParam {
50 @Schema(description = "是否发布") 54 @Schema(description = "是否发布")
51 private String publicStatus; 55 private String publicStatus;
52 56
  57 + @Schema(description = "创建时间")
  58 + private LocalDateTime createTime;
  59 +
  60 + @Schema(description = "更新时间")
  61 + private LocalDateTime updateTime;
  62 +
53 // ============ mj 需要字段 63 // ============ mj 需要字段
54 64
55 @Schema(description = "用户操作的Nonce编号(MJ返回)") 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,4 +62,12 @@ public interface AiImageConvert {
62 * @return 62 * @return
63 */ 63 */
64 AiImageMidjourneyOperationsVO convertAiImageMidjourneyOperationsVO(MidjourneyMessage.Component component); 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,10 +100,12 @@ public class AiImageServiceImpl implements AiImageService {
100 100
101 @Override 101 @Override
102 public AiImageDallRespVO dallDrawing(AiImageDallReqVO req) { 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 EXECUTOR.execute(() -> { 110 EXECUTOR.execute(() -> {
109 try { 111 try {
@@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService { @@ -149,9 +151,10 @@ public class AiImageServiceImpl implements AiImageService {
149 public void midjourney(AiImageMidjourneyReqVO req) { 151 public void midjourney(AiImageMidjourneyReqVO req) {
150 // 保存数据库 152 // 保存数据库
151 String messageId = String.valueOf(IdUtil.getSnowflakeNextId()); 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 // 提交 midjourney 任务 158 // 提交 midjourney 任务
156 Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt()); 159 Boolean imagine = midjourneyInteractionsApi.imagine(messageId, req.getPrompt());
157 if (!imagine) { 160 if (!imagine) {
@@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService { @@ -173,9 +176,10 @@ public class AiImageServiceImpl implements AiImageService {
173 // 获取 mjOperationName 176 // 获取 mjOperationName
174 String mjOperationName = midjourneyOperationsVO.getLabel(); 177 String mjOperationName = midjourneyOperationsVO.getLabel();
175 // 保存一个 image 任务记录 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 midjourneyInteractionsApi.reRoll( 184 midjourneyInteractionsApi.reRoll(
181 new ReRollReq() 185 new ReRollReq()
@@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService { @@ -222,36 +226,4 @@ public class AiImageServiceImpl implements AiImageService {
222 } 226 }
223 return aiImageDO; 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 }