fix: 修复服务号注册缓存时间及锁定范围问题

This commit is contained in:
ccnetcore
2025-08-29 23:32:40 +08:00
parent e7326fea7b
commit bde4611a50

View File

@@ -115,7 +115,7 @@ public class FuwuhaoService : ApplicationService
cache.SceneResult = scenResult.SceneResult; cache.SceneResult = scenResult.SceneResult;
cache.UserId = scenResult.UserId; cache.UserId = scenResult.UserId;
await _sceneCache.SetAsync($"{FuwuhaoConst.SceneCacheKey}{scene}", cache, await _sceneCache.SetAsync($"{FuwuhaoConst.SceneCacheKey}{scene}", cache,
new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(50) }); new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(120) });
//如果是注册将OpenId与Scene进行绑定代表用户有30分钟进行注册 //如果是注册将OpenId与Scene进行绑定代表用户有30分钟进行注册
if (scenResult.SceneResult == SceneResultEnum.Register) if (scenResult.SceneResult == SceneResultEnum.Register)
@@ -230,7 +230,7 @@ public class FuwuhaoService : ApplicationService
var result = await _fileService.Post(files); var result = await _fileService.Post(files);
//由于存在查询/编辑在同一个事务操作,上锁防止并发 //由于存在查询/编辑在同一个事务操作,上锁防止并发
await using (await DistributedLock.AcquireLockAsync("fuwuhao:RegisterLock", TimeSpan.FromMinutes(1))) await using (await DistributedLock.AcquireLockAsync($"fuwuhao:RegisterLock:{userInfo.OpenId}", TimeSpan.FromMinutes(1)))
{ {
if (await _userRepository.IsAnyAsync(x => x.FuwuhaoOpenId == userInfo.OpenId)) if (await _userRepository.IsAnyAsync(x => x.FuwuhaoOpenId == userInfo.OpenId))
{ {
@@ -249,12 +249,12 @@ public class FuwuhaoService : ApplicationService
}); });
await _userRepository.InsertAsync(new AiUserExtraInfoEntity(userId, userInfo.OpenId)); await _userRepository.InsertAsync(new AiUserExtraInfoEntity(userId, userInfo.OpenId));
await _sceneCache.SetAsync($"{FuwuhaoConst.SceneCacheKey}:{scene}", new SceneCacheDto await _sceneCache.SetAsync($"{FuwuhaoConst.SceneCacheKey}{scene}", new SceneCacheDto
{ {
UserId = userId, UserId = userId,
SceneResult = SceneResultEnum.Login SceneResult = SceneResultEnum.Login
}, },
new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(50) }); new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(120) });
} }
return "恭喜你已注册成功意社区账号!"; return "恭喜你已注册成功意社区账号!";