Commit 20ad23ac authored by 黄奎's avatar 黄奎

111

parent 2231c82f
......@@ -21,6 +21,7 @@ using System.Threading.Tasks;
using System.Web;
using Microsoft.Extensions.Hosting;
using System.Drawing;
using System.Security.Cryptography;
namespace Mall.Common
{
......@@ -833,5 +834,27 @@ namespace Mall.Common
}
}
/// <summary>
/// 获取hash值
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string GetHash(string value)
{
string result = "";
using (var md5Hash = MD5.Create())
{
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(value));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
builder.Append(data[i].ToString("x2")); //使用小写字母表示每个字节的十六进制值
}
result = builder.ToString();
}
return result;
}
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Dnc.Api.Throttle;
using Mall.CacheManager.Base;
using Mall.CacheManager.User;
using Mall.Common.API;
using Mall.Common.Enum;
......@@ -83,6 +87,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
private readonly FirstShopWishModule firstShopWishModule = new FirstShopWishModule();
RedisHelper redisHelper = new RedisHelper();
#region 联系人管理
......@@ -2109,13 +2114,12 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
/// <summary>
/// 品牌下载
/// 检查文件是否存在
/// </summary>
/// <returns></returns>
[HttpPost]
public FileContentResult GetBrandListToExcel()
public async Task<ApiResult> CheckBrandFile()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
var demodel = new RB_Brand_Extend()
......@@ -2134,143 +2138,193 @@ namespace Mall.WebApi.Controllers.TradePavilion
};
demodel.MallBaseId = RequestParm.MallBaseId;
demodel.TenantId = RequestParm.TenantId;
try
{
List<int> ExcelEnumIds = JsonConvert.DeserializeObject<List<int>>(parms.GetStringValue("ExcelEnumIds"));
demodel.ExcelEnumIds = ExcelEnumIds;
if (ExcelEnumIds == null || !ExcelEnumIds.Any())
{
demodel.ExcelEnumIds = new List<int>();
for (int i = 1; i <= 23; i++)
{
demodel.ExcelEnumIds.Add(i);
}
}
}
catch
List<int> ExcelEnumIds = JsonConvert.DeserializeObject<List<int>>(parms.GetStringValue("ExcelEnumIds"));
string hashKey = Common.Config.GetHash(Common.Plugin.JsonHelper.Serialize(demodel));
string fileName = hashKey + ".xls";
string key = "SD_" + hashKey;
string redisValue = redisHelper.Get(key);
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "upfile/Brand");
if (System.IO.Directory.Exists(filePath) == false)//如果不存在就创建file文件夹
{
demodel.ExcelEnumIds = new List<int>();
for (int i = 1; i <= 23; i++)
{
demodel.ExcelEnumIds.Add(i);
}
System.IO.Directory.CreateDirectory(filePath);
}
string ExcelName = "品牌列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
if (demodel.ExcelEnumIds == null || !demodel.ExcelEnumIds.Any())
string tempPath = filePath + "\\" + hashKey + "\\";
//如果不存在就创建file文件夹
if (!System.IO.Directory.Exists(tempPath))
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
System.IO.Directory.CreateDirectory(tempPath);
}
var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BusinessExportEnum));
ExcelDataSource header = new ExcelDataSource()
string fileUrl = tempPath + fileName;
if (string.IsNullOrEmpty(redisValue))
{
ExcelRows = new List<ExcelColumn>(30)
redisValue = redisHelper.Get(key);
if (string.IsNullOrEmpty(redisValue))
{
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
redisHelper.StringSet(key, fileName, TimeSpan.FromMinutes(30));
GetBrandListToExcel(demodel, ExcelEnumIds, fileUrl);
}
};
foreach (var item in demodel.ExcelEnumIds)
{
var Name = Enumlist.Where(x => x.Value == item.ToString()).FirstOrDefault().Key ?? "";
header.ExcelRows.Add(new ExcelColumn(value: Name) { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
}
slist.Add(header);
try
return await Task.Run<ApiResult>(() =>
{
var list = carrierModule.GetBrandListByWhere(demodel);
#region 组装数据
int Num = 0;
foreach (var item in list)
ApiResult apiResult = new ApiResult()
{
Num++;
ExcelDataSource datarow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:Num.ToString()){ },
}
};
foreach (var qitem in demodel.ExcelEnumIds)
{
switch (qitem)
{
case 1:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ClassName) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break;
case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ShopNum.ToString()) { }); break;
case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.BuiltUpArea.ToString()) + "-" + (item.EndBuiltUpArea.ToString())) { }); break;
case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.AreaRequirement.ToString()) + "-" + (item.EndAreaRequirement.ToString())) { }); break;
case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CustomerType) { }); break;
case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandType) { }); break;
case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.StoreExpansion) { }); break;
case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: ((item.ProjectType.HasValue && item.ProjectType.Value > 0) ? item.ProjectType.GetEnumName() : "")) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsShopSize == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.ShopSize) ? item.ShopSize : "")) : "无")) { }); break;
case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.RanQi == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.RanQiBZ) ? item.RanQiBZ : "")) : "无")) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.PaiYan == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.PaiYanBZ) ? item.PaiYanBZ : "")) : "无")) { }); break;
case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsDianLiang == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.DianLiang) ? item.DianLiang : "")) : "无")) { }); break;
case 17:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.Plumbing == 1 ? "有" : "无")) { }); break;
case 18:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.Caliber == 1 ? ("有") : "无")) { }); break;
case 19:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.Sewage == 1 ? ("有") : "无")) { }); break;
case 20:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.KongTiao == 1 ? ("有") : "无")) { }); break;
case 21:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.XinFeng == 1 ? ("有") : "无")) { }); break;
case 22:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Advertising) { }); break;
case 23:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Other) { }); break;
}
}
slist.Add(datarow);
}
#endregion
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
string basePath = AppDomain.CurrentDomain.BaseDirectory + "/upfile/temporary/brand/";
string path = basePath + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
if (!Directory.Exists(basePath))
{
Directory.CreateDirectory(basePath);
}
using (FileStream stream =System.IO.File.Create(path))
resultCode = 0,
};
if (System.IO.File.Exists(fileUrl))
{
//将字节数组写入流
stream.Write(byteData, 0, byteData.Length);
stream.Close();
apiResult.resultCode = 1;
apiResult.data = "/upfile/Brand/" + hashKey + "/" + fileName;
}
return apiResult;
});
}
/// <summary>
/// 品牌下载
/// </summary>
[HttpPost]
public void GetBrandListToExcel(RB_Brand_Extend demodel,List<int> ExcelEnumIds,string excelFileUrl)
{
//try
//{
// demodel.ExcelEnumIds = ExcelEnumIds;
// if (ExcelEnumIds == null || !ExcelEnumIds.Any())
// {
// demodel.ExcelEnumIds = new List<int>();
// for (int i = 1; i <= 23; i++)
// {
// demodel.ExcelEnumIds.Add(i);
// }
// }
//}
//catch
//{
// demodel.ExcelEnumIds = new List<int>();
// for (int i = 1; i <= 23; i++)
// {
// demodel.ExcelEnumIds.Add(i);
// }
//}
//string ExcelName = "品牌列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//List<ExcelDataSource> slist = new List<ExcelDataSource>();
//if (demodel.ExcelEnumIds == null || !demodel.ExcelEnumIds.Any())
//{
// var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
// return File(byteData1, "application/octet-stream", ExcelName);
//}
//var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BusinessExportEnum));
//ExcelDataSource header = new ExcelDataSource()
//{
// ExcelRows = new List<ExcelColumn>(30)
// {
// new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
// }
//};
//foreach (var item in demodel.ExcelEnumIds)
//{
// var Name = Enumlist.Where(x => x.Value == item.ToString()).FirstOrDefault().Key ?? "";
// header.ExcelRows.Add(new ExcelColumn(value: Name) { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
//}
//slist.Add(header);
//try
//{
// var list = carrierModule.GetBrandListByWhere(demodel);
// #region 组装数据
// int Num = 0;
// foreach (var item in list)
// {
// Num++;
// ExcelDataSource datarow = new ExcelDataSource()
// {
// ExcelRows = new List<ExcelColumn>(30) {
// new ExcelColumn(value:Num.ToString()){ },
// }
// };
// foreach (var qitem in demodel.ExcelEnumIds)
// {
// switch (qitem)
// {
// case 1:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.ClassName) { }); break;
// case 2:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break;
// case 4:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
// case 3:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break;
// case 5:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
// case 6:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.ShopNum.ToString()) { }); break;
// case 7:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.BuiltUpArea.ToString()) + "-" + (item.EndBuiltUpArea.ToString())) { }); break;
// case 8:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.AreaRequirement.ToString()) + "-" + (item.EndAreaRequirement.ToString())) { }); break;
// case 9:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.CustomerType) { }); break;
// case 10:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandType) { }); break;
// case 11:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.StoreExpansion) { }); break;
// case 12:
// datarow.ExcelRows.Add(new ExcelColumn(value: ((item.ProjectType.HasValue && item.ProjectType.Value > 0) ? item.ProjectType.GetEnumName() : "")) { }); break;
// case 13:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsShopSize == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.ShopSize) ? item.ShopSize : "")) : "无")) { }); break;
// case 14:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.RanQi == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.RanQiBZ) ? item.RanQiBZ : "")) : "无")) { }); break;
// case 15:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.PaiYan == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.PaiYanBZ) ? item.PaiYanBZ : "")) : "无")) { }); break;
// case 16:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsDianLiang == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.DianLiang) ? item.DianLiang : "")) : "无")) { }); break;
// case 17:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Plumbing == 1 ? "有" : "无")) { }); break;
// case 18:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Caliber == 1 ? ("有") : "无")) { }); break;
// case 19:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Sewage == 1 ? ("有") : "无")) { }); break;
// case 20:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.KongTiao == 1 ? ("有") : "无")) { }); break;
// case 21:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.XinFeng == 1 ? ("有") : "无")) { }); break;
// case 22:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Advertising) { }); break;
// case 23:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Other) { }); break;
// }
// }
// slist.Add(datarow);
// }
// #endregion
// var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
// string basePath = AppDomain.CurrentDomain.BaseDirectory + "/upfile/temporary/brand/";
// string path = basePath + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
// if (!Directory.Exists(basePath))
// {
// Directory.CreateDirectory(basePath);
// }
// using (FileStream stream =System.IO.File.Create(path))
// {
// //将字节数组写入流
// stream.Write(byteData, 0, byteData.Length);
// stream.Close();
// }
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(RequestParm)));
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
// return File(byteData, "application/octet-stream", ExcelName);
//}
//catch (Exception ex)
//{
// LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(RequestParm)));
// var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
// return File(byteData1, "application/octet-stream", ExcelName);
//}
}
/// <summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment