12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using Abp.Extensions;
- using DataTransmission.Enum;
- using Mapster;
- 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 SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml.Linq;
- namespace SnapshotWinFormsApp.Application;
- [Description("导入用户信息")]
- public class SnapshotUserInfoApplication : ImportApplicationBase<WeChatUserEntity, Citizen, int>, IImportApplication
- {
- private readonly ITargetRepository<ThirdAccount> _thirdAccountRepo;
- private readonly ITargetRepository<Citizen> _userRepo;
- public SnapshotUserInfoApplication(CreateInstanceInDto inDto) : base(inDto)
- {
- _thirdAccountRepo = new TargetRepository<ThirdAccount>(inDto);
- _userRepo = new TargetRepository<Citizen>(inDto);
- }
- public override ISugarQueryable<WeChatUserEntity> GetSourceList()
- {
- return _sourceRepo.Queryable()
- .Where(m => m.WUR_UserType == "ssp");
- }
- public override async Task<bool> HasOldDataAsync(string tableName, WeChatUserEntity item, CancellationToken token)
- {
- var userId = await _userRepo.Queryable()
- .Where(m => m.PhoneNumber == item.WUR_PhoneNum)
- .Select(m => m.Id)
- .FirstAsync(token);
- return userId.IsNullOrEmpty();
- }
- public override async Task InsertAfterAsync(Action<string> log, WeChatUserEntity item, Citizen target, CancellationToken token)
- {
- var thirdId = await _thirdAccountRepo.Queryable()
- .Where(m => m.OpenId == item.WUR_Openid && m.UnIonId == item.WUR_unionid)
- .Select(m => m.Id)
- .FirstAsync(token);
- if (thirdId.IsNullOrEmpty())
- {
- var thirdAccount = item.Adapt<ThirdAccount>();
- thirdAccount.ExternalId = target.Id;
- thirdAccount.Id = await _thirdAccountRepo.InsertAsync(thirdAccount, token);
- log($"插入第三方账号信息: {thirdAccount.Id}, {thirdAccount.OpenId}, {thirdAccount.UserName}, {thirdAccount.PhoneNumber}, {thirdAccount.ExternalId}");
- }
- }
- }
|