|
@@ -1,6 +1,5 @@
|
|
|
package com.cyksj.service.midjourney.impl;
|
|
package com.cyksj.service.midjourney.impl;
|
|
|
|
|
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
import cn.hutool.http.HttpRequest;
|
|
@@ -15,7 +14,6 @@ import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.mapper.MidjourneyUserConversationMapper;
|
|
import com.cyksj.mapper.MidjourneyUserConversationMapper;
|
|
|
import com.cyksj.model.dto.BlendDimensions;
|
|
import com.cyksj.model.dto.BlendDimensions;
|
|
|
import com.cyksj.model.dto.MessageButton;
|
|
import com.cyksj.model.dto.MessageButton;
|
|
|
-import com.cyksj.model.entity.MidjourneyAccount;
|
|
|
|
|
import com.cyksj.model.entity.MidjourneyUser;
|
|
import com.cyksj.model.entity.MidjourneyUser;
|
|
|
import com.cyksj.model.entity.MidjourneyUserConversation;
|
|
import com.cyksj.model.entity.MidjourneyUserConversation;
|
|
|
import com.cyksj.model.response.SubmitResult;
|
|
import com.cyksj.model.response.SubmitResult;
|
|
@@ -25,15 +23,13 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
import javax.imageio.stream.FileImageOutputStream;
|
|
import javax.imageio.stream.FileImageOutputStream;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
-import java.util.regex.Matcher;
|
|
|
|
|
-import java.util.regex.Pattern;
|
|
|
|
|
|
|
+import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author zwhui
|
|
* @author zwhui
|
|
@@ -144,6 +140,7 @@ public class MidjourneyServiceImpl implements MidjourneyService {
|
|
|
if (!user.getMode().equals(conversation.getMode())) {
|
|
if (!user.getMode().equals(conversation.getMode())) {
|
|
|
throw BusinessRuntimeException.getInstance("当前出图模式与关联任务出图模式不符");
|
|
throw BusinessRuntimeException.getInstance("当前出图模式与关联任务出图模式不符");
|
|
|
}
|
|
}
|
|
|
|
|
+ AtomicBoolean flag = new AtomicBoolean(false);
|
|
|
if (StringUtils.isNotBlank(conversation.getButtons())){
|
|
if (StringUtils.isNotBlank(conversation.getButtons())){
|
|
|
List<MessageButton> messageButtons = Jsons.parseList(conversation.getButtons(), MessageButton.class);
|
|
List<MessageButton> messageButtons = Jsons.parseList(conversation.getButtons(), MessageButton.class);
|
|
|
messageButtons.forEach(button -> {
|
|
messageButtons.forEach(button -> {
|
|
@@ -154,8 +151,7 @@ public class MidjourneyServiceImpl implements MidjourneyService {
|
|
|
|| button.getEmoji().equals("🔄") || button.getCustomId().contains("PromptAnalyzer:")
|
|
|| button.getEmoji().equals("🔄") || button.getCustomId().contains("PromptAnalyzer:")
|
|
|
|| button.getCustomId().contains("PicReader::") || button.getCustomId().contains("::variation::")
|
|
|| button.getCustomId().contains("PicReader::") || button.getCustomId().contains("::variation::")
|
|
|
|| button.getCustomId().contains("::CustomZoom::")) {
|
|
|| button.getCustomId().contains("::CustomZoom::")) {
|
|
|
- // 以上操作有弹窗确认,恢复次数
|
|
|
|
|
- recoverUserLimit(user.getId(), user.getMode());
|
|
|
|
|
|
|
+ flag.set(true);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
@@ -169,6 +165,10 @@ public class MidjourneyServiceImpl implements MidjourneyService {
|
|
|
Map<String, Object> param = MapUtil.builder(new HashMap<String,Object>())
|
|
Map<String, Object> param = MapUtil.builder(new HashMap<String,Object>())
|
|
|
.put("taskId", taskId).put("state", user.getId()).put("customId", customId).build();
|
|
.put("taskId", taskId).put("state", user.getId()).put("customId", customId).build();
|
|
|
SubmitResult result = submit(user.getMode(),"action", param);
|
|
SubmitResult result = submit(user.getMode(),"action", param);
|
|
|
|
|
+ if (flag.get()) {
|
|
|
|
|
+ // 以上操作有弹窗确认,恢复次数
|
|
|
|
|
+ recoverUserLimit(user.getId(), user.getMode());
|
|
|
|
|
+ }
|
|
|
return saveConversation(user.getId(), user.getMode(), Long.parseLong(result.getResult()),result.getProperties(),"ACTION", StringUtils.EMPTY);
|
|
return saveConversation(user.getId(), user.getMode(), Long.parseLong(result.getResult()),result.getProperties(),"ACTION", StringUtils.EMPTY);
|
|
|
}
|
|
}
|
|
|
|
|
|