zoujiajian преди 11 месеца
родител
ревизия
784d0145b1
променени са 19 файла, в които са добавени 108 реда и са изтрити 140 реда
  1. 4 4
      netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeCodeUser.java
  2. 4 4
      netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java
  3. 4 4
      netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java
  4. 4 4
      netflix-dao/src/main/java/com/cyksj/model/views/ClaudeCodeUserInfoView.java
  5. 6 6
      netflix-dao/src/main/java/com/cyksj/model/views/CodexUserInfoView.java
  6. 4 4
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java
  7. 6 6
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuRenewView.java
  8. 6 6
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuView.java
  9. 6 6
      netflix-dao/src/main/java/com/cyksj/model/views/RenewUpgradePackageFrontView.java
  10. 4 4
      netflix-dao/src/main/java/com/cyksj/model/views/TicketRenewUpgradeView.java
  11. 6 6
      netflix-dao/src/main/java/com/cyksj/model/views/YhShopGoodsSkuFrontView.java
  12. 0 5
      netflix-service/src/main/java/com/cyksj/service/claude/ClaudeCodeService.java
  13. 32 67
      netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java
  14. 10 2
      netflix-service/src/main/java/com/cyksj/service/codex/impl/CodexServiceImpl.java
  15. 2 2
      netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java
  16. 4 4
      netflix-service/src/main/java/com/cyksj/service/mange/impl/MirrorUserCleatServiceImpl.java
  17. 1 1
      netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
  18. 2 2
      netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java
  19. 3 3
      netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/entity/ClaudeCodeUser.java

