FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
@@ -15,6 +15,7 @@ public EnterpriseEmployee() { TaskInfoUsers = []; Contracts = []; } /// <summary> @@ -101,13 +102,13 @@ public DateTime? EnterpriseSignContractTime { get; set; } /// <summary> /// 电子合同 /// </summary> public string ContractUrl { get; set; } /// <summary> /// 任务人员信息 /// </summary> public List<TaskInfoUser> TaskInfoUsers { get; set; } /// <summary> /// 合同 /// </summary> public List<EnterpriseEmployeeContract> Contracts { get; set; } } } FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployeeContract.cs
New file @@ -0,0 +1,55 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 灵工合同 /// </summary> public class EnterpriseEmployeeContract : CommonEntity { /// <summary> /// 灵工Id /// </summary> public Guid EnterpriseEmployeeId { get; set; } /// <summary> /// 灵工 /// </summary> public EnterpriseEmployee EnterpriseEmployee { get; set; } /// <summary> /// 灵工签约状态 /// </summary> public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; } /// <summary> /// 灵工签约时间 /// </summary> public DateTime? UserSignContractTime { get; set; } /// <summary> /// 企业签约状态 /// </summary> public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; } /// <summary> /// 企业签约时间 /// </summary> public DateTime? EnterpriseSignContractTime { get; set; } /// <summary> /// 合同编号 /// </summary> public string Code { get; set; } /// <summary> /// 电子合同 /// </summary> public string Url { get; set; } } } FlexJobApi.Core/FlexJobApi.Core.xml
@@ -1740,14 +1740,59 @@ 企业签约时间 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployee.ContractUrl"> <summary> 电子合同 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployee.TaskInfoUsers"> <summary> 任务人员信息 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployee.Contracts"> <summary> 合同 </summary> </member> <member name="T:FlexJobApi.Core.EnterpriseEmployeeContract"> <summary> 灵工合同 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseEmployeeId"> <summary> 灵工Id </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseEmployee"> <summary> 灵工 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.UserSignContractStatus"> <summary> 灵工签约状态 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.UserSignContractTime"> <summary> 灵工签约时间 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseSignContractStatus"> <summary> 企业签约状态 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseSignContractTime"> <summary> 企业签约时间 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.Code"> <summary> 合同编号 </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.Url"> <summary> 电子合同 </summary> </member> <member name="T:FlexJobApi.Core.EnterpriseUserCollect"> @@ -8129,6 +8174,16 @@ 错误信息 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeElectronSignQuery"> <summary> 查询个人用户签约详情 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeElectronSignQueryResult"> <summary> 查询个人用户签约详情-结果 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeQuery"> <summary> 查询灵工详情 FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs
@@ -13,6 +13,7 @@ [Resource([EnumResourceController.UserServerElectronSign])] public class GetEnabledElectronSignSettingsQuery : IRequest<List<GetEnabledElectronSignSettingsQueryResultItem>> { } /// <summary> FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs
New file @@ -0,0 +1,25 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 查询个人用户签约详情 /// </summary> [Resource([EnumResourceController.UserServerEnterpriseEmployee])] public class GetEnterpriseEmployeeElectronSignQuery : IRequest<GetEnterpriseEmployeeElectronSignQueryResult> { } /// <summary> /// 查询个人用户签约详情-结果 /// </summary> public class GetEnterpriseEmployeeElectronSignQueryResult { } } FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
@@ -15,11 +15,13 @@ /// 电子签配置查询处理器 /// </summary> public class ElectronSignSettingQueryHandler( IRepository<ElectronSignSetting> rep IRepository<ElectronSignSetting> rep, IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting ) : IRequestHandler<GetEnabledElectronSignSettingsQuery, List<GetEnabledElectronSignSettingsQueryResultItem>> { private readonly IRepository<ElectronSignSetting> rep = rep; private readonly IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting = repEnterpriseElectronSignSetting; /// <summary> /// 查询已启用的电子签配置 @@ -27,10 +29,20 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken) public async Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken) { return rep.AsQueryable().AsNoTracking() .Where(it => !it.IsDisabled) var logier = JwtUtils.GetCurrentLogier(); var q = rep.AsQueryable().AsNoTracking() .Where(it => !it.IsDisabled); if (logier.Type == EnumUserType.Enterprise) { var accesses = await repEnterpriseElectronSignSetting.AsQueryable() .Where(it => it.EnterpriseId == logier.EnterpriseId) .Select(it => it.ElectronSignAccess) .ToListAsync(); q = q.Where(it => accesses.Contains(it.Access)); } return q .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>() .ToListAsync(); } FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -126,7 +126,10 @@ UserSignContractStatus = it.UserSignContractStatus, EnterpriseSignContractStatus = it.EnterpriseSignContractStatus, EnterpriseSignContractTime = it.EnterpriseSignContractTime, ContractUrl = it.ContractUrl, ContractUrl = it.Contracts .Where(c => c.EnterpriseSignContractStatus == it.EnterpriseSignContractStatus) .Select(c => c.Url) .FirstOrDefault(), }); return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken); }