|
@@ -114,6 +114,10 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
}
|
|
|
//清缓存
|
|
//清缓存
|
|
|
if (orderType == 2) {
|
|
if (orderType == 2) {
|
|
|
|
|
+ //记录变更积分
|
|
|
|
|
+ if (isUpgrade) {
|
|
|
|
|
+ recordCodePointsChangeRecord(claudeCodeUser.getUserId(), codePoints - thisRelationCodePoints, "升级", "adjustment");
|
|
|
|
|
+ }
|
|
|
invalidateUserCache(relationUserId);
|
|
invalidateUserCache(relationUserId);
|
|
|
}
|
|
}
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -358,10 +362,15 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser) {
|
|
|
|
|
|
|
+ public void updateClaudeCodeUserPackageInfo(ClaudeCodeUser claudeCodeUser, Integer oriCodePoints, String description, String type) {
|
|
|
try {
|
|
try {
|
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
|
|
ClaudeCodeResp codeUserPackage = createOrUpdateClaudeCodeUserPackage(claudeCodeUser.getUserId(), claudeCodeUser.getPlanName(), claudeCodeUser.getCodePoints(), claudeCodeUser.getCodeCreditRecovery(), claudeCodeUser.getExpiryTime());
|
|
|
if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
|
|
if (!Constant.SUCCESS.equals(codeUserPackage.getMessage())) {
|
|
|
|
|
+ Integer codePoints = claudeCodeUser.getCodePoints();
|
|
|
|
|
+ //变更积分
|
|
|
|
|
+ Integer amount = codePoints - oriCodePoints;
|
|
|
|
|
+ //记录变更积分
|
|
|
|
|
+ recordCodePointsChangeRecord(claudeCodeUser.getUserId(), amount, description, type);
|
|
|
//重试标记
|
|
//重试标记
|
|
|
claudeCodeUser.setIsRetry(Boolean.TRUE);
|
|
claudeCodeUser.setIsRetry(Boolean.TRUE);
|
|
|
claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
claudeCodeUserMapper.updateById(claudeCodeUser);
|
|
@@ -375,6 +384,30 @@ public class ClaudeCodeServiceImpl implements ClaudeCodeService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param userId
|
|
|
|
|
+ * @param amount
|
|
|
|
|
+ * @param description
|
|
|
|
|
+ * @param type consume refund adjustment
|
|
|
|
|
+ */
|
|
|
|
|
+ private void recordCodePointsChangeRecord(Long userId, Integer amount, String description, String type) {
|
|
|
|
|
+ Map<String, Object> parmas = new HashMap<>();
|
|
|
|
|
+ parmas.put("amount", amount);
|
|
|
|
|
+ parmas.put("description", description);
|
|
|
|
|
+ parmas.put("type", type);
|
|
|
|
|
+ String url = String.format(CLAUDE_CODE_API_PREFIX + "/api/users/%s/credits/adjust", userId);
|
|
|
|
|
+ try {
|
|
|
|
|
+ String responseBody = executeClaudeCodePostApi(url, Jsons.toJson(parmas));
|
|
|
|
|
+ ClaudeCodeResp claudeCodeResp = Jsons.parseObject(responseBody, ClaudeCodeResp.class);
|
|
|
|
|
+ if (!Constant.SUCCESS.equals(claudeCodeResp.getMessage())) {
|
|
|
|
|
+ log.error("变更用户:{}积分记录失败", userId);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Boolean delUserPackages(Long userId) {
|
|
public Boolean delUserPackages(Long userId) {
|
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|
|
String url = String.format(CLAUDE_CODE_API_PREFIX + "api/users/%s/plan", userId);
|