Ver Fonte

fix 弹窗直接调modal

zwhui há 2 anos atrás
pai
commit
485bf97e33

+ 14 - 0
netflix-service/src/main/java/com/cyksj/service/midjourney/impl/MidjourneyServiceImpl.java

@@ -19,6 +19,7 @@ import com.cyksj.mapper.MidjourneyUserConversationMapper;
 import com.cyksj.mapper.MidjourneyUserMapper;
 import com.cyksj.model.dto.BlendDimensions;
 import com.cyksj.model.dto.MessageButton;
+import com.cyksj.model.dto.SubmitModalDTO;
 import com.cyksj.model.entity.MidjourneyAccount;
 import com.cyksj.model.entity.MidjourneyUser;
 import com.cyksj.model.entity.MidjourneyUserConversation;
@@ -37,6 +38,7 @@ import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
 /**
@@ -211,12 +213,16 @@ public class MidjourneyServiceImpl implements MidjourneyService {
         if (!user.getMode().equals(conversation.getMode())) {
             throw BusinessRuntimeException.getInstance("当前出图模式与关联任务出图模式不符");
         }
+        AtomicBoolean modalFlag = new AtomicBoolean(false);
         if (StringUtils.isNotBlank(conversation.getButtons())){
             List<MessageButton> messageButtons = Jsons.parseList(conversation.getButtons(), MessageButton.class);
             messageButtons.forEach(button -> {
                 if (button.getCustomId().equals(customId)) {
                     log.info("action customId:{}", customId);
                     button.setStyle(3);
+                    if (!"Vary (Region)".equals(button.getLabel()) && "Custom Zoom".equals(button.getLabel())) {
+                        modalFlag.set(true);
+                    }
                 }
             });
             conversation.setButtons(Jsons.toJson(messageButtons));
@@ -235,6 +241,14 @@ public class MidjourneyServiceImpl implements MidjourneyService {
         if (result.getCode() == 21) {
             // 以上操作有弹窗确认,恢复次数
             recoverUserLimit(user.getId(), user.getMode(),num);
+            if (user.getMode() == 2 && modalFlag.get()){
+                SubmitModalDTO modalParam = new SubmitModalDTO();
+                modalParam.setPrompt(conversation.getPrompt() + " --v 6");
+                modalParam.setTaskId(Long.valueOf(result.getResult()));
+                String modal = HttpUtil.post("http://localhost:" + (EnvCommonService.active.equals(envCommonService.getEnv()) ? "/8081":"/8082") + "/applets/midjourney/submit/modal", Jsons.toJson(modalParam));
+                log.info("modal:{}", modal);
+                return result;
+            }
         }else {
             //syncUser(user.getId(), user.getMode(),num);
             if (!customId.contains("upsample") && user.getMode() == 2) {