chenbiao 2 jaren geleden
bovenliggende
commit
e41d8ac51d

+ 5 - 2
midjourney/src/main/java/com/yhlxj/service/midjourney/impl/MidjourneyServiceImpl.java

@@ -122,10 +122,13 @@ public class MidjourneyServiceImpl implements MidjourneyService {
 
     @Override
     public MidjourneyUser getUser(String userToken) {
+        if(StringUtils.isBlank(userToken)){
+            throw BusinessRuntimeException.getInstance("10001","请重新至官网登录");
+        }
         MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class)
-                .eq(MidjourneyUser::getUserToken, userToken).last("limit 1"));
+                .eq(MidjourneyUser::getUserToken, userToken).last(" limit 1"));
         if (midjourneyUser == null){
-            throw new BusinessRuntimeException("账号不存在,请重新登录");
+            throw BusinessRuntimeException.getInstance("10001","会话已过期,请重新登录");
         }
         if(!redisService.hasKey(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId())){
             redisService.set(RedisService.key.MIDJOURNEY_FAST_LIMIT.getName() + midjourneyUser.getId(),midjourneyUser.getMjFastNum());

+ 22 - 14
midjourney/src/main/java/com/yhlxj/web/mirror/MidjourneyController.java

@@ -1,6 +1,7 @@
 package com.yhlxj.web.mirror;
 
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.NoSubmit;
@@ -30,6 +31,7 @@ import com.yhlxj.service.midjourney.MidjourneyService;
 import com.yhlxj.service.midjourney.MidjourneyUserSettingsService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.validation.annotation.Validated;
@@ -80,8 +82,13 @@ public class MidjourneyController {
 
     private final MidjourneyUserSettingsService midjourneyUserSettingsService;
 
-    public MidjourneyUser getUser(){
+    public MidjourneyUser getUser() throws IOException {
         String userToken = request.getHeader("user-token");
+        String ip = ServletUtil.getClientIP(request);
+        log.info("用户请求 ip:{}, userToken:{}", ip, userToken);
+        if (StringUtils.isBlank(userToken)) {
+            response.sendRedirect("https://nf.video");
+        }
        return midjourneyService.getUser(userToken);
     }
 
@@ -178,7 +185,7 @@ public class MidjourneyController {
      * 查询用户信息
      */
     @GetMapping("/whoami")
-    public Result<MidjourneyUser> queryUser(){
+    public Result<MidjourneyUser> queryUser() throws IOException {
         MidjourneyUser user = getUser();
         return GatewayResponse.SUCCESS.newBuilder().toResult(user);
     }
@@ -189,7 +196,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/imagine")
     @NoSubmit
-    public Result<SubmitResult> submitImagine(@Validated @RequestBody SubmitImagineDTO submitImagineDTO) {
+    public Result<SubmitResult> submitImagine(@Validated @RequestBody SubmitImagineDTO submitImagineDTO) throws IOException {
         log.info("提交Imagine任务,提示:{}",submitImagineDTO.getPrompt());
         MidjourneyUser user = getUser();
         Integer mode = submitImagineDTO.getMode();
@@ -219,7 +226,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/describe")
     @NoSubmit
-    public Result<SubmitResult> submitDescribe(@Validated @RequestBody SubmitDescribeDTO submitDescribeDTO) {
+    public Result<SubmitResult> submitDescribe(@Validated @RequestBody SubmitDescribeDTO submitDescribeDTO) throws IOException {
         log.info("提交Describe任务");
         MidjourneyUser user = getUser();
         Integer mode = submitDescribeDTO.getMode();
@@ -244,7 +251,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/blend")
     @NoSubmit
-    public Result<SubmitResult> submitBlend(@Validated @RequestBody SubmitBlendDTO submitBlendDTO) {
+    public Result<SubmitResult> submitBlend(@Validated @RequestBody SubmitBlendDTO submitBlendDTO) throws IOException {
         log.info("提交Blend任务 dimensions:{},base64数组长度:{}", submitBlendDTO.getDimensions(), submitBlendDTO.getBase64Array().size());
         Integer mode = submitBlendDTO.getMode();
         MidjourneyUser user = getUser();
@@ -269,7 +276,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/modal")
     @NoSubmit
-    public Result<SubmitResult> submitModal(@Validated @RequestBody SubmitModalDTO submitModalDTO) {
+    public Result<SubmitResult> submitModal(@Validated @RequestBody SubmitModalDTO submitModalDTO) throws IOException {
         log.info("提交Modal任务,taskId:{},提示:{}",submitModalDTO.getTaskId(),submitModalDTO.getPrompt());
         Integer mode = submitModalDTO.getMode();
         MidjourneyUser user = getUser();
@@ -298,7 +305,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/shorten")
     @NoSubmit
-    public Result<SubmitResult> submitShorten(@Validated @RequestBody SubmitShortenDTO submitShortenDTO) {
+    public Result<SubmitResult> submitShorten(@Validated @RequestBody SubmitShortenDTO submitShortenDTO) throws IOException {
         log.info("提交Shorten任务 提示词:{}",submitShortenDTO.getPrompt());
         Integer mode = submitShortenDTO.getMode();
         MidjourneyUser user = getUser();
@@ -322,7 +329,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/action")
     @NoSubmit
-    public Result<SubmitResult> action(@Validated @RequestBody SubmitActionDTO actionDTO) {
+    public Result<SubmitResult> action(@Validated @RequestBody SubmitActionDTO actionDTO) throws IOException {
         log.info("任务id:{},执行动作:{}",actionDTO.getTaskId(),actionDTO.getCustomId());
         MidjourneyUser user = getUser();
         MidjourneyUserConversation midjourneyUserConversation = conversationMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUserConversation.class).eq(MidjourneyUserConversation::getTaskId, actionDTO.getTaskId()).last("limit 1"));
@@ -353,7 +360,7 @@ public class MidjourneyController {
      */
     @PostMapping("/submit/seed")
     @NoSubmit
-    public Result<Object> seed(@Validated @RequestBody SubmitSeedDTO seedDTO) {
+    public Result<Object> seed(@Validated @RequestBody SubmitSeedDTO seedDTO) throws IOException {
         log.info("任务id:{},执行动作:{}",seedDTO.getTaskId(), "seed");
         MidjourneyUser user = getUser();
         Integer mode = seedDTO.getMode();
@@ -377,7 +384,7 @@ public class MidjourneyController {
      * 查询会话列表
      */
     @GetMapping("/conversation/list")
-    public Result<SearchResult<MidjourneyUserConversation>> conversationList(){
+    public Result<SearchResult<MidjourneyUserConversation>> conversationList() throws IOException {
         MidjourneyUser user = getUser();
         log.info("查询会话列表 userId:{}",user.getId());
         MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
@@ -403,7 +410,7 @@ public class MidjourneyController {
      */
     @PostMapping("/conversation/{id}/cancel")
     @NoSubmit
-    public Result<Void> conversationCancel(@PathVariable("id") Long id){
+    public Result<Void> conversationCancel(@PathVariable("id") Long id) throws IOException {
         MidjourneyUser user = getUser();
         log.info("取消任务 id:{}",id);
         midjourneyService.cancelConversation(user,id);
@@ -466,8 +473,9 @@ public class MidjourneyController {
      * 用户绘画记录
      */
     @GetMapping("/get/painting/record")
-    public Result<SearchResult<MidjourneyUserPaintingDayRecordView>> getPaintingRecord(String prompt, Boolean bookmark) {
+    public Result<SearchResult<MidjourneyUserPaintingDayRecordView>> getPaintingRecord(String prompt, Boolean bookmark) throws IOException {
         MidjourneyUser user = getUser();
+        log.info("用户绘画记录 userId:{},prompt:{},bookmark:{}", user.getId(), prompt, bookmark);
         String condition = String.format(" and mc.user_id = %s", user.getId());
         if (StrUtil.isNotBlank(prompt)) {
             condition += String.format(" and mc.prompt like '%%%s%%'", prompt);
@@ -497,7 +505,7 @@ public class MidjourneyController {
      * 获取settings
      */
     @GetMapping("/get/settings")
-    public Result<MidjourneyUserSettings> getSettings(){
+    public Result<MidjourneyUserSettings> getSettings() throws IOException {
         MidjourneyUser user = getUser();
         return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyUserSettingsService.getById(user.getSettings().getId()));
     }
@@ -506,7 +514,7 @@ public class MidjourneyController {
      * 修改settings
      */
     @PostMapping("/put/settings")
-    public Result<MidjourneyUserSettings> upSettings(@RequestBody MidjourneyUserSettings settings){
+    public Result<MidjourneyUserSettings> upSettings(@RequestBody MidjourneyUserSettings settings) throws IOException {
         MidjourneyUser user = getUser();
         if (!user.getId().equals(settings.getUserId())) {
             throw BusinessRuntimeException.getInstance("参数错误");

+ 4 - 0
netflix-common/src/main/java/com/cyksj/common/exception/BusinessRuntimeException.java

@@ -68,6 +68,10 @@ public final class BusinessRuntimeException extends RuntimeException {
         return new BusinessRuntimeException(ERR_DEF, msg);
     }
 
+    public static BusinessRuntimeException getInstance(String code, String msg) {
+        return new BusinessRuntimeException(code, msg);
+    }
+
     public static BusinessRuntimeException getGatewayApiCode(GatewayApiCode apiCode) {
         return new BusinessRuntimeException(apiCode);
     }