| | |
| | | IRequestHandler<WxmpLoginCommand, LoginCommandCallback>, |
| | | IRequestHandler<BindWxmpUserInfoCommand, LoginCommandCallback>, |
| | | IRequestHandler<ChangePhoneNumberCommand, bool>, |
| | | IRequestHandler<RegisterPersonalUserCommand, bool> |
| | | IRequestHandler<RegisterPersonalUserCommand, bool>, |
| | | IRequestHandler<GetPersonalLoginInfoQuery, GetPersonalLoginInfoQueryResult> |
| | | { |
| | | private readonly IRepository<User> rep = rep; |
| | | private readonly SmsUtils smsUtils = smsUtils; |
| | |
| | | throw Oops.Oh(EnumUserErrorCodeType.u1000); |
| | | if (user.Status == EnumUserStatus.Disabled) |
| | | throw Oops.Oh(EnumUserErrorCodeType.u1001); |
| | | return GetCurrentLogier(user, EnumClientType.Wxmp); |
| | | return GetCurrentLogier(user, EnumClientType.Wxmp, snsJscode2session.session_key); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询个人用户登录信息 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<GetPersonalLoginInfoQueryResult> Handle(GetPersonalLoginInfoQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var model = await rep.GetPersonalQueryable(true) |
| | | .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken); |
| | | var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() |
| | | .Where(it => it.UserId == model.Id); |
| | | model.TaskCount = await taskUserQueryable.CountAsync(); |
| | | model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Pass); |
| | | model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.HireStatus == EnumTaskUserHireStatus.Refuse); |
| | | return model; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前登录用户 |
| | | /// </summary> |
| | | /// <param name="user"></param> |
| | | /// <param name="clientType"></param> |
| | | /// <param name="session_key"></param> |
| | | /// <returns></returns> |
| | | private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType) |
| | | private LoginCommandCallback GetCurrentLogier(User user, EnumClientType clientType, string? session_key = null) |
| | | { |
| | | var logier = new CurrentLogier |
| | | { |
| | |
| | | Id = logier.Id, |
| | | AccessToken = logier.AccessToken, |
| | | RefreshToken = logier.RefreshToken, |
| | | SessionKey = session_key, |
| | | IsBindPhoneNumber = logier.PhoneNumber.IsNotNull() |
| | | }; |
| | | } |