using DataTransmission.Enum; using SnapshotWinFormsApp.Application.Dtos; using SnapshotWinFormsApp.Application.Interfaces; using SnapshotWinFormsApp.Entities.NewHotline; using SnapshotWinFormsApp.Entities.OldHotline; using SnapshotWinFormsApp.Repository; using SnapshotWinFormsApp.Repository.Enum; using SnapshotWinFormsApp.Repository.Interfaces; using SnapshotWinFormsApp.Tools; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SnapshotWinFormsApp.Application; [Description("导入网格员")] public class GriderApplication : ImportApplicationBase, IImportApplication { private readonly IBaseRepository _userRepo; public GriderApplication(CreateInstanceInDto inDto) : base(inDto) { _userRepo = new BaseRepository(inDto); } public override ISugarQueryable GetSourceList() { return _sourceRepo.Queryable() .Where(m => m.MemberMobile != null && m.MemberName != null) .GroupBy(m => new { m.MemberName, m.MemberMobile }); } public override async Task HasOldDataAsync(string tableName, Flow03_PushContent item, CancellationToken token) { var userId = await _userRepo.Queryable() .Where(m => m.PhoneNumber == item.MemberMobile) .Select(m => m.Id) .FirstAsync(token); return userId.IsNullOrEmpty(); } public override async Task GetTargetAsync(Flow03_PushContent source, CancellationToken token) { var userInfo = new Citizen { PhoneNumber = source.MemberMobile.Replace("\t", ""), Name = source.MemberName.Replace("\t", ""), CitizenType = EReadPackUserType.Guider, IdentityType = EIdentityType.Citizen }; return await Task.FromResult(userInfo); } }