using FlexJobApi.Core; using Furion; using Furion.DatabaseAccessor; using Furion.FriendlyException; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { /// /// 电子签回传 /// public class ElectronSignCallbackCommandHandler( IRepository repUser ) : IRequestHandler { private readonly IRepository repUser = repUser; /// /// 电子签回传 /// /// /// /// public async Task Handle(ElectronSignCallbackCommand request, CancellationToken cancellationToken) { var appId = App.GetConfig("ElectronSignServer:AppId"); if (appId != request.CustomerId) throw Oops.Oh(EnumErrorCodeType.s400, "无效的AppId"); if (request.Action == "UserSign") { var user = await repUser.AsQueryable() .Include(it => it.UserAuth) .Where(it => it.UserAuth.ElectronSignUserId == request.RelationId) .FirstOrDefaultAsync(); if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "用户"); if (request.Data is ElectronSignCallbackCommandUserSignModel data) { if (user.Id != data.OutUserId) throw Oops.Oh(EnumErrorCodeType.s404, "用户"); var enterpriseEmployees = request.Success ? await repUser.Change().AsQueryable() .Where(it => it.UserId == user.Id) .ToListAsync() : new List(); PersonalUserRealCommandHandler.PersonalReal( request.Success == true ? EnumPersonalUserRealStatus.Real : EnumPersonalUserRealStatus.Fail, EnumUserRealMethod.Face, user, enterpriseEmployees, user.UserAuth.Name, user.UserAuth.Identity, user.UserAuth.IdentityImg, user.UserAuth.IdentityBackImg, faceRealUrl: user.UserAuth.FaceRealUrl); await repUser.UpdateAsync(user); } } return true; } } }