sunpengfei
2025-08-14 33b3aab9c26972d816ee41fa87059efa34e77a11
feat:开发
1个文件已添加
4个文件已修改
218 ■■■■■ 已修改文件
FlexJobApi.Core/FlexJobApi.Core.xml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/FlexJobApi.Core.xml
@@ -8514,6 +8514,71 @@
            已取消
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery">
            <summary>
            查询C端人员签约详情分页列表数据
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery.Id">
            <summary>
            用户Id
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResult">
            <summary>
            查询C端人员签约详情分页列表数据-结果
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem">
            <summary>
            查询C端人员签约详情分页列表数据-结果-项
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.Id">
            <summary>
            灵工Id
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseName">
            <summary>
            所属商户
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.ApplyTime">
            <summary>
            报名时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.HireStatus">
            <summary>
            录用状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.HireTime">
            <summary>
            录用时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.UserSignContractStatus">
            <summary>
            灵工签约状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseSignContractStatus">
            <summary>
            企业签约状态
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseSignContractTime">
            <summary>
            企业签约时间
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.ContractUrl">
            <summary>
            电子合同
            </summary>
        </member>
        <member name="T:FlexJobApi.Core.GetPersonalUserInfosQuery">
            <summary>
            查询C端人员分页列表数据
@@ -8580,6 +8645,16 @@
            身份证号
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.IdentityImg">
            <summary>
            身份证人像面
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.IdentityBackImg">
            <summary>
            身份证国徽面
            </summary>
        </member>
        <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.Gender">
            <summary>
            性别
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs
New file
@@ -0,0 +1,80 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询C端人员签约详情分页列表数据
    /// </summary>
    [Resource([EnumResourceController.User])]
    public class GetPersonalUserInfoSignContractsQuery : PagedListQuery<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public Guid Id { get; set; }
    }
    /// <summary>
    /// 查询C端人员签约详情分页列表数据-结果
    /// </summary>
    public class GetPersonalUserInfoSignContractsQueryResult : PagedListQueryResult<GetPersonalUserInfoSignContractsQueryResultItem>
    {
    }
    /// <summary>
    /// 查询C端人员签约详情分页列表数据-结果-项
    /// </summary>
    public class GetPersonalUserInfoSignContractsQueryResultItem
    {
        /// <summary>
        /// 灵工Id
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 所属商户
        /// </summary>
        public string EnterpriseName { get; set; }
        /// <summary>
        /// 报名时间
        /// </summary>
        public DateTimeOffset? ApplyTime { get; set; }
        /// <summary>
        /// 录用状态
        /// </summary>
        public EnumTaskUserHireStatus HireStatus { get; set; }
        /// <summary>
        /// 录用时间
        /// </summary>
        public DateTime? HireTime { get; set; }
        /// <summary>
        /// 灵工签约状态
        /// </summary>
        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
        /// <summary>
        /// 企业签约状态
        /// </summary>
        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
        /// <summary>
        /// 企业签约时间
        /// </summary>
        public DateTime? EnterpriseSignContractTime { get; set; }
        /// <summary>
        /// 电子合同
        /// </summary>
        public string ContractUrl { get; set; }
    }
}
FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
@@ -78,6 +78,16 @@
        public string Identity { get; set; }
        /// <summary>
        /// 身份证人像面
        /// </summary>
        public string IdentityImg { get; set; }
        /// <summary>
        /// 身份证国徽面
        /// </summary>
        public string IdentityBackImg { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        public EnumUserGender? Gender { get; set; }
FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -728,6 +728,14 @@
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:FlexJobApi.UserServer.Application.GetPersonalUserInfosQueryHandler.Handle(FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery,System.Threading.CancellationToken)">
            <summary>
            查询C端人员签约详情分页列表数据
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="T:FlexJobApi.UserServer.Application.GetUserInfoRolesQueryHandler">
            <summary>
            查询用户角色列表
FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -16,7 +16,8 @@
    public class GetPersonalUserInfosQueryHandler(
            IRepository<User> rep
        ) :
        IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>
        IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>,
        IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult>
    {
        private readonly IRepository<User> rep = rep;
@@ -51,11 +52,7 @@
            {
                q = q.Where(it =>
                    it.EnterpriseEmployees.Any(e =>
                        e.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass
                        && e.UserSignContractTime.HasValue
                        && request.SignContractBegin <= e.UserSignContractTime
                        && e.UserSignContractTime <= request.SignContractEnd
                        || e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass
                        e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass
                        && e.EnterpriseSignContractTime.HasValue
                        && request.SignContractBegin <= e.EnterpriseSignContractTime
                        && e.EnterpriseSignContractTime <= request.SignContractEnd));
@@ -70,6 +67,8 @@
                Name = it.Name,
                ContactPhoneNumber = it.ContactPhoneNumber,
                Identity = it.Identity,
                IdentityImg = it.UserAuth.IdentityImg,
                IdentityBackImg = it.UserAuth.IdentityBackImg,
                Gender = it.Gender,
                Age = it.Age,
                ProvinceCode = it.ProvinceCode,
@@ -85,13 +84,41 @@
                    .Select(e => e.HireTime)
                    .FirstOrDefault(),
                SignContractTime = it.EnterpriseEmployees
                    .OrderByDescending(e => e.EnterpriseSignContractTime > e.UserSignContractTime ? e.EnterpriseSignContractTime : e.UserSignContractTime)
                    .Where(e => e.HireStatus == EnumTaskUserHireStatus.Pass && e.HireTime.HasValue)
                    .Select(e => e.HireTime)
                    .OrderByDescending(e => e.EnterpriseSignContractTime)
                    .Where(e => e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass && e.EnterpriseSignContractTime.HasValue)
                    .Select(e => e.EnterpriseSignContractTime)
                    .FirstOrDefault(),
            });
            var result = await request.PageModel.GetPagedListAsync<GetPersonalUserInfosQueryResult, GetPersonalUserInfosQueryResultItem>(s, cancellationToken);
            return result;
        }
        /// <summary>
        /// 查询C端人员签约详情分页列表数据
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task<GetPersonalUserInfoSignContractsQueryResult> Handle(GetPersonalUserInfoSignContractsQuery request, CancellationToken cancellationToken)
        {
            var q = rep.Change<EnterpriseEmployee>().AsQueryable().AsNoTracking()
                .Where(it => it.UserId == request.Id)
                .Select(it => new GetPersonalUserInfoSignContractsQueryResultItem
                {
                    Id = it.Id,
                    EnterpriseName = it.Enterprise.EnterpriseName,
                    ApplyTime = it.TaskInfoUsers
                        .OrderBy(tu => tu.CreatedTime)
                        .Select(tu => tu.CreatedTime as DateTimeOffset?)
                        .FirstOrDefault(),
                    HireStatus = it.HireStatus,
                    HireTime = it.HireTime,
                    UserSignContractStatus = it.UserSignContractStatus,
                    EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
                    EnterpriseSignContractTime = it.EnterpriseSignContractTime,
                    ContractUrl = it.ContractUrl,
                });
            return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken);
        }
    }
}