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;
|
}
|
}
|