|
@@ -153,9 +153,13 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|
|
var syncLevel = await _sysConfigService.GetConfigValue<int>(ConfigConst.SysRegionSyncLevel);
|
|
var syncLevel = await _sysConfigService.GetConfigValue<int>(ConfigConst.SysRegionSyncLevel);
|
|
|
if (syncLevel is < 1 or > 5) syncLevel = 3;//默认区县级
|
|
if (syncLevel is < 1 or > 5) syncLevel = 3;//默认区县级
|
|
|
|
|
|
|
|
- await _sysRegionRep.DeleteAsync(u => u.Id > 0);
|
|
|
|
|
-
|
|
|
|
|
- await SyncByMap(syncLevel);
|
|
|
|
|
|
|
+ await _sysRegionRep.AsTenant().UseTranAsync(async () => {
|
|
|
|
|
+ await _sysRegionRep.DeleteAsync(u => u.Id > 0);
|
|
|
|
|
+ await SyncByMap(syncLevel);
|
|
|
|
|
+ }, err => {
|
|
|
|
|
+ throw Oops.Oh(ErrorCodeEnum.R2005);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
|
|
|
// var context = BrowsingContext.New(AngleSharp.Configuration.Default.WithDefaultLoader());
|
|
// var context = BrowsingContext.New(AngleSharp.Configuration.Default.WithDefaultLoader());
|
|
|
// var dom = await context.OpenAsync(_url);
|
|
// var dom = await context.OpenAsync(_url);
|
|
@@ -345,8 +349,24 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|
|
list.Add(county);
|
|
list.Add(county);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
// 按省份同步快速写入提升同步效率,全部一次性写入容易出现从统计局获取数据失败
|
|
// 按省份同步快速写入提升同步效率,全部一次性写入容易出现从统计局获取数据失败
|
|
|
- await _sysRegionRep.Context.Fastest<SysRegion>().BulkCopyAsync(list);
|
|
|
|
|
|
|
+ // 仅当数据量大于1000或非Oracle数据库时采用大数据量写入方式(SqlSugar官方已说明,数据量小于1000时,其性能不如普通插入, oracle此方法不支持事务)
|
|
|
|
|
+ if (list.Count > 1000 || _sysRegionRep.Context.CurrentConnectionConfig.DbType != SqlSugar.DbType.Oracle)
|
|
|
|
|
+ {
|
|
|
|
|
+ // 执行大数据量写入
|
|
|
|
|
+ var t = _sysRegionRep.Context.Fastest<SysRegion>().BulkCopyAsync(list);
|
|
|
|
|
+
|
|
|
|
|
+ // 若写入失败则尝试普通插入方式
|
|
|
|
|
+ if (t.Exception != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ await _sysRegionRep.InsertRangeAsync(list);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ await _sysRegionRep.InsertRangeAsync(list);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 获取选择数据
|
|
// 获取选择数据
|