using FlexJobApi.Core; using Furion; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Furion.HttpRemote; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using MiniExcelLibs; using NetTopologySuite.Index.HPRtree; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { /// /// 灵工命令处理器 /// public class EnterpriseEmployeesCommandHandler( IRepository rep ) : IRequestHandler, IRequestHandler { private readonly IRepository rep = rep; /// /// 导入灵工信息 /// /// /// /// public async Task Handle(ImportEnterpriseEmployeesCommand request, CancellationToken cancellationToken) { var result = new ImportEnterpriseEmployeesCommandResult(); var models = await request.ExcelUrl.ImportExcelFromOSS(); foreach (var model in models) { var error = new ImportEnterpriseEmployeesCommandResultError(); if (model.ContactPhoneNumber.IsNull()) { error.ErrorMessage += "请填写手机号"; } else if (!Regex.IsMatch(model.ContactPhoneNumber, @"^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$")) { error.ErrorMessage += "手机号格式不正确"; } } return result; } /// /// 编辑灵工信息 /// /// /// /// public Task Handle(EditEnterpriseEmployeeCommand request, CancellationToken cancellationToken) { return request.SaveData( null, null, (entity) => { if (request.Id.HasValue && entity.UserId.HasValue) { throw Oops.Oh(EnumErrorCodeType.s510, "该灵工已报名无法修改信息"); } request.Adapt(entity); }, cancellationToken); } } }