public async Task <ResultBase <List <FuncModel> > > GetMerchantMenus(int userId) { var data = new List <FuncModel>(); data.Add(new FuncModel() { code = "home", name = "首页", items = new List <FuncItemResponse>() { new FuncItemResponse() { name = "salesman", title = "业务员管理", parent = "home", }, new FuncItemResponse() { name = "shops", title = "店铺管理", parent = "home", }, new FuncItemResponse() { name = "waybill", title = "运单管理", parent = "home", }, } }); return(ResultBase <List <FuncModel> > .Sucess(data)); }
/// <summary> /// 分页获取所有业务员数据 /// </summary> /// <param name="page"></param> /// <param name="size"></param> /// <param name="conditions"></param> /// <returns></returns> public async Task <ResultBase <PagedData <SaleManModel> > > GetPagedSalemans(int page, int size, Dictionary <string, string> conditions) { var data = await salemanManager.GetPagedSalemans(page, size, conditions); var result = new PagedData <SaleManModel>(); if (data != null && data.Items?.Count() > 0) { result.PageCount = data.PageCount; result.TotalCount = data.TotalCount; List <SaleManModel> models = new List <SaleManModel>(); foreach (var item in data.Items) { var model = item.Convert <SaleManModel>(); model.CreatedAt = ConvertHelper.ConvertDtToString(item.CreatedAt); //获取所属店铺 model.ShopsCount = await salemanManager.FindShopsCount(item.Id); models.Add(model); } result.Items = models; } return(ResultBase <PagedData <SaleManModel> > .Sucess(result)); }
/// <summary> /// 获取业务员所有运单导出数据 /// </summary> /// <param name="manager"></param> /// <returns></returns> public ResultBase <MemoryStream> ExportSalemanAllWaybills(Dictionary <string, string> conditions) { List <WaybillExportWithPriceModel> data = salemanManager.GetSalemanAllWaybills(conditions).GetAwaiter().GetResult(); MemoryStream stream = new NPOIMemoryStream(false); ExcelHelper.WriteExcel(stream, "业务员运单", data); return(ResultBase <MemoryStream> .Sucess(stream)); }
/// <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="manager"></param> /// <returns></returns> public ResultBase <MemoryStream> ExportSalemanAllShops(int salemanId, out string salemanName) { salemanName = ""; List <ExportShopsModel> data = salemanManager.GetSalemanAllShops(salemanId).GetAwaiter().GetResult(); if (data != null && data.Count > 0) { salemanName = data.First().SalemanName; } MemoryStream stream = new NPOIMemoryStream(false); ExcelHelper.WriteExcel(stream, "业务员店铺", data); return(ResultBase <MemoryStream> .Sucess(stream)); }
/// <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="page"></param> /// <param name="size"></param> /// <param name="conditions"></param> /// <returns></returns> public async Task <ResultBase <PagedData <ShopsModel> > > GetPagedShops(int page, int size, Dictionary <string, string> conditions) { var data = await shopsManager.GetPagedShops(page, size, conditions); return(ResultBase <PagedData <ShopsModel> > .Sucess(data)); }
/// <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)); } } }