From 8bd021a18a68459eaeb3536cf6add1640911c681 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 22 八月 2025 16:33:37 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs | 4 +- FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs | 6 +- FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs | 32 +++++++++++++++ FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CheckContractTemplateCommand.cs | 21 ++++++++++ FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 7 +++ 5 files changed, 64 insertions(+), 6 deletions(-) diff --git a/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CheckContractTemplateCommand.cs b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CheckContractTemplateCommand.cs new file mode 100644 index 0000000..5025f3e --- /dev/null +++ b/FlexJobApi.Core/Models/ElectronSignServer/ContractTemplates/CheckContractTemplateCommand.cs @@ -0,0 +1,21 @@ +锘縰sing MediatR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鏍¢獙鍚堝悓妯℃槸鍚﹀彲鐢� + /// </summary> + [Resource([EnumResourceController.UserServerElectronSign])] + public class CheckContractTemplateCommand : IRequest<bool> + { + /// <summary> + /// 鍚堝悓妯℃澘Id + /// </summary> + public Guid Id { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs similarity index 92% rename from FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs rename to FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs index fc68a3f..cf3f847 100644 --- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs +++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs @@ -14,7 +14,7 @@ /// 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏 /// </summary> [Resource([EnumResourceController.UserServerEnterpriseEmployee])] - public class GetEnterpriseEmployeeElectronSignQuery : IRequest<GetEnterpriseEmployeeElectronSignQueryResult> + public class GetPersonalUserElectronSignQuery : IRequest<GetPersonalUserElectronSignQueryResult> { /// <summary> /// 鐏靛伐Id @@ -30,7 +30,7 @@ /// <summary> /// 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏-缁撴灉 /// </summary> - public class GetEnterpriseEmployeeElectronSignQueryResult + public class GetPersonalUserElectronSignQueryResult { /// <summary> /// 鍚堝悓缂栧彿 diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs index 1545b63..945ba7b 100644 --- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs @@ -30,7 +30,8 @@ ) : IRequestHandler<SaveContractTemplateCommand, Guid>, IRequestHandler<SaveContractTemplateValuesCommand, Guid>, - IRequestHandler<SetIsDisabledContractTemplateCommand, int> + IRequestHandler<SetIsDisabledContractTemplateCommand, int>, + IRequestHandler<CheckContractTemplateCommand, bool> { private readonly IMediator mediator = mediator; private readonly IRepository<ContractTemplate> rep = rep; @@ -212,6 +213,35 @@ } /// <summary> + /// 鏍¢獙鍚堝悓妯℃槸鍚﹀彲鐢� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<bool> Handle(CheckContractTemplateCommand request, CancellationToken cancellationToken) + { + var model = await rep.AsQueryable().AsNoTracking() + .Where(it => it.Id == request.Id && !it.IsDisabled) + .Select(it => new + { + it.Access, + it.Status + }) + .FirstOrDefaultAsync(); + if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓妯℃澘"); + if (model.Status != EnumContractTemplateStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "鏈埗鐗�"); + await mediator.Send(new CheckElectronSignAccessEnabledsCommand + { + Accesses = new List<EnumElectronSignAccess> + { + model.Access!.Value + } + }, cancellationToken); + return true; + + } + + /// <summary> /// 鍚屾鐢靛瓙绛惧悎鍚屾ā鏉� /// </summary> /// <param name="entity"></param> diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs index 564a73d..5056c3a 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs @@ -7,6 +7,7 @@ using Furion.HttpRemote; using Mapster; using MediatR; +using Microsoft.AspNetCore.Components.Forms; using Microsoft.EntityFrameworkCore; using MiniExcelLibs; using NetTopologySuite.Index.HPRtree; @@ -25,6 +26,7 @@ /// 鐏靛伐鍛戒护澶勭悊鍣� /// </summary> public class EnterpriseEmployeesCommandHandler( + IMediator mediator, IRepository<EnterpriseEmployee> rep, IRepository<User> repUser, IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract @@ -33,6 +35,7 @@ IRequestHandler<EditEnterpriseEmployeeCommand, Guid>, IRequestHandler<InviteEnterpriseEmployeeElectronSignCommand, Guid> { + private readonly IMediator mediator = mediator; private readonly IRepository<EnterpriseEmployee> rep = rep; private readonly IRepository<User> repUser = repUser; private readonly IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract = repEnterpriseEmployeeContract; @@ -210,6 +213,10 @@ if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "宸茬绾�"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s400, "宸茬敓鏁�"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s400, "宸查個璇�"); + await mediator.Send(new CheckContractTemplateCommand + { + Id = request.Id + }, cancellationToken); entity.ContractTemplateId = request.Id; entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Wait; entity.UserSignContractTime = null; diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs index c50f501..a4598f3 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs @@ -20,7 +20,7 @@ IRequestHandler<GetEnterpriseEmployeesQuery, GetEnterpriseEmployeesQueryResult>, IRequestHandler<GetEnterpriseEmployeeQuery, GetEnterpriseEmployeeQueryResult>, IRequestHandler<GetEnterpriseEmployeeElectronSignsQuery, GetEnterpriseEmployeeElectronSignsQueryResult>, - IRequestHandler<GetEnterpriseEmployeeElectronSignQuery, GetEnterpriseEmployeeElectronSignQueryResult> + IRequestHandler<GetPersonalUserElectronSignQuery, GetPersonalUserElectronSignQueryResult> { private readonly IRepository<EnterpriseEmployee> rep = rep; @@ -178,7 +178,7 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public async Task<GetEnterpriseEmployeeElectronSignQueryResult> Handle(GetEnterpriseEmployeeElectronSignQuery request, CancellationToken cancellationToken) + public async Task<GetPersonalUserElectronSignQueryResult> Handle(GetPersonalUserElectronSignQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var q = rep.AsQueryable().AsNoTracking() @@ -193,7 +193,7 @@ q = q.Where(it => it.ContractTemplate.Code == request.Code); } - var model = await q.GetDetail<EnterpriseEmployee, GetEnterpriseEmployeeElectronSignQueryResult>(); + var model = await q.GetDetail<EnterpriseEmployee, GetPersonalUserElectronSignQueryResult>(); return model; } } -- Gitblit v1.9.1