Merge remote-tracking branch 'origin/ai-hub' into ai-hub
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user