package com.zy.ai.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.ai.entity.AiTokenUsage; import com.zy.ai.mapper.AiTokenUsageMapper; import com.zy.ai.service.AiTokenUsageService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Slf4j @Service("aiTokenUsageService") public class AiTokenUsageServiceImpl extends ServiceImpl implements AiTokenUsageService { @Override public void incrementTokens(long promptTokens, long completionTokens, long totalTokens, long callCount) { if (promptTokens <= 0 && completionTokens <= 0 && totalTokens <= 0 && callCount <= 0) { return; } try { int rows = baseMapper.incrementTokens(promptTokens, completionTokens, totalTokens, callCount); if (rows == 0) { // Row doesn't exist, create it AiTokenUsage usage = new AiTokenUsage(); usage.setId(1); usage.setPromptTokens(promptTokens); usage.setCompletionTokens(completionTokens); usage.setTotalTokens(totalTokens); usage.setLlmCallCount(callCount); save(usage); } } catch (Exception e) { log.warn("Failed to increment AI token usage: {}", e.getMessage()); } } }