|
@@ -159,7 +159,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
try
|
|
|
{
|
|
|
Logger.WriteLineInfo($" Update Organization short code Migrate Starting");
|
|
|
-
|
|
|
+
|
|
|
var request = new ModifyUserBindDeviceOrganizationRequest
|
|
|
{
|
|
|
OrganizationCodes = records,
|
|
@@ -846,7 +846,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var filter = builder.Where(x => ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
var printerDrives = new List<PrinterDrives>();
|
|
|
var tempPrinterDrives = _adminDBRepository.GetPrintRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
printerDrives = await FilterData<PrinterDrives>(tempPrinterDrives, "PrinterDrivesData");
|
|
|
Logger.WriteLineInfo($"Print totalCount:{printerDrives.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -934,7 +934,6 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -955,7 +954,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var builder = Builders<Patch>.Filter;
|
|
|
var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
var tempPatchInfos = _adminDBRepository.GetPatches(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
patchInfos = await FilterData<Patch>(tempPatchInfos, "PatchData");
|
|
|
}
|
|
|
|
|
@@ -986,6 +985,56 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public async Task MigratePackageInfos(SyncDBEnum syncType)
|
|
|
+ {
|
|
|
+ var packageInfos = new List<Package>();
|
|
|
+ if (syncType == SyncDBEnum.Migrate)
|
|
|
+ {
|
|
|
+ var builder = Builders<Package>.Filter;
|
|
|
+ var filter = builder.Where(x => !x.IsDeleted);
|
|
|
+ packageInfos = _adminDBRepository.GetPackages(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var startTime = _migrateRecord.StartTime.AddMinutes(-CommonConfigManager.MigrateRuleInfo.StartTimeDiffMintues);
|
|
|
+ var endTime = _migrateRecord.EndTime;
|
|
|
+ var builder = Builders<Package>.Filter;
|
|
|
+ var filter = builder.Where(x => !x.IsDeleted && (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
+ var tempPackageInfos = _adminDBRepository.GetPackages(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
+
|
|
|
+ packageInfos = await FilterData(tempPackageInfos, "PackageData");
|
|
|
+ }
|
|
|
+
|
|
|
+ Logger.WriteLineInfo($"package totalCount:{packageInfos.Count}");
|
|
|
+ var pageIndex = 0;
|
|
|
+ var pageSize = 50;
|
|
|
+ var packageCount = packageInfos.Count;
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ var pendingRecords = packageInfos.Skip(pageIndex * pageSize).Take(pageSize)?.ToList() ?? new List<Package>();
|
|
|
+ var pendingCount = pendingRecords.Count;
|
|
|
+ if (pendingCount > 0)
|
|
|
+ {
|
|
|
+ await SendPackageInfos(packageInfos);
|
|
|
+ pageIndex++;
|
|
|
+ }
|
|
|
+ if (pageIndex * pageSize >= packageCount)
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"package record processing: 100%");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var tempValue = packageCount == 0 ? 1 : packageCount;
|
|
|
+ Logger.WriteLineInfo($"package record processing: {(pageIndex * pageSize * 100 / tempValue)}%");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -1045,6 +1094,52 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private async Task SendPackageInfos(IList<Package> packages)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Logger.WriteLineInfo($"Package Infos Migrate Starting");
|
|
|
+ foreach (var package in packages)
|
|
|
+ {
|
|
|
+ var uniquedCode = package.FileName;
|
|
|
+ if (package.FileName.Contains("_"))
|
|
|
+ {
|
|
|
+ var parts = package.FileName.Split("_");
|
|
|
+ uniquedCode = string.Join("_", parts, 0, parts.Length - 1);
|
|
|
+ }
|
|
|
+ var fileUrl = package.FileToken;
|
|
|
+ var prefix = "1!U$";
|
|
|
+ if (!string.IsNullOrWhiteSpace(fileUrl) && fileUrl.Contains(prefix))
|
|
|
+ {
|
|
|
+ fileUrl = fileUrl.Replace(prefix, "");
|
|
|
+ }
|
|
|
+ await _jsonRpcProxy.User.AddOrUpdatePackageAsync(new AddOrUpdatePackageRequest
|
|
|
+ {
|
|
|
+ Token = DefaultToken,
|
|
|
+ PackageInfo = new WingInterfaceLibrary.DTO.Package.PackagesDTO
|
|
|
+ {
|
|
|
+ Code = package.Id,
|
|
|
+ UniquedCode = uniquedCode,
|
|
|
+ Name = package.FileName,
|
|
|
+ Description = package.Description,
|
|
|
+ Version = package.Version,
|
|
|
+ FileUrl = fileUrl,
|
|
|
+ FileSize = package.FileSize,
|
|
|
+ UploadUserCode = package.CreateUser?.Id,
|
|
|
+ CreateTime = package.CreateTime,
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"Send Package Infos Error, ex:{ex}");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
public async Task DiffOrg()
|
|
|
{
|
|
@@ -1094,7 +1189,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
Logger.WriteLineInfo($"Users Infos Migrate Successfully");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -1210,7 +1305,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
|
|
|
var reportTemplateRecords = new List<ReportTemplates>();
|
|
|
var tempReportTemplateRecords = _reportTemplateDBRepository.GetReportTemplateRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
reportTemplateRecords = await FilterData<ReportTemplates>(tempReportTemplateRecords, "ReportTemplateData");
|
|
|
Logger.WriteLineInfo($"ReportTemplates totalCount:{reportTemplateRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -1384,7 +1479,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var filter = builder.Where(x => x.Name.ToLower() != "admin" && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
var adminRecords = new List<Admins>();
|
|
|
var tempAdminRecords = _adminDBRepository.GetAdminsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
adminRecords = await FilterData<Admins>(tempAdminRecords, "AdminData");
|
|
|
Logger.WriteLineInfo($"admin totalCount:{adminRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -1489,7 +1584,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.Name) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
var organizationRecords = new List<Organizations>();
|
|
|
var tempOrganizationRecords = _organizationsDBRepository.GetOrganizationsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
organizationRecords = await FilterData<Organizations>(tempOrganizationRecords, "OrganizationData");
|
|
|
Logger.WriteLineInfo($"Organizations totalCount:{organizationRecords.Count}");
|
|
|
var request = new GetRegionsRequest
|
|
@@ -1701,7 +1796,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var filter = builder.Where(x => (x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime));
|
|
|
var posterConfigsRecords = new List<PosterConfigs>();
|
|
|
var tempPosterConfigsRecords = _posterConfigsDBRepository.GetPostConfigsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
posterConfigsRecords = await FilterData<PosterConfigs>(tempPosterConfigsRecords, "ReportPosterData");
|
|
|
Logger.WriteLineInfo($"posterConfigs totalCount:{posterConfigsRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -1800,9 +1895,9 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var filter = builder.Where(x => !string.IsNullOrEmpty(x.UniquedId) && ((x.CreateTime > startTime && x.CreateTime <= endTime) || (x.UpdateTime > startTime && x.UpdateTime <= endTime)));
|
|
|
var terminalsRecords = new List<Terminals>();
|
|
|
var tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
-
|
|
|
+
|
|
|
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode not null totalCount:{terminalsRecords.Count}");
|
|
|
var pushList = _terminalsDBRepository.GetAllTerminalPushStream();
|
|
@@ -1833,7 +1928,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
terminalsRecords = new List<Terminals>();
|
|
|
tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
|
|
|
-
|
|
|
+
|
|
|
terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode is null totalCount:{terminalsRecords.Count}");
|
|
|
terminalsCount = terminalsRecords.Count;
|
|
@@ -1865,7 +1960,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
filter = builder.Where(x => termainalCodes.Contains(x.Id));
|
|
|
terminalsRecords = new List<Terminals>();
|
|
|
tempTerminalsRecords = _terminalsDBRepository.GetTerminalsRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
terminalsRecords = await FilterData<Terminals>(tempTerminalsRecords, "ReportTerminalData");
|
|
|
|
|
|
Logger.WriteLineInfo($"terminalInfos shortCode is null totalCount:{terminalsRecords.Count}");
|
|
@@ -2011,7 +2106,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
var userRecords = new List<Users>();
|
|
|
var tempUserRecords = _usersDBRepository.GetUserRecords(filter).OrderByDescending(x => x.CreateTime).ThenBy(x => x.Id).ToList();
|
|
|
|
|
|
-
|
|
|
+
|
|
|
userRecords = await FilterData<Users>(tempUserRecords, "UserData");
|
|
|
Logger.WriteLineInfo($"user totalCount:{userRecords.Count}");
|
|
|
var pageIndex = 0;
|
|
@@ -2392,7 +2487,7 @@ namespace Flyinsono.DBCopy.Tool.Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- foreach (var org in dbOrgIds)
|
|
|
+ foreach (var org in dbOrgIds)
|
|
|
{
|
|
|
if (orgIds.Contains(org))
|
|
|
{
|