sunpengfei
2025-08-07 b4205c80b0fd6220632fa0ab7df4c75ba844afc4
FlexJobApi.User.Application/UserInfos/Queries/GetOperationUserInfosQueryHandler.cs
@@ -24,27 +24,29 @@
        /// <inheritdoc/>
        public async Task<PagedListQueryResult<GetOperationUserInfosQueryResultItem>> Handle(GetOperationUserInfosQuery request, CancellationToken cancellationToken)
        {
            var q = repUser.AsQueryable().AsNoTracking()
                .OrderByDescending(it => it.Level).ThenByDescending(it => it.CreatedTime)
                .Where(it => it.Type == EnumUserType.Operation);
            if (request.Keywords.IsNotNull())
            {
                q = q.Where(it =>
                    it.UserAuth.Name.Contains(request.Keywords)
                    || it.UserAuth.UserName.Contains(request.Keywords)
                    || it.UserAuth.PhoneNumber.Contains(request.Keywords)
                    || it.Remark.Contains(request.Keywords));
            }
            var result = await q
                .Select(it => new GetOperationUserInfosQueryResultItem
            var result = await request.PageModel.GetPagedListAsync<UserInfo, GetOperationUserInfosQueryResultItem>(
                q =>
                {
                    q = q.OrderByDescending(it => it.Level).ThenByDescending(it => it.CreatedTime)
                        .Where(it => it.Type == EnumUserType.Operation);
                    if (request.Keywords.IsNotNull())
                    {
                        q = q.Where(it =>
                            it.UserAuth.Name.Contains(request.Keywords)
                            || it.UserAuth.UserName.Contains(request.Keywords)
                            || it.UserAuth.PhoneNumber.Contains(request.Keywords)
                            || it.Remark.Contains(request.Keywords));
                    }
                    return q;
                },
                it => new GetOperationUserInfosQueryResultItem
                {
                    Id = it.Id,
                    Name = it.UserAuth.Name,
                    UserName = it.UserAuth.UserName,
                    PhoneNumber = it.UserAuth.PhoneNumber,
                    Remark = it.Remark
                })
                .ToPagedListAsync(request.PageModel, cancellationToken);
                }, cancellationToken);
            if (result.Data.Any())
            {
                var ids = result.Data.DistinctSelect(it => it.Id);