Преглед изворни кода

fix 网页版mj会话记录

zwhui пре 2 година
родитељ
комит
df43f08754

+ 6 - 134
midjourney/src/main/java/com/yhlxj/dao/model/dto/AlphaSubmitRequestDTO.java

@@ -1,11 +1,14 @@
 package com.yhlxj.dao.model.dto;
 
+import lombok.Data;
+
 import java.util.List;
 
 /**
  * @author chan
  * @date 2024/8/5 16:56
  */
+@Data
 public class AlphaSubmitRequestDTO {
 
     private String prompt;
@@ -18,152 +21,21 @@ public class AlphaSubmitRequestDTO {
     private String channelId;
     private Metadata metadata;
     private String eventType;
+    private String jobId;
 
-    // Getters and setters
-
-    public String getPrompt() {
-        return prompt;
-    }
-
-    public void setPrompt(String prompt) {
-        this.prompt = prompt;
-    }
-
-    public List<String> getPrompts() {
-        return prompts;
-    }
-
-    public void setPrompts(List<String> prompts) {
-        this.prompts = prompts;
-    }
-
-    public Flags getFlags() {
-        return flags;
-    }
-
-    public void setFlags(Flags flags) {
-        this.flags = flags;
-    }
-
-    public String getJobType() {
-        return jobType;
-    }
-
-    public void setJobType(String jobType) {
-        this.jobType = jobType;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public int getIndex() {
-        return index;
-    }
-
-    public void setIndex(int index) {
-        this.index = index;
-    }
-
-    public String getRoomId() {
-        return roomId;
-    }
-
-    public void setRoomId(String roomId) {
-        this.roomId = roomId;
-    }
-
-    public String getChannelId() {
-        return channelId;
-    }
-
-    public void setChannelId(String channelId) {
-        this.channelId = channelId;
-    }
-
-    public Metadata getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(Metadata metadata) {
-        this.metadata = metadata;
-    }
-
-
-    public String getEventType() {
-        return eventType;
-    }
-
-    public void setEventType(String eventType) {
-        this.eventType = eventType;
-    }
-
+    @Data
     public static class Flags {
         private String mode;
         private boolean isPrivate;
 
-        // Getters and setters
-
-        public String getMode() {
-            return mode;
-        }
-
-        public void setMode(String mode) {
-            this.mode = mode;
-        }
-
-        public boolean isPrivate() {
-            return isPrivate;
-        }
-
-        public void setPrivate(boolean isPrivate) {
-            this.isPrivate = isPrivate;
-        }
     }
 
+    @Data
     public static class Metadata {
         private List<String> imagePrompts;
         private List<String> imageReferences;
         private List<String> characterReferences;
         private boolean autoPrompt;
-
-        // Getters and setters
-
-        public List<String> getImagePrompts() {
-            return imagePrompts;
-        }
-
-        public void setImagePrompts(List<String> imagePrompts) {
-            this.imagePrompts = imagePrompts;
-        }
-
-        public List<String> getImageReferences() {
-            return imageReferences;
-        }
-
-        public void setImageReferences(List<String> imageReferences) {
-            this.imageReferences = imageReferences;
-        }
-
-        public List<String> getCharacterReferences() {
-            return characterReferences;
-        }
-
-        public void setCharacterReferences(List<String> characterReferences) {
-            this.characterReferences = characterReferences;
-        }
-
-        public boolean isAutoPrompt() {
-            return autoPrompt;
-        }
-
-        public void setAutoPrompt(boolean autoPrompt) {
-            this.autoPrompt = autoPrompt;
-        }
     }
 
 }

+ 2 - 2
midjourney/src/main/java/com/yhlxj/dao/model/entity/MidjourneyUserConversationRecord.java

@@ -10,8 +10,8 @@ import lombok.Data;
  * @date 2024/3/18 17:10
  */
 @Data
-@TableName("chatgpt_user_conversation_record")
-@SearchBean(tables = "chatgpt_user_conversation_record")
+@TableName("midjourney_user_conversation_record")
+@SearchBean(tables = "midjourney_user_conversation_record")
 public class MidjourneyUserConversationRecord extends BaseEntity {
 
 

+ 1 - 1
midjourney/src/main/java/com/yhlxj/service/midjourney/MidjourneyService.java

@@ -50,7 +50,7 @@ public interface MidjourneyService {
 
     Long checkUserLimit(MidjourneyUser user,Integer mode);
 
-    void saveConversationRecord(String userToken, AlphaSubmitRequestDTO conversationRequest,String carid,String status);
+    void saveConversationRecord(String userToken, String json,String carid,String status);
 
     void userSubmitLimit(MidjourneyUser user,String action,Object customId,Boolean again);
 }

+ 12 - 6
midjourney/src/main/java/com/yhlxj/service/midjourney/impl/MidjourneyServiceImpl.java

@@ -1449,19 +1449,25 @@ public class MidjourneyServiceImpl implements MidjourneyService {
 
 
     @Override
-    public void saveConversationRecord(String userToken, AlphaSubmitRequestDTO conversationRequest,String carid,String status) {
+    public void saveConversationRecord(String userToken, String json,String carid,String status) {
+        JSONArray success = JSONUtil.parseObj(json).getJSONArray("success");
+        if (success.isEmpty()) {
+            return;
+        }
+        JSONObject jsons = success.getJSONObject(0);
         LambdaQueryWrapper<MidjourneySession> wrapper = Wrappers.lambdaQuery(MidjourneySession.class).eq(MidjourneySession::getCarId, carid);
         MidjourneySession midjourneySession = midjourneySessionMapper.selectOne(wrapper);
-        MidjourneyUserConversationRecord midjourneyUserConversationRecord = midjourneyUserConversationRecordMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUserConversationRecord.class).eq(MidjourneyUserConversationRecord::getConversationId, conversationRequest.getId()));
+        String jobId = jsons.getStr("job_id");
+        MidjourneyUserConversationRecord midjourneyUserConversationRecord = midjourneyUserConversationRecordMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUserConversationRecord.class).eq(MidjourneyUserConversationRecord::getConversationId, jobId));
         if (midjourneyUserConversationRecord == null) {
             midjourneyUserConversationRecord = new MidjourneyUserConversationRecord();
             midjourneyUserConversationRecord.setUserToken(userToken);
             midjourneyUserConversationRecord.setCarId(midjourneySession.getCarId());
             midjourneyUserConversationRecord.setCarName(midjourneySession.getCarName());
-            midjourneyUserConversationRecord.setConversationId(conversationRequest.getId());
-            midjourneyUserConversationRecord.setMode(conversationRequest.getFlags().getMode());
-            midjourneyUserConversationRecord.setAction(conversationRequest.getEventType());
-            midjourneyUserConversationRecord.setPrompt(conversationRequest.getPrompt());
+            midjourneyUserConversationRecord.setConversationId(jobId);
+            midjourneyUserConversationRecord.setMode(JSONUtil.parseObj(jsons.getStr("flags")).getStr("mode"));
+            midjourneyUserConversationRecord.setAction(jsons.getStr("event_type"));
+            midjourneyUserConversationRecord.setPrompt(jsons.getStr("prompt"));
             midjourneyUserConversationRecord.setStatus(status);
             midjourneyUserConversationRecordMapper.insert(midjourneyUserConversationRecord);
         }else {

+ 13 - 10
midjourney/src/main/java/com/yhlxj/web/mirror/AlphaMidjourneyController.java

@@ -1,6 +1,9 @@
 package com.yhlxj.web.mirror;
 
+import cn.hutool.json.JSONUtil;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
+import com.cyksj.common.util.IoKit;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.yhlxj.dao.model.dto.AlphaSubmitRequestDTO;
@@ -17,6 +20,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 
 /**
  * @author chan
@@ -80,13 +86,6 @@ public class AlphaMidjourneyController {
         } else if (MODE_RELAX.equals(mode) && user.getMjRelaxNum() < 1) {
             return badRequestResponse("您已经没有次数啦。模式:" + mode);
         }
-
-        String carid = request.getHeader("Carid");
-        if(StringUtils.isNotBlank(carid)){
-            TASK_EXECUTOR.execute(() -> {
-                midjourneyService.saveConversationRecord(userToken, submitRequestDTO, carid,"IN_PROGRESS");
-            });
-        }
         return new AlphaAuditLimitResponse();
     }
 
@@ -103,8 +102,12 @@ public class AlphaMidjourneyController {
     }
 
     @RequestMapping("/notifyUrl")
-    public Result<String> notifyUrl(@RequestBody AlphaSubmitRequestDTO submitRequestDTO) {
-        log.info("提交成功 通知扣次数");
+    public Result<String> notifyUrl() throws IOException {
+        InputStream inputStream = request.getInputStream();
+        byte[] bytes = IoKit.toBytes(inputStream);
+        String json = new String(bytes, StandardCharsets.UTF_8);
+        inputStream.close();
+        log.info("提交成功 通知扣次数 {}", json);
         String userToken = getUserTokenFromRequest();
         String carid = request.getHeader("Carid");
 
@@ -116,7 +119,7 @@ public class AlphaMidjourneyController {
         MidjourneyUser user = midjourneyService.getUser(userToken);
         if(StringUtils.isNotBlank(carid)){
             TASK_EXECUTOR.execute(() -> {
-                midjourneyService.saveConversationRecord(userToken, submitRequestDTO, carid,"SUCCESS");
+                midjourneyService.saveConversationRecord(userToken, json, carid,"SUCCESS");
             });
         }
         midjourneyService.checkUserLimit(user, MODE_RELAX.equals(mode) ? 2 : 1);