【优化】数据库增加 mjNonce 更新,生成好、或异常的图片信息
This commit is contained in:
parent
caca47b6d7
commit
8e7fc1ff96
|
@ -49,8 +49,8 @@ public class AiImageDO extends BaseDO {
|
|||
|
||||
// ============ mj 需要字段
|
||||
|
||||
@Schema(description = "用户操作的消息编号(MJ返回)")
|
||||
private String mjMessageId;
|
||||
@Schema(description = "用户操作的Nonce编号(MJ返回)")
|
||||
private String mjNonceId;
|
||||
|
||||
@Schema(description = "用户操作的操作编号(MJ返回)")
|
||||
private String mjOperationId;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.iocoder.yudao.module.ai.dal.mysql;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
@ -17,4 +18,13 @@ import org.springframework.stereotype.Repository;
|
|||
public interface AiImageMapper extends BaseMapperX<AiImageDO> {
|
||||
|
||||
|
||||
/**
|
||||
* 更新 - 根据 messageId
|
||||
*
|
||||
* @param mjNonceId
|
||||
* @param aiImageDO
|
||||
*/
|
||||
default void updateByMjNonce(Long mjNonceId, AiImageDO aiImageDO) {
|
||||
this.update(aiImageDO, new LambdaQueryWrapperX<AiImageDO>().eq(AiImageDO::getMjNonceId, mjNonceId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -145,7 +145,7 @@ public class AiImageServiceImpl implements AiImageService {
|
|||
// 校验 OperateId 是否存在
|
||||
AiImageMidjourneyOperationsVO midjourneyOperationsVO = validateMidjourneyOperationsExists(midjourneyOperations, req.getOperateId());
|
||||
// 校验 messageId
|
||||
validateMessageId(aiImageDO.getMjMessageId(), req.getMessageId());
|
||||
validateMessageId(aiImageDO.getMjNonceId(), req.getMessageId());
|
||||
// 获取 mjOperationName
|
||||
String mjOperationName = midjourneyOperationsVO.getLabel();
|
||||
// 保存一个 image 任务记录
|
||||
|
@ -222,7 +222,7 @@ public class AiImageServiceImpl implements AiImageService {
|
|||
aiImageDO.setDrawingImageUrl(drawingImageUrl);
|
||||
aiImageDO.setDrawingErrorMessage(drawingErrorMessage);
|
||||
//
|
||||
aiImageDO.setMjMessageId(mjMessageId);
|
||||
aiImageDO.setMjNonceId(mjMessageId);
|
||||
aiImageDO.setMjOperationId(mjOperationId);
|
||||
aiImageDO.setMjOperationName(mjOperationName);
|
||||
aiImageMapper.insert(aiImageDO);
|
||||
|
|
|
@ -62,12 +62,11 @@ public class YuDaoMidjourneyMessageHandler implements MidjourneyMessageHandler {
|
|||
|
||||
private void errorHandler(MidjourneyMessage midjourneyMessage) {
|
||||
// image 编号
|
||||
Long aiImageId = Long.valueOf(midjourneyMessage.getNonce());
|
||||
Long nonceId = Long.valueOf(midjourneyMessage.getNonce());
|
||||
// 获取 error message
|
||||
String errorMessage = getErrorMessage(midjourneyMessage);
|
||||
aiImageMapper.updateById(
|
||||
aiImageMapper.updateByMjNonce(nonceId,
|
||||
new AiImageDO()
|
||||
.setId(aiImageId)
|
||||
.setDrawingErrorMessage(errorMessage)
|
||||
.setDrawingStatus(AiImageDrawingStatusEnum.FAIL.getStatus())
|
||||
);
|
||||
|
@ -83,7 +82,7 @@ public class YuDaoMidjourneyMessageHandler implements MidjourneyMessageHandler {
|
|||
|
||||
private void successHandler(MidjourneyMessage midjourneyMessage) {
|
||||
// 获取id
|
||||
Long aiImageId = Long.valueOf(midjourneyMessage.getNonce());
|
||||
Long nonceId = Long.valueOf(midjourneyMessage.getNonce());
|
||||
// 获取生成 url
|
||||
String imageUrl = null;
|
||||
if (CollUtil.isNotEmpty(midjourneyMessage.getAttachments())) {
|
||||
|
@ -102,12 +101,11 @@ public class YuDaoMidjourneyMessageHandler implements MidjourneyMessageHandler {
|
|||
// 获取 midjourneyOperations
|
||||
List<AiImageMidjourneyOperationsVO> midjourneyOperations = getMidjourneyOperationsList(midjourneyMessage);
|
||||
// 更新数据库
|
||||
aiImageMapper.updateById(
|
||||
aiImageMapper.updateByMjNonce(nonceId,
|
||||
new AiImageDO()
|
||||
.setId(aiImageId)
|
||||
.setDrawingImageUrl(imageUrl)
|
||||
.setDrawingStatus(drawingStatusEnum == null ? null : drawingStatusEnum.getStatus())
|
||||
.setMjMessageId(midjourneyMessage.getId())
|
||||
.setMjNonceId(midjourneyMessage.getId())
|
||||
.setMjOperations(JsonUtils.toJsonString(midjourneyOperations))
|
||||
);
|
||||
}
|
||||
|
|
|
@ -20,5 +20,5 @@ Content-Type: application/json
|
|||
Authorization: {{token}}
|
||||
|
||||
{
|
||||
"prompt": "Cute cartoon style mobile game scene, a colorful camping car with an outdoor table and chairs next to it on the road in a spring forest, the simple structure of the camper van, soft lighting, C4D rendering, 3d model in the style of a cartoon, cute shape, a pastel color scheme, closeup view from the side angle, high resolution, bright colors, a happy atmosphere. --ar 1:2 --v 6.0"
|
||||
"prompt": "Cute cartoon style mobile game scene, a colorful camping car with an outdoor table and chairs next to it on the road in a spring forest, the simple structure of the camper van, soft lighting, C4D rendering, 3d model in the style of a cartoon, cute shape, a pastel color scheme, closeup view from the side angle, high resolution, bright colors, a happy atmosphere."
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"type": 2,
|
||||
"application_id": "936929561302675456",
|
||||
"guild_id": "1237948819677904956",
|
||||
"channel_id": "1237948819677904960",
|
||||
"session_id": "4bdb0c32158f625bbd7f0a54bfbb54aa",
|
||||
"data": {
|
||||
"version": "1237876415471554623",
|
||||
"id": "938956540159881230",
|
||||
"name": "imagine",
|
||||
"type": 1,
|
||||
"options": [
|
||||
{
|
||||
"type": 3,
|
||||
"name": "prompt",
|
||||
"value": "哈哈哈"
|
||||
}
|
||||
],
|
||||
"application_command": {
|
||||
"id": "938956540159881230",
|
||||
"type": 1,
|
||||
"application_id": "936929561302675456",
|
||||
"version": "1237876415471554623",
|
||||
"name": "imagine",
|
||||
"description": "Create images with Midjourney",
|
||||
"options": [
|
||||
{
|
||||
"type": 3,
|
||||
"name": "prompt",
|
||||
"description": "The prompt to imagine",
|
||||
"required": true,
|
||||
"description_localized": "The prompt to imagine",
|
||||
"name_localized": "prompt"
|
||||
}
|
||||
],
|
||||
"dm_permission": true,
|
||||
"contexts": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
"integration_types": [
|
||||
0,
|
||||
1
|
||||
],
|
||||
"global_popularity_rank": 1,
|
||||
"description_localized": "Create images with Midjourney",
|
||||
"name_localized": "imagine"
|
||||
},
|
||||
"attachments": []
|
||||
},
|
||||
"nonce": "1238062212925358080",
|
||||
"analytics_location": "slash_ui"
|
||||
}
|
|
@ -52,7 +52,7 @@ spring:
|
|||
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true;useUnicode=true;characterEncoding=utf-8 # SQLServer 连接的示例
|
||||
# url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 连接的示例
|
||||
username: root
|
||||
password: 123456
|
||||
password: root
|
||||
# username: sa # SQL Server 连接的示例
|
||||
# password: Yudao@2024 # SQL Server 连接的示例
|
||||
# username: SYSDBA # DM 连接的示例
|
||||
|
@ -61,7 +61,7 @@ spring:
|
|||
lazy: true # 开启懒加载,保证启动速度
|
||||
url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||
username: root
|
||||
password: 123456
|
||||
password: root
|
||||
|
||||
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
|
||||
data:
|
||||
|
@ -248,9 +248,9 @@ yudao:
|
|||
style: vivid
|
||||
midjourney:
|
||||
enable: true
|
||||
token: OTc1MzcyNDg1OTcxMzEyNzAw.G2iiSo.OqW9vToC5dokiyb1QOWnCwRPsYpOjLyNcf9--M
|
||||
guild-id: 1234355413420347402
|
||||
channel-id: 1234380679576424448
|
||||
token: MTE4MjE3MjY2MjkxNTY3ODIzOA.GEV1SG.c49F8lZoGCUHwsj8O0UdodmM6nyQHvuD2fXflw
|
||||
guild-id: 1237948819677904956
|
||||
channel-id: 1237948819677904960
|
||||
captcha:
|
||||
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
|
||||
security:
|
||||
|
@ -267,6 +267,8 @@ yudao:
|
|||
enable: false
|
||||
demo: false # 关闭演示模式
|
||||
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
|
||||
tenant:
|
||||
enable: false
|
||||
|
||||
justauth:
|
||||
enabled: true
|
||||
|
|
Loading…
Reference in New Issue