浏览代码

fix 新增封禁以及未登录提示

chenbiao 2 年之前
父节点
当前提交
3428d6da66

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChatgptUser.java

@@ -82,6 +82,11 @@ public class ChatgptUser extends BaseEntity {
      */
     private Long packageId;
 
+    /**
+     * 是否封禁
+     */
+    private Boolean isBlock;
+
     /**
      * 清洗套餐包时间
      */

+ 31 - 17
netflix-web/src/main/java/com/cyksj/web/controller/mirror/MirrorController.java

@@ -152,29 +152,43 @@ public class MirrorController {
         ChatgptUser user = chatGptAccountService.findByUserTokenAndExpireTimeAfter(userToken, LocalDateTime.now());
         //3.如果记录不存在,返回状态码 401
         if (user == null) {
-            response.setStatus(401);
-        }
-        if (StringUtils.isNotBlank(conversationRequest.getCarId())) {
-            //4.获取gpt-4 的规则限制
-            //text-davinci-002-render-sha 3.5
-            ConversationLimitResponse conversationLimitResponse = chatGptAccountService.conversationLimit(userToken, conversationRequest.getModel(), conversationRequest.getCarId(), user, isCar);
-
-            if (conversationLimitResponse.isLimited()) {
+            response.setStatus(400);
+            ChatgptConversionLimitView chatgptConversionLimitView = new ChatgptConversionLimitView();
+            ChatgptConversionLimitView.Detail detail = new ChatgptConversionLimitView.Detail();
+            detail.setMessage("看来您还没车票呢,是不是还没登录呀,赶紧去车票内重新选择上车 \uD83D\uDE97 [点击直达](https://nf.video/ticket)");
+            chatgptConversionLimitView.setDetail(detail);
+            return chatgptConversionLimitView;
+        }else {
+            if (user.getIsBlock() != null && user.getIsBlock()) {
                 response.setStatus(400);
-                //String json = "{\"detail\":{\"message\":\"您的账号已达到GPT-4的使用上限。您现在可以继续使用默认模型,或者重试在\",\"code\":\"model_cap_exceeded\",\"clears_in\":2687}}";
                 ChatgptConversionLimitView chatgptConversionLimitView = new ChatgptConversionLimitView();
                 ChatgptConversionLimitView.Detail detail = new ChatgptConversionLimitView.Detail();
-                String url = "[点击此处升级](https://nf.video/ticket?relationId=%d&pType=pay)";
-
-                String format = String.format(url, user.getRelationId());
-                detail.setMessage("您目前的套餐已达到GPT-4的使用上限。您可以继续使用3.5或4o-mini,预计 " + DateUtil.format(new Date(conversationLimitResponse.getNextAvailableTime()), "yyyy-MM-dd HH:mm:ss") + " 恢复" + ",如需增加滚动时间内可询问次数," + format);
+                detail.setMessage("抱歉,您因违反银河录像局使用政策已被封禁.");
                 chatgptConversionLimitView.setDetail(detail);
                 return chatgptConversionLimitView;
-            } else {
-                response.setStatus(200);
             }
-            //5.获取 conversationRequest 中的model 字段,判断是否为 gpt-4 如果为gpt-4 执行 查看是否达到限制方法
-            //6.如果达到限制,返回状态码 429 并返回文本 xxx
+            if (StringUtils.isNotBlank(conversationRequest.getCarId())) {
+                //4.获取gpt-4 的规则限制
+                //text-davinci-002-render-sha 3.5
+                ConversationLimitResponse conversationLimitResponse = chatGptAccountService.conversationLimit(userToken, conversationRequest.getModel(), conversationRequest.getCarId(), user, isCar);
+
+                if (conversationLimitResponse.isLimited()) {
+                    response.setStatus(400);
+                    //String json = "{\"detail\":{\"message\":\"您的账号已达到GPT-4的使用上限。您现在可以继续使用默认模型,或者重试在\",\"code\":\"model_cap_exceeded\",\"clears_in\":2687}}";
+                    ChatgptConversionLimitView chatgptConversionLimitView = new ChatgptConversionLimitView();
+                    ChatgptConversionLimitView.Detail detail = new ChatgptConversionLimitView.Detail();
+                    String url = "[点击此处升级](https://nf.video/ticket?relationId=%d&pType=pay)";
+
+                    String format = String.format(url, user.getRelationId());
+                    detail.setMessage("您目前的套餐已达到GPT-4的使用上限。您可以继续使用3.5或4o-mini,预计 " + DateUtil.format(new Date(conversationLimitResponse.getNextAvailableTime()), "yyyy-MM-dd HH:mm:ss") + " 恢复" + ",如需增加滚动时间内可询问次数," + format);
+                    chatgptConversionLimitView.setDetail(detail);
+                    return chatgptConversionLimitView;
+                } else {
+                    response.setStatus(200);
+                }
+                //5.获取 conversationRequest 中的model 字段,判断是否为 gpt-4 如果为gpt-4 执行 查看是否达到限制方法
+                //6.如果达到限制,返回状态码 429 并返回文本 xxx
+            }
         }
 
         return new ChatgptConversionLimitView();