From 60cfd15db42bb816846072d027121d91ffd013b1 Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期四, 25 四月 2024 14:39:35 +0800 Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/baifenbaishop --- CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 260 insertions(+), 1 deletions(-) diff --git a/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs b/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs index ff8fe3c..e4aa7f1 100644 --- a/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs +++ b/CoreCms.Net.Web.Admin/Controllers/Com/ToolsController.cs @@ -37,8 +37,12 @@ using COSXML.Auth; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; +using NPOI.HSSF.UserModel; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; using SKIT.FlurlHttpClient.Wechat.Api; using SKIT.FlurlHttpClient.Wechat.Api.Models; using SqlSugar; @@ -89,6 +93,7 @@ private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory; private readonly SemaphoreSlim _semaphore; + private readonly ICoreCmsPlanOrderServices _coreCmsPlanOrderServices; /// <summary> /// 鏋勯�犲嚱鏁� @@ -111,7 +116,8 @@ , ISysUserRoleServices sysUserRoleServices , ISysOrganizationServices sysOrganizationServices, ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, ISysRoleMenuServices sysRoleMenuServices - , IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices, ICoreCmsGoodsCategoryServices goodsCategoryServices) + , IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices, ICoreCmsGoodsCategoryServices goodsCategoryServices + , ICoreCmsPlanOrderServices coreCmsPlanOrderServices ) { _user = user; _webHostEnvironment = webHostEnvironment; @@ -148,6 +154,7 @@ _toolsServices = toolsServices; _reportsServices = reportsServices; _goodsCategoryServices = goodsCategoryServices; + _coreCmsPlanOrderServices = coreCmsPlanOrderServices; //鏈�澶氬厑璁�2涓嚎绋嬪悓鏃惰闂�; _semaphore = new SemaphoreSlim(2); @@ -363,6 +370,258 @@ //閫氱敤鎿嶄綔========================================================================= + #region 璁″垝璁㈠崟涓婁紶鎺ュ彛==================================================== + + /// <summary> + /// 璁″垝璁㈠崟涓婁紶鎺ュ彛 + /// </summary> + /// <returns></returns> + [Authorize] + [HttpPost] + public async Task<AdminUiCallBack> UploadFilesXls() + { + + var jm = new AdminUiCallBack(); + await _semaphore.WaitAsync(); + try + { + var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions(); + + //鍒濆鍖栦笂浼犲弬鏁� + var maxSize = 1024 * 1024 * filesStorageOptions.MaxSize; //涓婁紶澶у皬5M + + var file = Request.Form.Files["file"]; + if (file == null) + { + jm.msg = "璇烽�夋嫨鏂囦欢"; + return jm; + } + + var fileName = file.FileName; + var fileExt = Path.GetExtension(fileName).ToLowerInvariant(); + + //妫�鏌ュぇ灏� + if (file.Length > maxSize) + { + jm.msg = "涓婁紶鏂囦欢澶у皬瓒呰繃闄愬埗锛屾渶澶у厑璁镐笂浼�" + filesStorageOptions.MaxSize + "M"; + return jm; + } + + //妫�鏌ユ枃浠舵墿灞曞悕 + if (string.IsNullOrEmpty(fileExt) || + Array.IndexOf(filesStorageOptions.FileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1) + { + jm.msg = "涓婁紶鏂囦欢鎵╁睍鍚嶆槸涓嶅厑璁哥殑鎵╁睍鍚�,璇蜂笂浼犲悗缂�鍚嶄负锛�" + filesStorageOptions.FileTypes; + return jm; + } + var lie = new List<JiHuaOrder>(); + using (var fileStream = file.OpenReadStream()) + { + + // 浣跨敤HSSFWorkbook鎵撳紑.xls鏍煎紡鐨勬枃浠� + IWorkbook workbook = new XSSFWorkbook(fileStream); + + // 鑾峰彇绗竴涓伐浣滆〃 + ISheet sheet = workbook.GetSheetAt(0); + + + + // 杩唬宸ヤ綔琛ㄤ腑鐨勬墍鏈夎 + for (int i = 1; i <= sheet.LastRowNum; i++) + { + var hang = new JiHuaOrder(); + IRow row = sheet.GetRow(i); + if (row == null) continue; // 璺宠繃绌鸿 + + ICell cell1 = row.GetCell(1); + if (cell1 == null) + { + jm.msg ="绗�" +(i+1) + "瀛︽牎涓嶈兘涓虹┖"; + return jm; + } + hang.shipAddress = getcellvalue(cell1); + + ICell cell2 = row.GetCell(2); + if (cell2 == null) + { + jm.msg = "绗�" + (i + 1) + "鑱旂郴浜轰笉鑳戒负绌�"; + return jm; + } + hang.shipName = getcellvalue(cell2); + + ICell cell3 = row.GetCell(3); + if (cell3 == null) + { + jm.msg = "绗�" + (i + 1) + "鑱旂郴鐢佃瘽涓嶈兘涓虹┖"; + return jm; + } + hang.shipMobile = getcellvalue(cell3); + + ICell cell4 = row.GetCell(4); + if (cell4 == null) + { + jm.msg = "绗�" + (i + 1) + "鍟嗗搧鍚嶇О涓嶈兘涓虹┖"; + return jm; + } + hang.name = getcellvalue(cell4); + + ICell cell5 = row.GetCell(5); + if (cell5 == null) + { + jm.msg = "绗�" + (i + 1) + "瑙勬牸涓嶈兘涓虹┖"; + return jm; + } + hang.specification = getcellvalue(cell5); + + ICell cell6 = row.GetCell(6); + if (cell6 == null) + { + jm.msg = "绗�" + (i + 1) + "鍗曚环锛堝厓锛変笉鑳戒负绌�"; + return jm; + } + hang.price = decimal.Parse(getcellvalue(cell6)); + + ICell cell7 = row.GetCell(7); + if (cell7 == null) + { + jm.msg = "绗�" + (i + 1) + "鏁伴噺涓嶈兘涓虹┖"; + return jm; + } + hang.nums = int.Parse(getcellvalue(cell7)); ; + + lie.Add(hang); + + } + } + lie = lie.OrderBy(x => x.shipAddress).ThenBy(x => x.specification).ToList(); + string url = string.Empty; + url = "121212"; + + if (lie!=null && lie.Count > 0) + { + var order = new List<JiHuaOrder>(); + for(int i=0;i< lie.Count; i++) + { + if (i == 0 ) + { + order.Add(lie[i]); + //if(lie.Count == 1) + //{ + // //淇濆瓨璁㈠崟 + // jm = await _coreCmsPlanOrderServices.ToAddJiHua(lie,_user.ID, _user.Name); + // if (jm.code == 1) + // { + // return jm; + // } + //} + } + else + { + if(lie[i].shipAddress == lie[i - 1].shipAddress) + { + order.Add(lie[i]); + } + else + { + //淇濆瓨璁㈠崟 + jm = await _coreCmsPlanOrderServices.ToAddJiHua(lie, _user.ID, _user.Name); + if (jm.code == 1) + { + return jm; + } + order = new List<JiHuaOrder>(); + order.Add(lie[i]); + } + } + + if (i == lie.Count - 1) + { + //淇濆瓨璁㈠崟 + jm = await _coreCmsPlanOrderServices.ToAddJiHua(lie, _user.ID, _user.Name); + if (jm.code == 1) + { + return jm; + } + } + } + + + } + else + { + jm.code =1; + jm.msg = "琛ㄦ牸鏃犳暟鎹�"; + jm.data = new + { + fileUrl = url, + src = url + }; + } + + + + + var bl = !string.IsNullOrEmpty(url); + jm.code = bl ? 0 : 1; + jm.msg = bl ? "涓婁紶鎴愬姛!" : "涓婁紶澶辫触"; + jm.data = new + { + fileUrl = url, + src = url + }; + } + catch (Exception e) + { + jm.code = 1; + jm.msg = "鏁版嵁寮傚父"; + jm.data = e; + } + finally + { + _semaphore.Release(); // 閲婃斁璁块棶 + } + + return jm; + } + + + /// <summary> + /// 璁″垝璁㈠崟涓婁紶鎺ュ彛 + /// </summary> + /// <returns></returns> + public string getcellvalue(ICell cell) + { + string cellvalue = ""; + switch (cell.CellType) + { + case CellType.String: + // Console.WriteLine(cell.StringCellValue); + cellvalue = cell.StringCellValue.Trim(); + break; + case CellType.Numeric: + //Console.WriteLine(cell.NumericCellValue); + cellvalue = cell.NumericCellValue.ToString().Trim(); + break; + case CellType.Boolean: + //Console.WriteLine(cell.BooleanCellValue); + cellvalue = cell.BooleanCellValue.ToString().Trim(); + break; + case CellType.Error: + // Console.WriteLine(cell.ErrorCellValue); + cellvalue = cell.ErrorCellValue.ToString().Trim(); + break; + // 鍙互娣诲姞鍏朵粬绫诲瀷鐨刢ase + } + + return cellvalue; + } + + + + + #endregion + + #region 閫氱敤涓婁紶鎺ュ彛==================================================== /// <summary> -- Gitblit v1.9.1