tangxiangan 3 mēneši atpakaļ
vecāks
revīzija
d0220dbd76

+ 1 - 1
pdf-office-common/src/main/java/cn/kdan/cloud/pdf/office/common/vo/MemberInfoVO.java

@@ -67,5 +67,5 @@ public class MemberInfoVO {
     private String area;
 
     private String avatarUrl;
-
+    private Boolean isHaveActiveSubscription;
 }

+ 1 - 0
pdf-office-sso/src/main/java/cn/kdan/cloud/pdf/office/sso/controller/UserController.java

@@ -182,6 +182,7 @@ public class UserController {
                 BeanUtils.copyProperties(infoVO,aiInfo);
                 result.setActiveAI(aiInfo);
                 result.setAvatarUrl(avatarUrl);
+                result.setIsHaveActiveSubscription(authService.judgeActiveSubscription(user.getSubscriptionInfoList()));
                 return new ResultMap<>(CommonConstant.SUCCESS, CommonConstant.RESULT_SUCCESS, result);
             }
         }

+ 2 - 0
pdf-office-sso/src/main/java/cn/kdan/cloud/pdf/office/sso/service/AuthService.java

@@ -106,6 +106,8 @@ public interface AuthService {
 
     UserSubscriptionInfoVO findActiveSubscription(List<UserSubscriptionInfoVO> subscriptionInfoList, String model);
 
+    Boolean judgeActiveSubscription(List<UserSubscriptionInfoVO> subscriptionInfoList);
+
     int getAiPoints(List<UserSubscriptionInfoVO> subscriptionInfoList);
 
     UserSubscriptionInfoVO getActiveAi(List<UserSubscriptionInfoVO> subscriptionInfoList);

+ 8 - 20
pdf-office-sso/src/main/java/cn/kdan/cloud/pdf/office/sso/service/impl/AuthServiceImpl.java

@@ -269,30 +269,18 @@ public class AuthServiceImpl implements AuthService {
         return activeSubscription.orElse(null); // 返回结果,如果没有找到则返回null
     }
 
-    public UserSubscriptionInfoVO judgeActiveSubscription(List<UserSubscriptionInfoVO> subscriptionInfoList) {
+    @Override
+    public Boolean judgeActiveSubscription(List<UserSubscriptionInfoVO> subscriptionInfoList) {
         // 过滤掉isAi为true的记录
         List<UserSubscriptionInfoVO> filteredList = subscriptionInfoList.stream()
-                .filter(info -> ObjectUtils.isEmpty(info.getIsAi())||ValidStatusEnum.INVALID.value().equals(info.getIsAi())) // 排除AI记录
+                .filter(info -> info.getStatus() == 1 // 筛选出 status = 1 的记录
+                        && info.getPaymentModel().equals("1")) // 筛选出 paymentModel = 1 的记录
                 .collect(Collectors.toList());
-
-        // 找到一条生效的记录,按优先级排序
-        Optional<UserSubscriptionInfoVO> activeSubscription = filteredList.stream()
-                .sorted(Comparator.comparingInt(this::getLevelPriority)
-                        .reversed() // 按优先级降序排列
-                        .thenComparing(Comparator.comparingInt(UserSubscriptionInfoVO::getMaxDeviceNum).reversed()) // 如果优先级相同按max_device_num降序
-                )
-                .findFirst(); // 找到优先级最高的记录
-        if(activeSubscription.get().getStatus() == 2&&filteredList.size()>2){
-            Optional<UserSubscriptionInfoVO> activeSubscription1 =     filteredList.stream()
-                    .filter(user -> user.getStatus() == 1) // 过滤出 status = 1 的记录
-                    .sorted(Comparator.comparingInt(this::getLevelPriority)
-                            .reversed() // 按优先级降序排列
-                            .thenComparing(Comparator.comparingInt(UserSubscriptionInfoVO::getMaxDeviceNum).reversed()) // 如果优先级相同按 max_device_num 降序
-                    )
-                    .findFirst();
-            return activeSubscription1.orElse(null);
+        if (CollectionUtils.isEmpty(filteredList)){
+            return false;
+        }else {
+            return true;
         }
-        return activeSubscription.orElse(null); // 返回结果,如果没有找到则返回null
     }
 
     @Override