fix 优化本地离线和在线消费处理

This commit is contained in:
2024-06-27 10:32:23 +08:00
parent a405af0435
commit cec075bae9
10 changed files with 282 additions and 39 deletions

View File

@@ -28,6 +28,31 @@ public class DataDownloadService : IDataDownloadService
_hostName = configuration.GetSection("HostName").Value;
}
public async Task InitAsync(string factory)
{
await TruncateAsync();
await DownloadAsync<LocalDepartmentEntity>(factory);
await DownloadAsync<LocalDeviceEntity>(factory);
await DownloadAsync<LocalDeviceRegistryEntity>(factory);
await DownloadAsync<LocalBusinessPlaceEntity>(factory);
await DownloadAsync<LocalBusinessShiftEntity>(factory);
await DownloadAsync<LocalBusinessPlaceShiftRelationshipEntity>(factory);
await DownloadAsync<LocalBusinessShiftMealRelationshipEntity>(factory);
if (!await _dbContext.Queryable<LocalGainfoEntity>().AnyAsync())
{
await DownloadAsync<LocalGainfoEntity>(factory);
}
if (!await _dbContext.Queryable<LocalGainfoMealEntity>().AnyAsync())
{
await DownloadAsync<LocalGainfoMealEntity>(factory);
}
}
public async Task DownloadAsync<T>(string factory) where T : class, new()
{
var token = await AuthAsync();
@@ -37,7 +62,7 @@ public class DataDownloadService : IDataDownloadService
var url = $"https://{_hostName}/api/common/SysData/download";
#if DEBUG
url = $"http://localhost:5001/api/SysData/download";
url = "http://localhost:5001/api/SysData/download";
#endif
var requestUrl = QueryHelpers.AddQueryString(url, new Dictionary<string, string>
@@ -62,8 +87,29 @@ public class DataDownloadService : IDataDownloadService
await _dbContext.Client.Deleteable<LocalBusinessShiftEntity>().ExecuteCommandAsync();
await _dbContext.Client.Deleteable<LocalBusinessPlaceShiftRelationshipEntity>().ExecuteCommandAsync();
await _dbContext.Client.Deleteable<LocalBusinessShiftMealRelationshipEntity>().ExecuteCommandAsync();
await _dbContext.Client.Deleteable<LocalGainfoEntity>().ExecuteCommandAsync();
await _dbContext.Client.Deleteable<LocalGainfoMealEntity>().ExecuteCommandAsync();
//await _dbContext.Client.Deleteable<LocalGainfoEntity>().ExecuteCommandAsync();
//await _dbContext.Client.Deleteable<LocalGainfoMealEntity>().ExecuteCommandAsync();
}
/// <inheritdoc />
public async Task DownloadGainfosAsync(string factory)
{
await _dbContext.Client.Ado.BeginTranAsync();
try
{
await _dbContext.Client.Deleteable<LocalGainfoEntity>().ExecuteCommandAsync();
await _dbContext.Client.Deleteable<LocalGainfoMealEntity>().ExecuteCommandAsync();
await DownloadAsync<LocalGainfoEntity>(factory);
await DownloadAsync<LocalGainfoMealEntity>(factory);
await _dbContext.Client.Ado.CommitTranAsync();
}
catch (Exception)
{
await _dbContext.Client.Ado.RollbackTranAsync();
}
}
private async Task<string> AuthAsync()