ClaudeCodeService.java 3.4 KB

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