ClaudeCodeService.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.cyksj.service.claude;
  2. import com.cyksj.model.entity.ClaudeCodeUser;
  3. import com.cyksj.model.entity.GoodsDonSku;
  4. import com.cyksj.model.entity.GroupsRelation;
  5. import com.cyksj.model.request.ClaudeCodeApiKeysReq;
  6. import com.cyksj.model.request.ClaudeCodeCreditCardUseReq;
  7. import com.cyksj.model.request.ClaudeCodeDelReq;
  8. import com.cyksj.model.request.CreditResetReq;
  9. import com.cyksj.model.request.TimeRateConfigReq;
  10. import com.cyksj.model.response.*;
  11. import com.cyksj.model.response.claudecode.ClaudeCodeResp;
  12. import com.cyksj.model.views.ClaudeCodeUserApiKeysView;
  13. import com.cyksj.model.views.ClaudeCodeUserInfoView;
  14. import com.cyksj.model.views.ClaudeCodeUserResetRecordView;
  15. import com.cyksj.model.views.ClaudeCodeUserCreditCardRecordView;
  16. import com.ejlchina.searcher.SearchResult;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * 项目名: yhlxj11111111
  21. * 文件名: ClaudeCodeService
  22. * 创建者: JavaZou
  23. * 创建时间:2025/8/8 10:55
  24. */
  25. public interface ClaudeCodeService {
  26. /**
  27. * 生成claude code用户套餐信息
  28. */
  29. void generateOrUpdateClaudeCodeUserInfo(Long orderId, Long relationId, Long userId, GoodsDonSku sku, Integer orderType);
  30. /**
  31. * 用户创建api keys
  32. */
  33. ClaudeCodeResp createApiKeys(ClaudeCodeApiKeysReq req) throws Exception;
  34. /**
  35. * 删除api key
  36. */
  37. void deleteApiKeysById(ClaudeCodeDelReq delReq) throws Exception;
  38. /**
  39. * 用户api keys列表
  40. */
  41. List<ClaudeCodeUserApiKeysView> getUserApiKeys(long userId) throws Exception;
  42. ClaudeCodePointsHistoryResp getUserPointsDetail(Long userId, String type, Integer page, Integer limit) throws Exception;
  43. ClaudeCodeResp getUserDashboard(Long userId) throws Exception;
  44. ClaudeCodeResp getUserBalance(Long userId) throws Exception;
  45. ClaudeCodeResp getCreditsAnalytics(Long userId, String start, String end, String tz, Integer page, Integer limit, String order, String type) throws Exception;
  46. void invalidateUserCache(Long relationUserId);
  47. ClaudeCodeUserInfoView getClaudeCodeUserSubsInfo(Long userId);
  48. Boolean checkClaudeCodeUser(Long userId);
  49. void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser, Date expiryTime);
  50. /**
  51. * 删除用户claude code 套餐
  52. */
  53. Boolean delUserPackages(Long userId);
  54. /**
  55. * 处理续费升级 TODO
  56. */
  57. void handleClaudeCodeUserPackageSku(GroupsRelation relation, GoodsDonSku sku, Long orderId);
  58. /**
  59. * 获取当前时间的积分倍率配置信息
  60. */
  61. TimeRateCurrentResp getCurrentTimeRate();
  62. /**
  63. * 获取系统中所有的时间倍率配置列表(包括已启用和已禁用的配置)
  64. */
  65. TimeRateConfigsResp getAllConfigs();
  66. /**
  67. * 创建新的时间倍率配置。系统支持跨天配置(如23点到6点)
  68. */
  69. TimeRateConfigResp createConfig(TimeRateConfigReq req);
  70. /**
  71. * 更新指定ID的时间倍率配置
  72. */
  73. TimeRateConfigResp updateConfig(Long id, TimeRateConfigReq req);
  74. /**
  75. * 删除指定ID的时间倍率配置。删除后该时间段将使用默认倍率1.0
  76. */
  77. void deleteConfig(Long id);
  78. /**
  79. * 将指定用户的积分重置为满积分状态(used_credits设为0)
  80. */
  81. CreditResetResp resetUserCredits(Long userId, CreditResetReq req);
  82. /**
  83. * 重置用户codePoints到原始值并记录重置次数
  84. */
  85. void resetUserCodePoints(Long userId, Integer resetType, Long operatorId, String operatorName, String resetReason);
  86. /**
  87. * 使用积分卡增加用户codePoints并记录使用次数
  88. */
  89. void useCreditCard(Long userId, Integer addCodePoints, String cardNumber, Long operatorId, String operatorName, String useReason);
  90. /**
  91. * 用户使用重置次数 - 保持幂等性
  92. */
  93. boolean useResetCount(Long userId);
  94. /**
  95. * 用户使用积分卡
  96. */
  97. ClaudeCodeResp useCreditCard(ClaudeCodeCreditCardUseReq req) throws Exception;
  98. /**
  99. * 获取用户重置次数明细
  100. */
  101. SearchResult<ClaudeCodeUserResetRecordView> getUserResetRecords(Long userId, Integer page, Integer limit);
  102. /**
  103. * 获取用户积分卡使用明细
  104. */
  105. SearchResult<ClaudeCodeUserCreditCardRecordView> getUserCreditCardRecords(Long userId, Integer page, Integer limit);
  106. /**
  107. * 获取用户奖励明细
  108. */
  109. ClaudeCodeRewardDetailsResp getUserRewardDetails(Long userId);
  110. }