package cn.iocoder.yudao.module.system.framework.agent; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; /** Redis 委托存储;只保存密钥摘要,原始票据不会落库。 */ @Component @RequiredArgsConstructor public class RedisAgentDelegationStore implements AgentDelegationStore { private static final String REDIS_KEY_PREFIX = "agent:bridge:delegation:"; private final StringRedisTemplate stringRedisTemplate; @Override public void save(AgentDelegation delegation, long ttlSeconds) { stringRedisTemplate.opsForValue().set(key(delegation.getId()), JsonUtils.toJsonString(delegation), ttlSeconds, TimeUnit.SECONDS); } @Override public AgentDelegation get(String delegationId) { return JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(key(delegationId)), AgentDelegation.class); } @Override public void delete(String delegationId) { stringRedisTemplate.delete(key(delegationId)); } private static String key(String delegationId) { return REDIS_KEY_PREFIX + delegationId; } }