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);
}
}
}