Merge remote-tracking branch 'origin/ai-hub' into ai-hub

This commit is contained in:
Gsh
2025-08-29 22:02:14 +08:00
2 changed files with 11 additions and 8 deletions

View File

@@ -112,14 +112,13 @@ public class FuwuhaoService : ApplicationService
//根据操作类型,进行业务处理,返回处理结果,再写入缓存,10s过去相当于用户10s扫完app后轮询要在10秒内完成
var scenResult =
await _fuwuhaoManager.CallBackHandlerAsync(cache.SceneType, body.FromUserName, cache.UserId);
cache.SceneResult = scenResult;
cache.SceneResult = scenResult.SceneResult;
cache.UserId = scenResult.UserId;
await _sceneCache.SetAsync($"{FuwuhaoConst.SceneCacheKey}{scene}", cache,
new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(50) });
//如果是注册将OpenId与Scene进行绑定代表用户有30分钟进行注册
if (scenResult == SceneResultEnum.Register)
if (scenResult.SceneResult == SceneResultEnum.Register)
{
await _openIdToSceneCache.SetAsync($"{FuwuhaoConst.OpenIdToSceneCacheKey}{body.FromUserName}", scene,
new DistributedCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(30) });
@@ -176,6 +175,10 @@ public class FuwuhaoService : ApplicationService
switch (output.SceneResult)
{
case SceneResultEnum.Login:
if (cache.UserId is null)
{
throw new ApplicationException("获取用户id异常请重试");
}
var loginInfo = await _accountService.PostLoginAsync(cache.UserId!.Value);
output.Token = loginInfo.Token;
output.RefreshToken = loginInfo.RefreshToken;

View File

@@ -207,7 +207,7 @@ public class FuwuhaoManager : DomainService
/// <param name="openId"></param>
/// <param name="bindUserId"></param>
/// <returns></returns>
public async Task<SceneResultEnum> CallBackHandlerAsync(SceneTypeEnum sceneType, string openId, Guid? bindUserId)
public async Task<(SceneResultEnum SceneResult,Guid? UserId)> CallBackHandlerAsync(SceneTypeEnum sceneType, string openId, Guid? bindUserId)
{
var aiUserInfo = await _userRepository._DbQueryable.Where(x => x.FuwuhaoOpenId == openId).FirstAsync();
switch (sceneType)
@@ -216,12 +216,12 @@ public class FuwuhaoManager : DomainService
//有openid说明登录成功
if (aiUserInfo is not null)
{
return SceneResultEnum.Login;
return (SceneResultEnum.Login,aiUserInfo.UserId);
}
//无openid说明需要进行注册
else
{
return SceneResultEnum.Register;
return (SceneResultEnum.Register,null);
}
break;
@@ -240,7 +240,7 @@ public class FuwuhaoManager : DomainService
//说明没有绑定过,直接绑定
await _userRepository.InsertAsync(new AiUserExtraInfoEntity(bindUserId.Value, openId));
return SceneResultEnum.Bind;
return (SceneResultEnum.Bind,null);
break;
default:
throw new ArgumentOutOfRangeException(nameof(sceneType), sceneType, null);