@@ -31,16 +31,16 @@ public class ClaudeCodeUser extends BaseEntity{
 	private Integer oriCodePoints;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
-	private Integer codePoints;
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
-	private Integer codeCreditRecovery;
+	private Integer claudeQuota;
 
 	/**
 	 * code 有效期

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -269,16 +269,16 @@ public class GoodsDonSku extends BaseEntity {
     private String remark;
 
     /**
-     * claude code积分上限
+     * claude code每日限额
      */
     @TableField(updateStrategy = FieldStrategy.IGNORED)
-    private Integer codePoints;
+    private Integer claudeDailyLimit;
 
     /**
-     * claude code每小时恢复积分
+     * Claude code 服务总额度
      */
     @TableField(updateStrategy = FieldStrategy.IGNORED)
-    private Integer codeCreditRecovery;
+    private Integer claudeQuota;
 
     /**
      * nano总配额次数

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -192,14 +192,14 @@ public class ReqGoodsSkuInsert {
         private String remark;
 
         /**
-         * claude code积分上限
+         * claude code每日限额
          */
-        private Integer codePoints;
+        private Integer claudeDailyLimit;
 
         /**
-         * claude code每小时恢复积分
+         * Claude code 服务总额度
          */
-        private Integer codeCreditRecovery;
+        private Integer claudeQuota;
 
         /**
          * nano总配额次数

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/views/ClaudeCodeUserInfoView.java

@@ -24,14 +24,14 @@ public class ClaudeCodeUserInfoView {
 	private Long relationId;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	private Integer codePoints;
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	private Integer codeCreditRecovery;
+	private Integer claudeQuota;
 
 	/**
 	 * code 有效期

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/CodexUserInfoView.java

@@ -59,16 +59,16 @@ public class CodexUserInfoView {
         private String planName;
 
         private Long relationId;
-        
+
         /**
-         * claude code积分上限
+         * claude code每日限额
          */
-        private Integer codePoints;
-        
+        private Integer claudeDailyLimit;
+
         /**
-         * claude code每小时恢复积分
+         * Claude code 服务总额度
          */
-        private Integer codeCreditRecovery;
+        private Integer claudeQuota;
         
         /**
          * code 有效期

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuFrontView.java

@@ -228,14 +228,14 @@ public class GoodsDonSkuFrontView {
 	private Long otherLimitTime;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	private Integer codePoints;
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	private Integer codeCreditRecovery;
+	private Integer claudeQuota;
 
 	/**
 	 * nano总配额次数

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuRenewView.java

@@ -89,16 +89,16 @@ public class GoodsDonSkuRenewView {
 	private Long originalOrderId;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	@DbField("sku.code_points")
-	private Integer codePoints;
+	@DbField("sku.claude_daily_limit")
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	@DbField("sku.code_credit_recovery")
-	private Integer codeCreditRecovery;
+	@DbField("sku.claude_quota")
+	private Integer claudeQuota;
 
 	/**
 	 * cc最高约可使用次数

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonSkuView.java

@@ -69,16 +69,16 @@ public class GoodsDonSkuView {
 	private Boolean isMirror;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	@DbField("gdk.code_points")
-	private Integer codePoints;
+	@DbField("gdk.claude_daily_limit")
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	@DbField("gdk.code_credit_recovery")
-	private Integer codeCreditRecovery;
+	@DbField("gdk.claude_quota")
+	private Integer claudeQuota;
 
 	/**
 	 * nano次数

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/RenewUpgradePackageFrontView.java

@@ -92,16 +92,16 @@ public class RenewUpgradePackageFrontView {
 		private BigDecimal price;
 
 		/**
-		 * claude code积分上限
+		 * claude code每日限额
 		 */
-		@DbField("sku.code_points")
-		private Integer codePoints;
+		@DbField("sku.claude_daily_limit")
+		private Integer claudeDailyLimit;
 
 		/**
-		 * claude code每小时恢复积分
+		 * Claude code 服务总额度
 		 */
-		@DbField("sku.code_credit_recovery")
-		private Integer codeCreditRecovery;
+		@DbField("sku.claude_quota")
+		private Integer claudeQuota;
 
 		/**
 		 * cc最高约可使用次数

+ 4 - 4
netflix-dao/src/main/java/com/cyksj/model/views/TicketRenewUpgradeView.java

@@ -82,14 +82,14 @@ public class TicketRenewUpgradeView {
 	private GoodsDonSkuRenewView renewSku;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	private Integer codePoints;
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	private Integer codeCreditRecovery;
+	private Integer claudeQuota;
 
 	/**
 	 * cc最高约可使用次数

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/YhShopGoodsSkuFrontView.java

@@ -186,16 +186,16 @@ public class YhShopGoodsSkuFrontView {
 	private Boolean remark;
 
 	/**
-	 * claude code积分上限
+	 * claude code每日限额
 	 */
-	@DbField("sku.code_points")
-	private Integer codePoints;
+	@DbField("sku.claude_daily_limit")
+	private Integer claudeDailyLimit;
 
 	/**
-	 * claude code每小时恢复积分
+	 * Claude code 服务总额度
 	 */
-	@DbField("sku.code_credit_recovery")
-	private Integer codeCreditRecovery;
+	@DbField("sku.claude_quota")
+	private Integer claudeQuota;
 
 	/**
 	 * nano总配额次数

+ 0 - 5
netflix-service/src/main/java/com/cyksj/service/claude/ClaudeCodeService.java

@@ -85,11 +85,6 @@ public interface ClaudeCodeService {
 	 */
 	CreditResetResp resetUserCredits(Long userId, CreditResetReq req) throws Exception;
 
-	/**
-	 * 重置用户codePoints到原始值并记录重置次数
-	 */
-	void resetUserCodePoints(Long userId, Integer resetType, String resetReason);
-
 	/**
 	 * 用户使用重置次数
 	 */

+ 32 - 67
netflix-service/src/main/java/com/cyksj/service/claude/impl/ClaudeCodeServiceImpl.java

@@ -112,14 +112,14 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		Long thisCodeOriSkuId = relationSku.getId();
 		Long relationUserId = relation.getUserId();
 		//此时车票的套餐规格积分
-		Integer thisRelationCodePoints = null;
+		Integer thisRelationCodeDayilyLimit = null;
 		ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
 		if (claudeCodeUser != null) {
-			thisRelationCodePoints = claudeCodeUser.getCodePoints();
+			thisRelationCodeDayilyLimit = claudeCodeUser.getClaudeDailyLimit();
 		}
 		Date expiryTime = relation.getExpiryTime();
-		Integer codePoints = sku.getCodePoints();
-		Integer codeCreditRecovery = sku.getCodeCreditRecovery();
+		Integer claudeDailyLimit = sku.getClaudeDailyLimit();
+		Integer claudeQuota = sku.getClaudeQuota();
 		Long skuId = sku.getId();
 		Boolean isUpgrade = false;
 		Date renewExpiryTime = null;
@@ -128,7 +128,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			//非车票原规格id 续费升级记录
 			saveClaudeCodeRenewExpiryRecord(orderId, relationUserId, relationId, skuId);
 			//是否需要修改当前claude code user 套餐等级
-			if (thisRelationCodePoints != null && thisRelationCodePoints <= codePoints) {
+			if (thisRelationCodeDayilyLimit != null && thisRelationCodeDayilyLimit <= claudeDailyLimit) {
 				if (sku.getDays() != null) {
 					renewExpiryTime = DateUtil.offsetDay(DateTime.now(), sku.getDays());
 				} else {
@@ -137,12 +137,12 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				isUpgrade = true;
 			}
 		}
-		generateOrUpdateClaudeCodeUser(relationUserId, relationId, codePoints, codeCreditRecovery, expiryTime, isUpgrade, orderId, skuId, renewExpiryTime, sku.getSpecVal(), userIdList);
+		generateOrUpdateClaudeCodeUser(relationUserId, relationId, claudeDailyLimit, claudeQuota, expiryTime, isUpgrade, orderId, skuId, renewExpiryTime, sku.getSpecVal(), userIdList);
 		try {
 			//获取最新的claude code user
 			claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
 			//生成claude code或更新用户套餐
-			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
+			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(relation.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getClaudeDailyLimit(), claudeCodeUser.getClaudeQuota(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
 			if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 				//重试更新code userInfo数据
 				setClaudeCodeUserRetryUpdateInfo(relationId);
@@ -159,7 +159,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		}
 	}
 
-	private void generateOrUpdateClaudeCodeUser(Long relationUserId, Long relationId, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, Boolean isUpgrade, Long orderId, Long renewSkuId, Date renewExpiryTime, String planName, List<Long> userIdList) {
+	private void generateOrUpdateClaudeCodeUser(Long relationUserId, Long relationId, Integer claudeDailyLimit, Integer claudeQuota, Date expiryTime, Boolean isUpgrade, Long orderId, Long renewSkuId, Date renewExpiryTime, String planName, List<Long> userIdList) {
 		ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeCodeUser.class).eq(ClaudeCodeUser::getRelationId, relationId).last("limit 1"));
 		if (claudeCodeUser == null) {
 			claudeCodeUser = new ClaudeCodeUser();
@@ -169,16 +169,16 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			claudeCodeUser.setRenewSkuId(renewSkuId);
 			claudeCodeUser.setRenewExpiryTime(renewExpiryTime);
 			claudeCodeUser.setPlanName(planName);
-			claudeCodeUser.setCodePoints(codePoints);
-			claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
+			claudeCodeUser.setClaudeDailyLimit(claudeDailyLimit);
+			claudeCodeUser.setClaudeQuota(claudeQuota);
 		}
 		claudeCodeUser.setUserId(relationUserId);
 		claudeCodeUser.setRelationId(relationId);
 		claudeCodeUser.setExpiryTime(expiryTime);
 		if (claudeCodeUser.getId() == null) {
 			claudeCodeUser.setPlanName(planName);
-			claudeCodeUser.setCodePoints(codePoints);
-			claudeCodeUser.setCodeCreditRecovery(codeCreditRecovery);
+			claudeCodeUser.setClaudeDailyLimit(claudeDailyLimit);
+			claudeCodeUser.setClaudeQuota(claudeQuota);
 			//可重置次数
 			Integer resetCount = claudeCodeUserResetRecordMapper.getUserResetCountByUserIds(userIdList);
 			if (resetCount != null && resetCount > 0) {
@@ -365,7 +365,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		//是否需要重试更新 cladueCode userInfo信息
 		if (claudeCodeUser.getIsRetry()) {
 			try {
-				ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
+				ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getClaudeDailyLimit(), claudeCodeUser.getClaudeQuota(), claudeCodeUser.getExpiryTime(), claudeCodeUser.getRelationId(), sku);
 				if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 					claudeCodeUser.setIsRetry(Boolean.TRUE);
 					claudeCodeUserMapper.updateById(claudeCodeUser);
@@ -399,8 +399,8 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		return ClaudeCodeUserInfoView.builder()
 				.planName(claudeCodeUser.getPlanName())
 				.relationId(claudeCodeUser.getRelationId())
-				.codePoints(claudeCodeUser.getCodePoints())
-				.codeCreditRecovery(claudeCodeUser.getCodeCreditRecovery())
+				.claudeDailyLimit(claudeCodeUser.getClaudeDailyLimit())
+				.claudeQuota(claudeCodeUser.getClaudeQuota())
 				.expiryTime(claudeCodeUser.getExpiryTime())
 				.renewSkuId(claudeCodeUser.getRenewSkuId())
 				.renewOrderId(claudeCodeUser.getRenewOrderId())
@@ -410,11 +410,11 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				.build();
 	}
 
-	public ClaudeCodeResp createOrUpdateClaudeCodeUserPackage(Long userId, String planName, Integer codePoints, Integer codeCreditRecovery, Date expiryTime, Long relationId, GoodsDonSku sku) throws Exception {
+	public ClaudeCodeResp createOrUpdateClaudeCodeUserPackage(Long userId, String planName, Integer claudeDailyLimit, Integer claudeQuota, Date expiryTime, Long relationId, GoodsDonSku sku) throws Exception {
 		Map<String, Object> parmas = new HashMap<>();
 		parmas.put("plan_name", planName.replaceAll(";", ""));
-		parmas.put("credit_limit", codePoints);
-		parmas.put("credit_recovery", codeCreditRecovery);
+		parmas.put("claude_daily_limit", claudeDailyLimit);
+		parmas.put("claude_quota", claudeQuota);
 		if (sku.getIsCodex()) {
 			parmas.put("openai_daily_limit", sku.getOpenaiDailyLimit());
 			parmas.put("openai_quota", sku.getOpenaiQuota());
@@ -461,7 +461,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 	@Override
 	public void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser, Date expiryTime, GoodsDonSku sku) {
 		try {
-			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), expiryTime, claudeCodeUser.getRelationId(), sku);
+			ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getClaudeDailyLimit(), claudeCodeUser.getClaudeQuota(), expiryTime, claudeCodeUser.getRelationId(), sku);
 			if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
 				//重试标记
 				claudeCodeUser.setIsRetry(Boolean.TRUE);
@@ -677,36 +677,6 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 				.withStopStrategy(StopStrategies.stopAfterAttempt(attemptNum)).build();
 		return build;
 	}
-
-	@Override
-	public void resetUserCodePoints(Long userId, Integer resetType, String resetReason) {
-		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
-		ClaudeCodeUser claudeCodeUser = claudeCodeUserMapper.selectOne(
-			Wrappers.<ClaudeCodeUser>lambdaQuery().in(ClaudeCodeUser::getUserId, userIdList)
-		);
-
-		if (claudeCodeUser == null) {
-			throw new BusinessRuntimeException("用户不存在或未开通Claude Code服务");
-		}
-
-		Integer beforeCodePoints = claudeCodeUser.getCodePoints();
-		Integer afterCodePoints = claudeCodeUser.getOriCodePoints();
-
-		claudeCodeUser.setCodePoints(afterCodePoints);
-		claudeCodeUserMapper.updateById(claudeCodeUser);
-
-		ClaudeCodeUserResetRecord resetRecord = new ClaudeCodeUserResetRecord();
-		resetRecord.setUserId(userId);
-		resetRecord.setBeforeCodePoints(beforeCodePoints);
-		resetRecord.setAfterCodePoints(afterCodePoints);
-		resetRecord.setResetType(resetType);
-		resetRecord.setResetReason(resetReason);
-
-		claudeCodeUserResetRecordMapper.insert(resetRecord);
-
-		log.info("用户{}的积分已重置", userId);
-	}
-
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void useResetCount(Long userId) throws Exception {
@@ -777,16 +747,16 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		);
 
 		if (creditCard == null) {
-			throw new BusinessRuntimeException("无可用积分卡");
+			throw new BusinessRuntimeException("无可用补充卡");
 		}
 
 		if (creditCard.getStatus() != 0) {
 			if (creditCard.getStatus() == 1) {
-				throw new BusinessRuntimeException("积分卡已被使用");
+				throw new BusinessRuntimeException("补充卡已被使用");
 			} else if (creditCard.getStatus() == 2) {
-				throw new BusinessRuntimeException("积分卡已过期");
+				throw new BusinessRuntimeException("补充卡已过期");
 			} else {
-				throw new BusinessRuntimeException("积分卡状态异常");
+				throw new BusinessRuntimeException("补充卡状态异常");
 			}
 		}
 		String cardNumber = creditCard.getCardNumber();
@@ -794,7 +764,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		if (creditCard.getExpiryTime() != null && creditCard.getExpiryTime().before(new Date())) {
 			creditCard.setStatus(2);
 			claudeCodeCreditCardMapper.updateById(creditCard);
-			throw new BusinessRuntimeException("积分卡已过期");
+			throw new BusinessRuntimeException("补充卡已过期");
 		}
 
 		ClaudeCodeResp userBalance = getUserBalance(userId);
@@ -828,15 +798,15 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			creditCardRecord.setCardNumber(cardNumber);
 			//使用一次
 			creditCardRecord.setNum(-1);
-			creditCardRecord.setUseReason("使用积分卡");
+			creditCardRecord.setUseReason("使用补充卡");
 
 			claudeCodeUserCreditCardRecordMapper.insert(creditCardRecord);
 
-			log.info("用户{}成功使用积分卡{},增加{}积分", userId, cardNumber, addCodePoints);
+			log.info("用户{}成功使用补充卡{},增加{}预算", userId, cardNumber, addCodePoints);
 			//调用API调整用户积分
-			adjClaudeCodeUserPoints(claudeCodeUser.getUserId(), creditCard.getCreditAmount(), "adjustment", "用户使用积分卡");
+			adjClaudeCodeUserPoints(claudeCodeUser.getUserId(), creditCard.getCreditAmount(), "adjustment", "用户使用补充卡");
 		} else {
-			throw new BusinessRuntimeException("积分卡使用失败,请重试");
+			throw new BusinessRuntimeException("补充卡使用失败,请重试");
 		}
 	}
 
@@ -883,7 +853,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			response.setResetCount(0);
 		}
 
-		// 获取可用积分卡数量
+		// 获取可用补充卡数量
 		Integer availableCreditCards = claudeCodeCreditCardMapper.selectCount(
 				Wrappers.lambdaQuery(ClaudeCodeCreditCard.class)
 						.eq(ClaudeCodeCreditCard::getStatus, 0)
@@ -891,11 +861,6 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 						.isNull(ClaudeCodeCreditCard::getUsedUserId)
 		);
 		response.setAvailableCreditCards(availableCreditCards != null ? availableCreditCards : 0);
-		if (claudeCodeUser.getCodePoints() > 5000) {
-			Integer selectCount = claudeCodeDayResetRecordMapper.selectCount(Wrappers.lambdaQuery(ClaudeCodeDayResetRecord.class).in(ClaudeCodeDayResetRecord::getUserId, userIdList).gt(ClaudeCodeDayResetRecord::getCreatedTime, DateUtil.beginOfDay(DateTime.now())));
-			//每日可用重置次数
-			response.setDayRestNum(selectCount > 0 ? 0 : 1);
-		}
 
 		//是否是普通推广
 		if (general != null && general) {
@@ -955,7 +920,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		creditCard.setRemark(remark);
 		claudeCodeCreditCardMapper.insert(creditCard);
 
-		//积分卡明细
+		//补充卡明细
 		ClaudeCodeUserCreditCardRecord creditCardRecord = new ClaudeCodeUserCreditCardRecord();
 		creditCardRecord.setUserId(userId);
 		creditCardRecord.setCardNumber(cardNumber);
@@ -1027,7 +992,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 			return;
 		}
 		//非标准版、专业版 不给使用
-		if (claudeCodeUser.getCodePoints() < 5000) {
+		if (claudeCodeUser.getClaudeDailyLimit() < 5000) {
 			return;
 		}
 		Integer selectCount = claudeCodeDayResetRecordMapper.selectCount(Wrappers.lambdaQuery(ClaudeCodeDayResetRecord.class).in(ClaudeCodeDayResetRecord::getUserId, userIdList).gt(ClaudeCodeDayResetRecord::getCreatedTime, DateUtil.beginOfDay(DateTime.now())));
@@ -1087,7 +1052,7 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
 		parmas.put("description", description);
 		ClaudeCodeResp claudeCodeResp = executeClaudeCodePostApi(apiKeyUrl, Jsons.toJson(parmas));
 		if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
-			throw BusinessRuntimeException.getInstance("使用积分卡失败");
+			throw BusinessRuntimeException.getInstance("使用补充卡失败");
 		}
 	}
 }

