|
@@ -51,12 +51,14 @@ public abstract class SnapshotApplicationBase
|
|
|
private readonly IRepository<OrderSnapshot> _orderSnapshotRepository;
|
|
|
private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
private readonly ISystemAreaDomainService _systemAreaDomainService;
|
|
|
+ private readonly IRepository<SystemArea> _systemAreaRepository;
|
|
|
private readonly IFileRepository _fileRepository;
|
|
|
private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
|
|
|
private readonly ISnapshotOrderPublishRepository _snapshotOrderPublishRepository;
|
|
|
private readonly IRepository<WorkflowTrace> _workflowTraceRepository;
|
|
|
+ private readonly IPractitionerRepository _practitionerRepository;
|
|
|
|
|
|
- public SnapshotApplicationBase(IThirdIdentiyService thirdLoginService, IRepository<Industry> industryRepository, ISnapshotBulletinRepository bulletinRepository, ISessionContext sessionContext, IRepository<RedPackRecord> redPackRecordRepository, IRepository<Order> orderRepository, IThirdAccountRepository thirdAccountRepository, IRepository<OrderSnapshot> orderSnapshotRepository, ISystemSettingCacheManager systemSettingCacheManager, ISystemAreaDomainService systemAreaDomainService, IFileRepository fileRepository, ISystemDicDataCacheManager systemDicDataCacheManager, ISnapshotOrderPublishRepository snapshotOrderPublishRepository, IRepository<WorkflowTrace> workflowTraceRepository)
|
|
|
+ public SnapshotApplicationBase(IThirdIdentiyService thirdLoginService, IRepository<Industry> industryRepository, ISnapshotBulletinRepository bulletinRepository, ISessionContext sessionContext, IRepository<RedPackRecord> redPackRecordRepository, IRepository<Order> orderRepository, IThirdAccountRepository thirdAccountRepository, IRepository<OrderSnapshot> orderSnapshotRepository, ISystemSettingCacheManager systemSettingCacheManager, ISystemAreaDomainService systemAreaDomainService, IFileRepository fileRepository, ISystemDicDataCacheManager systemDicDataCacheManager, ISnapshotOrderPublishRepository snapshotOrderPublishRepository, IRepository<WorkflowTrace> workflowTraceRepository, IPractitionerRepository practitionerRepository, IRepository<SystemArea> systemAreaRepository)
|
|
|
{
|
|
|
_thirdLoginService = thirdLoginService;
|
|
|
_industryRepository = industryRepository;
|
|
@@ -72,6 +74,8 @@ public abstract class SnapshotApplicationBase
|
|
|
_systemDicDataCacheManager = systemDicDataCacheManager;
|
|
|
_snapshotOrderPublishRepository = snapshotOrderPublishRepository;
|
|
|
_workflowTraceRepository = workflowTraceRepository;
|
|
|
+ _practitionerRepository = practitionerRepository;
|
|
|
+ _systemAreaRepository = systemAreaRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -451,4 +455,54 @@ public abstract class SnapshotApplicationBase
|
|
|
await _bulletinRepository.UpdateAsync(bulletin);
|
|
|
}
|
|
|
|
|
|
+ #region 从业人员
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加从业人员
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtos"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task AddPractitionerAsync(IList<AddPractitionerInDto> dtos)
|
|
|
+ {
|
|
|
+ foreach (var item in dtos)
|
|
|
+ {
|
|
|
+ var entity = item.Adapt<Practitioner>();
|
|
|
+ switch (item.Gender.Trim())
|
|
|
+ {
|
|
|
+ case "男":
|
|
|
+ entity.Gender = EGender.Male;
|
|
|
+ break;
|
|
|
+ case "女":
|
|
|
+ entity.Gender = EGender.Female;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ entity.Gender = EGender.Unknown;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var area = await _systemAreaRepository.Queryable()
|
|
|
+ .Where(m => m.AreaName == item.AreaName)
|
|
|
+ .FirstAsync();
|
|
|
+ entity.SystemAreaId = area.Id;
|
|
|
+ entity.SystemAreaName = area.AreaName;
|
|
|
+ await _practitionerRepository.AddAsync(entity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取从业人员
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<IList<PractitionerItemOutDto>> GetPractitionerItemsAsync(PractitionerItemInDto dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ var items = await _practitionerRepository.Queryable()
|
|
|
+ .Where(m => m.SystemAreaId == dto.AreaId)
|
|
|
+ .OrderBy("RANDOM()")
|
|
|
+ .Select<PractitionerItemOutDto>()
|
|
|
+ .Take(dto.Count)
|
|
|
+ .ToListAsync(cancellationToken);
|
|
|
+ return items;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|