/// <summary> /// 导入店铺 /// </summary> /// <param name="request"></param> /// <param name="files"></param> /// <param name="merchantId"></param> /// <returns></returns> public async Task <ResultBase> ImportShops(HttpFileCollectionBase files, int manager) { if (files == null || files.Count == 0) { return(ResultBase <UploadExcelCheckResultModel> .Fail("请上传文件")); } var file = files[0]; if (file.ContentLength == 0) { return(ResultBase <UploadExcelCheckResultModel> .Fail("文件内容为空")); } string fileName = file.FileName;//取得文件名字 var fileExt = fileName.Substring(fileName.LastIndexOf('.') + 1); string[] msExcelFiles = { "xlsx", "xls" }; if (!msExcelFiles.Any(m => m == fileExt)) { return(ResultBase <UploadExcelCheckResultModel> .Fail("只支持EXCEL文件")); } var filePath = $"/Upload/Shops/"; var saveFilePath = HttpContext.Current.Server.MapPath($"~{filePath}"); if (!Directory.Exists(saveFilePath)) { Directory.CreateDirectory(saveFilePath); } //改名称 var newFileName = ConvertHelper.ConvertDtToUnixTimeSpan(DateTime.Now) + "." + fileExt; string path = saveFilePath + newFileName;//获取存储的目标地址 file.SaveAs(path); //读取excel var data = ExcelHelper.ReadExcelNoIndex <ExportShopsModel>(path, "店铺上传"); if (data == null || data.Count == 0) { return(ResultBase.Fail("没有有效数据")); } mLogHelper.Info($"开始执行导入快递单号,总量:{data.Count}"); //分组批量插入数据 var groups = data.GroupBy(m => m.SalemanName); List <int> taskIds = new List <int>(); foreach (var group in groups) { var saleman = await salemanManager.FindByName(group.Key); if (saleman == null) { continue; } var items = group.ToList(); List <ShopEntity> entities = new List <ShopEntity>(); var total = 0; foreach (var item in items) { if (string.IsNullOrEmpty(item.Name) || string.IsNullOrEmpty(item.SalemanName)) { continue; } var entity = item.Convert <ShopEntity>(); entity.SalemanId = saleman.Id; entity.CreatedAt = DateTime.Now; entity.CreatedBy = manager; entities.Add(entity); total += 1; } var trans = DapperDataAccess.BeginTransaction(IsolationLevel.ReadCommitted); try { await shopsManager.InsertBatchAsync(entities, trans); DapperDataAccess.Commit(trans); } catch (ShowMessageException ex) { DapperDataAccess.Rollback(trans); return(ResultBase.Fail(ex.Message)); } catch (Exception ex) { DapperDataAccess.Rollback(trans); return(ResultBase.Fail(ex.Message)); } } mLogHelper.Info($"导入执行完毕"); return(ResultBase.Sucess()); }