+ 10 - 2
netflix-service/src/main/java/com/cyksj/service/codex/impl/CodexServiceImpl.java

@@ -63,7 +63,7 @@ public class CodexServiceImpl implements CodexService {
 
 		if (codexUser == null) {
 			//是否有claude code
-			if (claudeCodeInfo != null && claudeCodeInfo.getCodePoints() != null) {
+			if (claudeCodeInfo != null && claudeCodeInfo.getClaudeDailyLimit() != null) {
 				GoodsDonSku sku = null;
 				if (claudeCodeInfo.getRenewSkuId() != null) {
 					sku = skuMapper.selectById(claudeCodeInfo.getRenewSkuId());
@@ -107,7 +107,15 @@ public class CodexServiceImpl implements CodexService {
 			return null;
 		}
 
-		return CodexUserInfoView.ClaudeCodeInfo.builder().userId(claudeCodeUser.getUserId()).planName(claudeCodeUser.getPlanName()).relationId(claudeCodeUser.getRelationId()).codePoints(claudeCodeUser.getCodePoints()).codeCreditRecovery(claudeCodeUser.getCodeCreditRecovery()).expiryTime(claudeCodeUser.getExpiryTime()).renewSkuId(claudeCodeUser.getRenewSkuId()).renewExpiryTime(claudeCodeUser.getRenewExpiryTime()).build();
+		return CodexUserInfoView.ClaudeCodeInfo.builder()
+				.userId(claudeCodeUser.getUserId())
+				.planName(claudeCodeUser.getPlanName())
+				.relationId(claudeCodeUser.getRelationId())
+				.claudeDailyLimit(claudeCodeUser.getClaudeDailyLimit())
+				.claudeQuota(claudeCodeUser.getClaudeQuota())
+				.expiryTime(claudeCodeUser.getExpiryTime())
+				.renewSkuId(claudeCodeUser.getRenewSkuId())
+				.renewExpiryTime(claudeCodeUser.getRenewExpiryTime()).build();
 	}
 
 	@Override

+ 2 - 2
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -434,7 +434,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 			if (groupsRelationView != null) {
 				GoodsDonSku relationSku = goodsDonSkuMapper.selectById(groupsRelationView.getSkuId());
 				//兑换的规格 低于当前规格 不让兑换
-				if (relationSku.getCodePoints() > sku.getCodePoints()) {
+				if (relationSku.getClaudeDailyLimit() > sku.getClaudeDailyLimit()) {
 					throw BusinessRuntimeException.getInstance("请在claude code当前版本过期后再兑换");
 				}
 				Date expiryTime = groupsRelationView.getExpiryTime();
@@ -448,7 +448,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 				groupsRelationMapper.updateById(relation);
 				//同规格只加时长
 				relation.setIsClaudeCodeRenew(Boolean.TRUE);
-				if (relationSku.getCodePoints() != sku.getCodePoints()) {
+				if (relationSku.getClaudeDailyLimit() != sku.getClaudeDailyLimit()) {
 					relation.setIsClaudeCodeUpgrade(true);
 				}
 				return relation;

+ 4 - 4
netflix-service/src/main/java/com/cyksj/service/mange/impl/MirrorUserCleatServiceImpl.java

@@ -161,8 +161,8 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
 			GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 			GoodsDonSku finalSku = skuMapper.selectById(groupsTrips.getSkuId());
 			Date renewExpiryTime = null;
-			Integer oriCodePoints = claudeCodeUser.getCodePoints();
-			claudeCodeUser.setOriCodePoints(oriCodePoints);
+			Integer oriClaudeDailyLimit = claudeCodeUser.getClaudeDailyLimit();
+			claudeCodeUser.setOriCodePoints(oriClaudeDailyLimit);
 			//当前续费订单id
 			Long presentUserCodePackageOrderId = claudeCodeUser.getRenewOrderId();
 			claudeCodeUser.setRenewSkuId(null);
@@ -200,8 +200,8 @@ public class MirrorUserCleatServiceImpl implements MirrorUserCleatService {
 				return;
 			}
 			//还原镜像user
-			claudeCodeUser.setCodePoints(finalSku.getCodePoints());
-			claudeCodeUser.setCodeCreditRecovery(finalSku.getCodeCreditRecovery());
+			claudeCodeUser.setClaudeDailyLimit(finalSku.getClaudeDailyLimit());
+			claudeCodeUser.setClaudeQuota(finalSku.getClaudeQuota());
 			claudeCodeUser.setRenewExpiryTime(renewExpiryTime);
 			claudeCodeUser.setPlanName(finalSku.getSpecVal());
 			claudeCodeUserMapper.updateById(claudeCodeUser);

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1260,7 +1260,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			if (thisCodeRenewSkuId != null) {
 				//claude code积分上限
 				GoodsDonSku renewSku = goodsDonSkuMapper.selectById(renewSkuId);
-				if (claudeCodeUser.getCodePoints() < renewSku.getCodePoints()) {
+				if (claudeCodeUser.getClaudeDailyLimit() < renewSku.getClaudeDailyLimit()) {
 					throw BusinessRuntimeException.getInstance("选择的续费套餐错误");
 				}
 			}

+ 2 - 2
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -2040,8 +2040,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				try {
 					//cc用户镜像
 					ClaudeCodeUserInfoView userInfo = claudeCodeService.getClaudeCodeUserSubsInfo(userId);
-					ticketRenewUpgradeView.setCodePoints(userInfo.getCodePoints());
-					ticketRenewUpgradeView.setCodeCreditRecovery(userInfo.getCodeCreditRecovery());
+					ticketRenewUpgradeView.setClaudeDailyLimit(userInfo.getClaudeDailyLimit());
+					ticketRenewUpgradeView.setClaudeQuota(userInfo.getClaudeQuota());
 					ticketRenewUpgradeView.setIsRenewPackage(userInfo.getRenewSkuId() != null ? true : false);
 					ticketRenewUpgradeView.setHighestUsage(userInfo.getHighestUsage());
 					CodexUserInfoView codexUserInfo = userInfo.getCodexUserInfo();

+ 3 - 3
netflix-web/src/main/java/com/cyksj/web/controller/claude/ClaudeCodeController.java

@@ -227,7 +227,7 @@ public class ClaudeCodeController {
 					.in(ClaudeCodeUser::getUserId, userIdList)
 					.last("limit 1"));
 			if (user != null) {
-				Integer userCodePoints = user.getCodePoints();
+				Integer claudeDailyLimit = user.getClaudeDailyLimit();
 				GroupsRelation relation = relationMapper.selectById(user.getRelationId());
 				GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
 				Long skuId = groupsTrips.getSkuId();
@@ -242,7 +242,7 @@ public class ClaudeCodeController {
 						if (CollUtil.isNotEmpty(upgradeSkuIds)) {
 							renewSkuViews = beanSearcher.searchAll(RenewUpgradePackageFrontView.RenewSkuView.class, MapUtils.builder()
 									//高套餐
-									.field(RenewUpgradePackageFrontView.RenewSkuView::getCodePoints, userCodePoints).op(Operator.GreaterThan)
+									.field(RenewUpgradePackageFrontView.RenewSkuView::getClaudeDailyLimit, claudeDailyLimit).op(Operator.GreaterThan)
 									.field(RenewUpgradePackageFrontView.RenewSkuView::getSkuId, upgradeSkuIds).op(Operator.InList)
 									.build());
 						}
@@ -516,7 +516,7 @@ public class ClaudeCodeController {
 	/**
 	 * 用户使用每日重置
 	 */
-	@PostMapping("/use/day/reset-count")
+//	@PostMapping("/use/day/reset-count")
 	public Result<Map<String, Object>> useDayResetCount() throws Exception {
 		long userId = StpUserUtil.getLoginIdAsLong();
 		claudeCodeService.useDayResetCount(userId);