/// <summary> /// 获取 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <ResultBase <SaleManModel> > GetSalemanById(int id) { var data = await salemanManager.FindByIdAsync <SalemanEntity>(id); if (data == null) { return(ResultBase <SaleManModel> .Fail(Enum_ResultBaseCode.DataNotFoundError)); } return(ResultBase <SaleManModel> .Sucess(data.Convert <SaleManModel>())); }
/// <summary> /// 逻辑删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> public async Task <ResultBase> Delete(string ids) { if (string.IsNullOrEmpty(ids)) { return(ResultBase.Fail("参数缺失")); } var idsString = ids.Split(','); var idsList = idsString.Select(id => Convert.ToInt32(id)).ToList(); await salemanManager.LogicDeleteAsync <SalemanEntity>(idsList); return(ResultBase.Sucess()); }
/// <summary> /// 获取店铺信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <ResultBase <ShopsModel> > GetShopInfoById(int id) { var shops = shopsManager.FindById <ShopEntity>(id); if (shops == null) { return(ResultBase <ShopsModel> .Fail(Enum_ResultBaseCode.DataNotFoundError)); } var saleman = salemanManager.FindById <SalemanEntity>(shops.SalemanId); if (saleman == null) { return(ResultBase <ShopsModel> .Fail("业务员数据错误")); } var result = shops.Convert <ShopsModel>(); result.SalemanName = saleman.Name; return(ResultBase <ShopsModel> .Sucess(result)); }
/// <summary> /// 保存 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <ResultBase> Save(SaveSalemanModel request) { if (request == null) { return(ResultBase.Fail(Enum_ResultBaseCode.ParamError)); } else if (string.IsNullOrEmpty(request.Name)) { return(ResultBase.Fail(Enum_ResultBaseCode.ParamLackError)); } if (request.Id == 0) { SalemanEntity entity = request.Convert <SalemanEntity>(); entity.CreatedAt = DateTime.Now; entity.CreatedBy = 0; await salemanManager.InsertAsync(entity); } else { var entity = salemanManager.FindById <SalemanEntity>(request.Id); if (entity == null) { return(ResultBase.Fail(Enum_ResultBaseCode.DataNotFoundError)); } entity.Name = request.Name; entity.Mobile = request.Mobile; entity.SettlementPrice = request.SettlementPrice; entity.UpdatedAt = DateTime.Now; entity.UpdatedBy = 0; await salemanManager.UpdateAsync(entity); } return(ResultBase.Sucess()); }
/// <summary> /// 保存 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <ResultBase> Save(SaveShopsModel request) { if (request == null) { return(ResultBase.Fail(Enum_ResultBaseCode.ParamError)); } else if (string.IsNullOrEmpty(request.Name)) { return(ResultBase.Fail(Enum_ResultBaseCode.ParamLackError)); } else if (string.IsNullOrEmpty(request.SalemanName)) { return(ResultBase.Fail(Enum_ResultBaseCode.ParamLackError)); } //校验业务员 var saleman = await salemanManager.FindByName(request.SalemanName); if (saleman == null) { return(ResultBase.Fail("业务员不存在,请检查")); } //判断有没有同名的店铺 var shop = await shopsManager.FindByNameWithDeleted(request.Name); if (shop != null) { if (shop.IsDelete) { shop.IsDelete = false; shop.DeletedBy = 0; shop.DeletedAt = null; shop.UpdatedAt = DateTime.Now; shop.UpdatedBy = 0; await shopsManager.UpdateAsync(shop); } } else { if (request.Id == 0) { ShopEntity entity = request.Convert <ShopEntity>(); entity.SalemanId = saleman.Id; entity.CreatedAt = DateTime.Now; entity.CreatedBy = 0; await shopsManager.InsertAsync(entity); } else { var entity = shopsManager.FindById <ShopEntity>(request.Id); if (entity == null) { return(ResultBase.Fail(Enum_ResultBaseCode.DataNotFoundError)); } entity.Name = request.Name; entity.Contact = request.Contact; entity.Mobile = request.Mobile; entity.SalemanId = saleman.Id; entity.UpdatedAt = DateTime.Now; entity.UpdatedBy = 0; await salemanManager.UpdateAsync(entity); } } return(ResultBase.Sucess()); }
/// <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()); }
/// <summary> /// 导入店铺 /// </summary> /// <param name="request"></param> /// <param name="files"></param> /// <param name="merchantId"></param> /// <returns></returns> public async Task <ResultBase> ImportWaybills(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/Waybill/"; var saveFilePath = HttpContext.Current.Server.MapPath($"~{filePath}"); if (!Directory.Exists(saveFilePath)) { Directory.CreateDirectory(saveFilePath); } string path = saveFilePath + file.FileName;//获取存储的目标地址 file.SaveAs(path); try { //读取excel var data = ExcelHelper.ReadExcelNoIndex <WaybillExportModel>(path, "Sheet1"); if (data == null || data.Count == 0) { return(ResultBase.Fail("没有有效数据")); } else if (data.Count > 60000) { return(ResultBase.Fail("excel表格行数过大,请分批导入")); } mLogHelper.Info($"开始执行导入快递单号,总量:{data.Count}"); //检查数据 var index = 1; foreach (var item in data) { index++; if (string.IsNullOrEmpty(item.ShopName)) { return(ResultBase.Fail($"第{index}行,运单号{item.Code}, 店铺名为空")); } //查找店铺 var shop = await shopsManager.FindByName(item.ShopName); if (shop == null) { return(ResultBase.Fail($"第{index}行,运单号{item.Code}, 店铺{item.ShopName}不存在,请先添加店铺")); } else if (shop.SalemanId == 0) { return(ResultBase.Fail($"第{index}行,运单号{item.Code},店铺{item.ShopName}业务员数据错误")); } } var successedCount = 0; var exitsCount = 0; //插入数据 List <int> taskIds = new List <int>(); foreach (var item in data) { //查找店铺 var shop = await shopsManager.FindByName(item.ShopName); //相同运单号跳过 var waybill = await waybillManager.FindByCode(item.Code); if (waybill != null && !string.IsNullOrEmpty(waybill.Code)) { exitsCount++; continue; } WaybillEntity waybillEntity = new WaybillEntity() { Code = item.Code, ShopId = shop.Id, SalemanId = shop.SalemanId, Time = item.Time, Province = item.Province, City = item.City, Weight = item.Weight, CreatedAt = DateTime.Now, CreatedBy = manager, }; await waybillManager.InsertAsync(waybillEntity); successedCount++; } mLogHelper.Info($"导入执行完毕"); return(ResultBase.Sucess($"总数居:{data.Count},成功执行:{successedCount},存在相同运单数:{exitsCount}")); } catch (Exception ex) { if (ex.Message.IndexOf("for key 'uk_waybillinfo_Code'") > -1) { return(ResultBase.Fail($"存在相同运单号,{ex.Message}")); } else { return(ResultBase.Fail(ex.Message)); } } }