zoujiajian 6 месяцев назад
Родитель
Сommit
30b6806189

+ 47 - 32
netflix-web/src/main/java/com/cyksj/web/controller/codex/CodexController.java

@@ -1,18 +1,13 @@
 package com.cyksj.web.controller.codex;
 
-import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
-import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.CodexUserMapper;
 import com.cyksj.mapper.GroupsMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
-import com.cyksj.model.entity.CodexUser;
-import com.cyksj.model.entity.GroupsRelation;
-import com.cyksj.model.entity.GroupsTrips;
-import com.cyksj.model.entity.OrderDon;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.request.ClaudeCodeApiKeysReq;
 import com.cyksj.model.request.ClaudeCodeDelReq;
 import com.cyksj.model.request.CodexUpgradePayReq;
@@ -31,8 +26,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Map;
 
 /**
  * server/codex
@@ -60,6 +56,8 @@ public class CodexController {
 
     private final BeanSearcher beanSearcher;
 
+    private final HttpServletRequest request;
+
 
     /**
      * 用户创建API KEY
@@ -185,43 +183,60 @@ public class CodexController {
     public Result<ClaudeCodePackageView> getClaudeCodePackages(String dsCode) {
         Long userId = StpUserUtil.getUserIdAfterLogin();
         ClaudeCodePackageView claudeCodePackageView = new ClaudeCodePackageView();
+//        if (userId != null) {
+//            List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+//            CodexUser user = codexUserMapper.selectOne(Wrappers.lambdaQuery(CodexUser.class)
+//                    .in(CodexUser::getUserId, userIdList)
+//                    .last("limit 1"));
+//            if (user != null) {
+//                Integer openaiDailyLimit = user.getOpenaiDailyLimit();
+//                GroupsRelation relation = relationMapper.selectById(user.getRelationId());
+//                GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
+//                Long skuId = groupsTrips.getSkuId();
+//                if (user.getRenewSkuId() != null && user.getRenewSkuId() > 0) {
+//                    skuId = user.getRenewSkuId();
+//                }
+//                List<RenewUpgradePackageFrontView> renewUpgradePackageFrontViews = beanSearcher.searchAll(RenewUpgradePackageFrontView.class, MapUtils.builder().field(RenewUpgradePackageFrontView::getSkuId, skuId).build());
+//                renewUpgradePackageFrontViews.forEach(renew -> {
+//                    try {
+//                        List<Long> upgradeSkuIds = Jsons.parseList(renew.getUpgradeSkuIds(), Long.class);
+//                        if (user.getRenewSkuId() != null) {
+//                            upgradeSkuIds.remove(user.getRenewSkuId());
+//                        }
+//                        List<RenewUpgradePackageFrontView.RenewSkuView> renewSkuViews = new ArrayList<>();
+//                        if (CollUtil.isNotEmpty(upgradeSkuIds)) {
+//                            renewSkuViews = beanSearcher.searchAll(RenewUpgradePackageFrontView.RenewSkuView.class, MapUtils.builder()
+//                                    //高套餐
+//                                    .field(RenewUpgradePackageFrontView.RenewSkuView::getOpenaiDailyLimit, openaiDailyLimit).op(Operator.GreaterThan)
+//                                    .field(RenewUpgradePackageFrontView.RenewSkuView::getSkuId, upgradeSkuIds).op(Operator.InList)
+//                                    .build());
+//                        }
+//                        renew.setRenewSkus(renewSkuViews);
+//                    } catch (Exception e) {
+//                    }
+//                });
+//                claudeCodePackageView.setUpgrades(renewUpgradePackageFrontViews);
+//            }
+//        }
+        List<GoodsDonSkuView> goodsDonSkuViews = beanSearcher.searchAll(GoodsDonSkuView.class, MapUtils.builder().field(GoodsDonSkuView::getGoodsId, Constant.CODEX_GOODS_ID).field(GoodsDonSkuView::getGoodsDonStatus, Boolean.TRUE).field(GoodsDonSkuView::getGoodsDonSkuStatus, Boolean.TRUE).field(GoodsDonSkuView::getUserOwns).op(Operator.IsNull).build());
+        claudeCodePackageView.setSkus(goodsDonSkuViews);
         if (userId != null) {
             List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
             CodexUser user = codexUserMapper.selectOne(Wrappers.lambdaQuery(CodexUser.class)
                     .in(CodexUser::getUserId, userIdList)
                     .last("limit 1"));
             if (user != null) {
-                Integer openaiDailyLimit = user.getOpenaiDailyLimit();
                 GroupsRelation relation = relationMapper.selectById(user.getRelationId());
                 GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
                 Long skuId = groupsTrips.getSkuId();
-                if (user.getRenewSkuId() != null && user.getRenewSkuId() > 0) {
-                    skuId = user.getRenewSkuId();
+                Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
+                if (skuId != null) {
+                    build.put("sku", String.format(" and JSON_CONTAINS(up.sku_ids,'\"%s\"')", skuId));
                 }
-                List<RenewUpgradePackageFrontView> renewUpgradePackageFrontViews = beanSearcher.searchAll(RenewUpgradePackageFrontView.class, MapUtils.builder().field(RenewUpgradePackageFrontView::getSkuId, skuId).build());
-                renewUpgradePackageFrontViews.forEach(renew -> {
-                    try {
-                        List<Long> upgradeSkuIds = Jsons.parseList(renew.getUpgradeSkuIds(), Long.class);
-                        if (user.getRenewSkuId() != null) {
-                            upgradeSkuIds.remove(user.getRenewSkuId());
-                        }
-                        List<RenewUpgradePackageFrontView.RenewSkuView> renewSkuViews = new ArrayList<>();
-                        if (CollUtil.isNotEmpty(upgradeSkuIds)) {
-                            renewSkuViews = beanSearcher.searchAll(RenewUpgradePackageFrontView.RenewSkuView.class, MapUtils.builder()
-                                    //高套餐
-                                    .field(RenewUpgradePackageFrontView.RenewSkuView::getOpenaiDailyLimit, openaiDailyLimit).op(Operator.GreaterThan)
-                                    .field(RenewUpgradePackageFrontView.RenewSkuView::getSkuId, upgradeSkuIds).op(Operator.InList)
-                                    .build());
-                        }
-                        renew.setRenewSkus(renewSkuViews);
-                    } catch (Exception e) {
-                    }
-                });
-                claudeCodePackageView.setUpgrades(renewUpgradePackageFrontViews);
+                List<UpgradePackageView> upgradePackageViews = beanSearcher.searchAll(UpgradePackageView.class, build);
+                claudeCodePackageView.setExtraPack(upgradePackageViews);
             }
         }
-        List<GoodsDonSkuView> goodsDonSkuViews = beanSearcher.searchAll(GoodsDonSkuView.class, MapUtils.builder().field(GoodsDonSkuView::getGoodsId, Constant.CODEX_GOODS_ID).field(GoodsDonSkuView::getGoodsDonStatus, Boolean.TRUE).field(GoodsDonSkuView::getGoodsDonSkuStatus, Boolean.TRUE).field(GoodsDonSkuView::getUserOwns).op(Operator.IsNull).build());
-        claudeCodePackageView.setSkus(goodsDonSkuViews);
         return GatewayResponse.SUCCESS.newBuilder().toResult(claudeCodePackageView);
     }
 }