云
6 小时以前 95ae0c83d2aa58d86b4039e3f7f16ee93afb8f00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;
    }
}