Commit c6b040a0 authored by 黄奎's avatar 黄奎

文件下载修改

parent 20ad23ac
......@@ -21,6 +21,7 @@ using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SharpCompress.Common;
namespace Mall.WebApi.Controllers.TradePavilion
{
......@@ -98,7 +99,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// <returns></returns>
[HttpGet]
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetContractPageList()
{
ResultPageModel pageModel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
......@@ -187,7 +189,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// <returns></returns>
[HttpGet]
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetContract()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
......@@ -1481,7 +1484,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
x.UserName,
x.UserIcon,
x.CarrierMetroList
});
});
return ApiResult.Success(data: pageModel);
}
......@@ -1540,7 +1543,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
YeJi = parms.GetDecimal("YeJi"),
OpeningStatus = parms.GetInt("OpeningStatus"),
};
string BannerList=parms.GetStringValue("BannerList");
string BannerList = parms.GetStringValue("BannerList");
if (!string.IsNullOrEmpty(BannerList))
{
query.BannerList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(BannerList);
......@@ -1670,7 +1673,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
{
query.FirstStoreTest = 1;
}
else {
else
{
query.FirstStoreTest = 0;
}
query.ShopNum ??= 0;
......@@ -1857,7 +1861,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetProjectTypeEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.ProjectTypeEnum));
......@@ -2142,9 +2147,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
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");
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "upfile/temporary");
if (System.IO.Directory.Exists(filePath) == false)//如果不存在就创建file文件夹
{
System.IO.Directory.CreateDirectory(filePath);
......@@ -2156,16 +2160,17 @@ namespace Mall.WebApi.Controllers.TradePavilion
System.IO.Directory.CreateDirectory(tempPath);
}
string fileUrl = tempPath + fileName;
string key = "Mall_SD_BRAND_" + hashKey;
string redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisValue = redisHelper.Get(key);
redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisHelper.StringSet(key, fileName, TimeSpan.FromMinutes(30));
GetBrandListToExcel(demodel, ExcelEnumIds, fileUrl);
}
}
return await Task.Run<ApiResult>(() =>
{
ApiResult apiResult = new ApiResult()
......@@ -2175,156 +2180,186 @@ namespace Mall.WebApi.Controllers.TradePavilion
if (System.IO.File.Exists(fileUrl))
{
apiResult.resultCode = 1;
apiResult.data = "/upfile/Brand/" + hashKey + "/" + fileName;
apiResult.data = "/upfile/temporary/" + hashKey + "/" + fileName;
apiResult.message = key;
}
return apiResult;
});
}
/// <summary>
/// 品牌下载
/// 删除Key
/// </summary>
/// <returns></returns>
[HttpPost]
public void GetBrandListToExcel(RB_Brand_Extend demodel,List<int> ExcelEnumIds,string excelFileUrl)
public ApiResult DeleteKey()
{
//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);
// }
//}
JObject parms = JObject.Parse(RequestParm.msg.ToString());
string key = parms.GetStringValue("key");
string fileUrl = parms.GetStringValue("fileUrl");
string newPath = Directory.GetCurrentDirectory() + fileUrl;
try
{
if (System.IO.File.Exists(newPath))
{
System.IO.File.Delete(newPath);
}
redisHelper.KeyDelete(key);
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "DeleteKey::" + RequestParm.msg.ToString());
}
return ApiResult.Success();
}
//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 });
//}
/// <summary>
/// 文件下载
/// </summary>
/// <returns></returns>
[HttpPost]
public FileContentResult GetFile()
{
string ExcelName = "品牌列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
JObject parms = JObject.Parse(RequestParm.msg.ToString());
string fileUrl = parms.GetStringValue("fileUrl");
string newPath = Directory.GetCurrentDirectory() + fileUrl;
if (System.IO.File.Exists(newPath))
{
byte[] fileBytes = System.IO.File.ReadAllBytes(newPath);
return File(fileBytes, "application/octet-stream", ExcelName);
}
else
{
return File(Array.Empty<byte>(), "application/octet-stream");
}
}
//slist.Add(header);
/// <summary>
/// 品牌下载
/// </summary>
//try
//{
private 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);
}
}
// 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);
//}
byte[] bytes = null;
List<ExcelDataSource> slist = new List<ExcelDataSource>();
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
bytes = ExcelTempLateHelper.ToExcelExtend(slist);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(RequestParm)));
}
using (FileStream fs = new FileStream(excelFileUrl, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
}
/// <summary>
......@@ -2863,7 +2898,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetFirstShopEnrollZipExport()
{
var req = base.RequestParm;
......@@ -2889,7 +2925,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetFirstShopEnrollZipExport_V3()
{
var req = base.RequestParm;
......@@ -2920,7 +2957,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetNewFirstShopEnrollZipExport()
{
var req = base.RequestParm;
......@@ -2946,7 +2984,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult GetFirstShopEnrollResultUrl()
{
var req = base.RequestParm;
......@@ -2973,7 +3012,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous] [RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
[AllowAnonymous]
[RateValve(Policy = Policy.Ip, Limit = 10, Duration = 60)]
public ApiResult DelFirstShopEnrollZipExport()
{
var req = base.RequestParm;
......
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