zwhui преди 2 години
родител
ревизия
b35d2b7aa7

+ 11 - 0
netflix-dao/src/main/java/com/cyksj/mapper/MidjourneyWhiteMapper.java

@@ -0,0 +1,11 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.MidjourneyWhite;
+
+/**
+ * @author zwhui
+ * @date 2024/7/10 13:47
+ */
+public interface MidjourneyWhiteMapper extends BaseMapper<MidjourneyWhite> {
+}

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/MidjourneyWhite.java

@@ -0,0 +1,12 @@
+package com.cyksj.model.entity;
+
+import lombok.Data;
+
+/**
+ * @author zwhui
+ * @date 2024/7/10 13:46
+ */
+@Data
+public class MidjourneyWhite extends BaseEntity{
+    private Long userId;
+}

+ 7 - 1
netflix-service/src/main/java/com/cyksj/service/midjourney/impl/MidjourneyServiceImpl.java

@@ -18,12 +18,14 @@ import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
 import com.cyksj.mapper.MidjourneyUserConversationMapper;
 import com.cyksj.mapper.MidjourneyUserMapper;
+import com.cyksj.mapper.MidjourneyWhiteMapper;
 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;
+import com.cyksj.model.entity.MidjourneyWhite;
 import com.cyksj.model.response.SubmitResult;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.midjourney.MidjourneyAccountService;
@@ -75,6 +77,8 @@ public class MidjourneyServiceImpl implements MidjourneyService {
 
     private final MidjourneyAccountService midjourneyAccountService;
 
+    private final MidjourneyWhiteMapper midjourneyWhiteMapper;
+
 
     @Override
     public MidjourneyUserConversation submitImagine(MidjourneyUser user, String prompt,String botType, List<String> base64Array) throws Exception {
@@ -377,7 +381,9 @@ public class MidjourneyServiceImpl implements MidjourneyService {
         if (count == null) {
             redisService.set(key, 1L,RedisService.key.MIDJOURNEY_USER_TIME.getTimeout());
         }else {
-            if (redisService.incr(key, 1L) > 200) {
+            Integer white = midjourneyWhiteMapper.selectCount(Wrappers.lambdaQuery(MidjourneyWhite.class).eq(MidjourneyWhite::getUserId, user.getId()));
+            int limit = white == 0 ? 200 : 400;
+            if (redisService.incr(key, 1L) > limit) {
                 //24小时内提交次数超过200次 拉黑
                 user.setIsBlack(true);
                 midjourneyUserMapper.updateById(user);