Commit 16c26e4e authored by 黄奎's avatar 黄奎

接口修改

parent 45c8eeb3
......@@ -128,4 +128,93 @@ namespace Mall.Common.Enum.TradePavilion
Other = 23,
}
/// <summary>
/// 【商载通】品牌、企业服务下载枚举列表
/// </summary>
public enum BrandEnterpriseExportEnum
{
/// <summary>
/// 分类
/// </summary>
[EnumField("分类")]
CategoryId = 1,
/// <summary>
/// 品牌全名
/// </summary>
[EnumField("品牌全名")]
FullBrandName = 2,
/// <summary>
/// 品牌名
/// </summary>
[EnumField("品牌名")]
BrandName = 3,
/// <summary>
/// Logo
/// </summary>
[EnumField("Logo")]
Logo = 4,
/// <summary>
/// 品牌视频
/// </summary>
[EnumField("品牌视频")]
VideoUrl = 5,
/// <summary>
/// 店铺数量
/// </summary>
[EnumField("店铺数量")]
ShopNum = 6,
/// <summary>
/// 建筑面积
/// </summary>
[EnumField("建筑面积")]
BuiltUpArea = 7,
/// <summary>
/// 需求面积
/// </summary>
[EnumField("需求面积")]
AreaRequirement = 8,
/// <summary>
/// 客群定位
/// </summary>
[EnumField("客群定位")]
CustomerType = 9,
/// <summary>
/// 品牌定位
/// </summary>
[EnumField("品牌定位")]
BrandType = 10,
/// <summary>
/// 简介
/// </summary>
[EnumField("简介")]
Introduce =11,
/// <summary>
/// 发展意向
/// </summary>
[EnumField("发展意向")]
DevIntention = 12,
/// <summary>
/// 物业需求
/// </summary>
[EnumField("物业需求")]
PropertyDemand = 13,
/// <summary>
/// 合作条件
/// </summary>
[EnumField("合作条件")]
Cooperation =14,
/// <summary>
/// 配套需求
/// </summary>
[EnumField("配套需求")]
Complementary =15
}
}
......@@ -86,4 +86,119 @@ namespace Mall.Common.Enum.TradePavilion
[EnumField("地铁信息")]
CarrierMetro = 15,
}
/// <summary>
/// 载体、楼宇下载项目
/// </summary>
public enum BuildCarrierExportEnum {
/// <summary>
/// 项目名称
/// </summary>
[EnumField("项目名称")]
CarrierName = 1,
/// <summary>
/// Logo
/// </summary>
[EnumField("Logo")]
Logo = 2,
/// <summary>
/// 开发商
/// </summary>
[EnumField("开发商")]
Developers = 3,
/// <summary>
/// 载体视频
/// </summary>
[EnumField("载体视频")]
VideoUrl = 4,
/// <summary>
/// 项目地址
/// </summary>
[EnumField("项目地址")]
Address = 5,
/// <summary>
/// 开业时间
/// </summary>
[EnumField("开业时间")]
OpenTime = 6,
/// <summary>
/// 项目分类
/// </summary>
[EnumField("项目分类")]
CategoryType = 7,
/// <summary>
/// 项目分类
/// </summary>
[EnumField("资产权属")]
Ascription = 8,
/// <summary>
/// 项目面积
/// </summary>
[EnumField("项目面积")]
CarrierSize = 9,
/// <summary>
/// 物业构成
/// </summary>
[EnumField("物业构成")]
PropertyComposition = 10,
/// <summary>
/// 项目发展及定位
/// </summary>
[EnumField("项目发展及定位")]
Location = 11,
/// <summary>
/// 项目发展及定位
/// </summary>
[EnumField("周边人群结构特征")]
Crowd = 12,
/// <summary>
/// 人流量参数
/// </summary>
[EnumField("人流量参数")]
VisitorsFlowrate = 13,
/// <summary>
/// 商业楼层
/// </summary>
[EnumField("商业楼层")]
LayersNum = 14,
/// <summary>
/// 水电气及配套
/// </summary>
[EnumField("水电气及配套")]
SupportingFacilities = 15,
/// <summary>
/// 管理公司及管理费
/// </summary>
[EnumField("管理公司及管理费")]
ManagementCompany = 16,
/// <summary>
/// 目标招商业态及品牌需求
/// </summary>
[EnumField("目标招商业态及品牌需求")]
BrandDemand = 17,
/// <summary>
/// 地铁信息
/// </summary>
[EnumField("地铁信息")]
MetroInfo = 18,
}
}
......@@ -58,7 +58,32 @@ namespace Mall.Module.TradePavilion
}
}
return list;
}
}
/// <summary>
/// 获取载体楼宇列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Building_Carrier_Extend> GetBuildingCarrierListModule(RB_Building_Carrier_Extend query)
{
var list = building_CarrierRepository.GetBuildingCarrierListRepository(query);
if (list != null && list.Count > 0)
{
string Ids = string.Join(",", list.Select(qitem => qitem.ID));
List<RB_Building_Carriermetro_Extend> metroList = new List<RB_Building_Carriermetro_Extend>();
if (!string.IsNullOrEmpty(Ids))
{
metroList = building_CarriermetroRepository.GetBuildingCarrierMetroListRepository(new RB_Building_Carriermetro_Extend() { CarrierIds = Ids });
}
foreach (var item in list)
{
item.BuildingCarriermetroList = metroList.Where(qitem => qitem.CarrierId == item.ID)?.ToList() ?? new List<RB_Building_Carriermetro_Extend>();
}
}
return list;
}
/// <summary>
/// 新增修改载体、楼宇
......@@ -169,6 +194,17 @@ namespace Mall.Module.TradePavilion
return list;
}
/// <summary>
/// 【商载通】品牌、企业服务仓储层
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Brand_Enterprise_Extend> GetBrandEnterpriseListModule(RB_Brand_Enterprise_Extend query)
{
return brand_EnterpriseRepository.GetBrandEnterpriseListRepository(query);
}
/// <summary>
/// 新增修改品牌和企业服务
/// </summary>
......
......@@ -62,5 +62,51 @@ WHERE 1=1
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Brand_Enterprise_Extend.ID));
return GetPage<RB_Brand_Enterprise_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(),parameters).ToList();
}
/// <summary>
/// 【商载通】品牌、企业服务仓储层
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Brand_Enterprise_Extend> GetBrandEnterpriseListRepository( RB_Brand_Enterprise_Extend query)
{
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS CategoryName
FROM rb_brand_Enterprise AS A LEFT JOIN rb_brandclass AS B ON A.CategoryId=B.ID
WHERE 1=1
");
if (query != null)
{
if (query.TenantId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Brand_Enterprise_Extend.TenantId), query.TenantId);
}
if (query.MallBaseId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Brand_Enterprise_Extend.MallBaseId), query.MallBaseId);
}
if (query.BrandEnterpriseType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Brand_Enterprise_Extend.BrandEnterpriseType), query.BrandEnterpriseType);
}
if (query.CategoryId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Brand_Enterprise_Extend.CategoryId), query.CategoryId);
}
if (query.UserId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Brand_Enterprise_Extend.UserId), query.UserId);
}
if (!string.IsNullOrEmpty(query.BrandName))
{
builder.AppendFormat(" AND A.{0} LIKE @BrandName ", nameof(RB_Brand_Enterprise_Extend.BrandName));
parameters.Add("@BrandName", "%" + query.BrandName + "%");
}
}
return Get<RB_Brand_Enterprise_Extend>(builder.ToString(), parameters).ToList();
}
}
}
......@@ -124,16 +124,60 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.MallBaseId), query.MallBaseId);
}
if (query.BuildingCarrierType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.BuildingCarrierType), query.BuildingCarrierType);
}
if (!string.IsNullOrEmpty(query.CarrierName))
{
builder.AppendFormat(" AND A.{0} LIKE @CarrierName ", nameof(RB_Building_Carrier_Extend.CarrierName));
parameters.Add("@CarrierName", "%" + query.CarrierName.Trim() + "%");
}
if (!string.IsNullOrWhiteSpace(query.Developers))
{
builder.AppendFormat(" AND A.{0} LIKE @Developers ", nameof(RB_Building_Carrier_Extend.Developers));
parameters.Add("@Developers", "%" + query.Developers.Trim() + "%");
}
if (query.OpeningStatus > -1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.OpeningStatus), query.OpeningStatus);
}
if (query.CategoryId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.CategoryId), query.CategoryId);
}
if (!string.IsNullOrEmpty(query.QStartDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Building_Carrier_Extend.OpenTime), query.QStartDate);
}
if (!string.IsNullOrEmpty(query.QEndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Building_Carrier_Extend.OpenTime), query.QEndDate);
}
if (query.MetroNum > 0 || !string.IsNullOrWhiteSpace(query.MetroName))
{
builder.Append($" AND A.{nameof(RB_Building_Carrier_Extend.ID)} IN (SELECT CarrierId FROM RB_Building_Carriermetro WHERE `Status`=0 ");
if (query.MetroNum > 0)
{
builder.Append($" AND {nameof(RB_Building_Carriermetro.MetroNum)} = {query.MetroNum}");
}
if (!string.IsNullOrWhiteSpace(query.MetroName))
{
builder.Append($" AND {nameof(RB_Building_Carriermetro.MetroName)} LIKE @MetroName ");
parameters.Add("@MetroName", "%" + query.MetroName.Trim() + "%");
}
builder.Append(" )");
}
if (query.QShopType == 1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.IsChengDu), 1);
}
if (query.QShopType == 2)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Building_Carrier_Extend.OpenTime), 0);
}
}
builder.AppendFormat(" ORDER BY A.ID DESC ");
return Get<RB_Building_Carrier_Extend>(builder.ToString(), parameters).ToList();
}
}
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Dnc.Api.Throttle;
using Dnc.Api.Throttle;
using Mall.CacheManager.User;
using Mall.Common;
using Mall.Common.API;
......@@ -15,10 +11,12 @@ using Mall.Module.TradePavilion;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Mall.WebApi.Controllers.TradePavilion
{
......
......@@ -2577,6 +2577,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 获取品牌大类
/// </summary>
......@@ -3668,7 +3669,225 @@ namespace Mall.WebApi.Controllers.TradePavilion
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 获取【商载通】载体、楼宇下载枚举列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetBuildingCarrierExportEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BuildCarrierExportEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 检查【商再通】载体、楼宇文件是否存在
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> CheckBuildingCarrierFile()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
RB_Building_Carrier_Extend query = new RB_Building_Carrier_Extend()
{
CarrierName = parms.GetStringValue("CarrierName"),
CategoryId = parms.GetInt("CategoryId"),
QStartDate = parms.GetStringValue("QStartDate"),
QEndDate = parms.GetStringValue("QEndDate"),
MetroName = parms.GetStringValue("MetroName"),
MetroNum = parms.GetInt("MetroNum"),
BuildingCarrierType = parms.GetInt("BuildingCarrierType"),
OpeningStatus = parms.GetInt("OpeningStatus", -1),
QShopType = parms.GetInt("QShopType"),
MallBaseId = RequestParm.MallBaseId,
TenantId = RequestParm.TenantId,
};
string RandomNum = parms.GetStringValue("RandomNum");
string ExcelEnumIdsStr = parms.GetStringValue("ExcelEnumIds");
List<int> ExcelEnumIds = JsonConvert.DeserializeObject<List<int>>(ExcelEnumIdsStr);
string hashKey = Common.Config.GetHash(Common.Plugin.JsonHelper.Serialize(query) + ExcelEnumIdsStr + RandomNum);
string fileName = "载体楼宇" + ".xls";
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "upfile/temporary");
if (System.IO.Directory.Exists(filePath) == false)//如果不存在就创建file文件夹
{
System.IO.Directory.CreateDirectory(filePath);
}
string tempPath = filePath + "\\" + hashKey + "\\";
//如果不存在就创建file文件夹
if (!System.IO.Directory.Exists(tempPath))
{
System.IO.Directory.CreateDirectory(tempPath);
}
string fileUrl = tempPath + fileName;
string key = "Mall_SD_BUILDINGCARRIER_" + hashKey;
string redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisHelper.StringSet(key, fileName, TimeSpan.FromMinutes(10));
Task.Run(() =>
{
GetBuildingCarrierListToExcel(query, ExcelEnumIds, tempPath, fileUrl);
});
}
}
return await Task.Run<ApiResult>(() =>
{
ApiResult apiResult = new ApiResult()
{
resultCode = 0,
};
if (System.IO.File.Exists(fileUrl))
{
var filePath = "/upfile/temporary/" + hashKey + "/";
var fileUrl = "/upfile/temporary/" + hashKey + "/" + fileName;
apiResult.resultCode = 1;
apiResult.data = new { filePath, fileUrl };
apiResult.message = key;
}
return apiResult;
});
}
/// <summary>
/// 生成【商载通】载体、楼宇文件
/// </summary>
/// <param name="demodel">查询参数</param>
/// <param name="ExcelEnumIdList">下载列</param>
/// <param name="filePath">Logo文件存放路径</param>
/// <param name="excelFileUrl">Excel文件路径</param>
private async void GetBuildingCarrierListToExcel(RB_Building_Carrier_Extend demodel, List<int> ExcelEnumIdList, string filePath, string excelFileUrl)
{
byte[] bytes = null;
string ExcelName = "载体列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BuildCarrierExportEnum));
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30)
{
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
}
};
foreach (var item in ExcelEnumIdList)
{
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 = buildingCarrierModule.GetBuildingCarrierListModule(demodel);
List<Action> actions = new List<Action>();
if (list != null && list.Count > 0)
{
//判断是否下载图片
if (ExcelEnumIdList.Contains(2))
{
foreach (var item in list)
{
actions.Add(new Action(() =>
{
DownLoadUrl(item.Logo, filePath);
}));
}
}
}
if (actions != null && actions.Count > 0)
{
ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 4 }; // 设置最大并行度为 4
Parallel.Invoke(options, actions.ToArray());
}
#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 ExcelEnumIdList)
{
switch (qitem)
{
case 1:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CarrierName) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Developers) { }); break;
case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Address) { }); break;
case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: Common.ConvertHelper.FormatDate(item.OpenTime)) { }); break;
case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Ascription) { }); break;
case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.CarrierSize.ToString()) + "万平方米") { }); break;
case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyComposition) { }); break;
case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Location) { }); break;
case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Crowd) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VisitorsFlowrate) { }); break;
case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.LayersNum) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: item.SupportingFacilities) { }); break;
case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ManagementCompany) { }); break;
case 17:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandDemand) { }); break;
case 18:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.BuildingCarriermetroList != null && item.BuildingCarriermetroList.Any()) ? (string.Join(",", item.BuildingCarriermetroList.Select(x => x.MetroNum + "号线" + x.MetroName + x.Distance))) : "") { }); break;
}
}
slist.Add(datarow);
}
#endregion
bytes = ExcelTempLateHelper.ToBrandExcelExtend(slist, filePath);
using (FileStream fs = new FileStream(excelFileUrl, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
}
catch (Exception ex)
{
bytes = ExcelTempLateHelper.ToBrandExcelExtend(slist, filePath);
using (FileStream fs = new FileStream(excelFileUrl, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
LogHelper.Write(ex, string.Format("GetBuildingCarrierListToExcel_Requst: {0}", JsonHelper.Serialize(demodel)));
}
}
/// <summary>
/// 【商载通】品牌、企业服务分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetBrandEnterprisePage()
{
......@@ -3684,6 +3903,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
BrandName = parms.GetStringValue("BrandName"),
CategoryId = parms.GetInt("CategoryId"),
};
query.TenantId = RequestParm.TenantId;
query.MallBaseId = RequestParm.MallBaseId;
List<object> list = new List<object>();
var dataList = buildingCarrierModule.GetBrandEnterprisePageModule(pageModel.pageIndex, pageModel.pageSize, out long rowsCount, query);
foreach (var item in dataList)
......@@ -3856,5 +4077,205 @@ namespace Mall.WebApi.Controllers.TradePavilion
var model = wechatStatisticsModule.GetList(extModel)?.FirstOrDefault() ?? new RB_Wechat_Statistics_Extend();
return ApiResult.Success("", model);
}
/// <summary>
/// 获取品牌下载枚举列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetBrandEnterpriseExportEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BrandEnterpriseExportEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 检查品牌文件是否存在
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> CheckBrandEnterpriseFile()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
RB_Brand_Enterprise_Extend query = new RB_Brand_Enterprise_Extend()
{
BrandEnterpriseType = parms.GetInt("BrandEnterpriseType"),
BrandName = parms.GetStringValue("BrandName"),
CategoryId = parms.GetInt("CategoryId"),
};
query.MallBaseId = RequestParm.MallBaseId;
query.TenantId = RequestParm.TenantId;
string RandomNum = parms.GetStringValue("RandomNum");
string ExcelEnumIdsStr = parms.GetStringValue("ExcelEnumIds");
List<int> ExcelEnumIds = JsonConvert.DeserializeObject<List<int>>(ExcelEnumIdsStr);
string hashKey = Common.Config.GetHash(Common.Plugin.JsonHelper.Serialize(query) + ExcelEnumIdsStr + ExcelEnumIdsStr);
string fileName = "消费品牌企业服务信息" + ".xls";
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "upfile/temporary");
if (System.IO.Directory.Exists(filePath) == false)//如果不存在就创建file文件夹
{
System.IO.Directory.CreateDirectory(filePath);
}
string tempPath = filePath + "\\" + hashKey + "\\";
//如果不存在就创建file文件夹
if (!System.IO.Directory.Exists(tempPath))
{
System.IO.Directory.CreateDirectory(tempPath);
}
string fileUrl = tempPath + fileName;
string key = "Mall_SD_BRANDENTERPRISE_" + hashKey;
string redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisValue = redisHelper.StringGet(key);
if (string.IsNullOrEmpty(redisValue))
{
redisHelper.StringSet(key, fileName, TimeSpan.FromMinutes(10));
Task.Run(() =>
{
GetBrandEnterpriseListToExcel(query, ExcelEnumIds, tempPath, fileUrl);
});
}
}
return await Task.Run<ApiResult>(() =>
{
ApiResult apiResult = new ApiResult()
{
resultCode = 0,
};
if (System.IO.File.Exists(fileUrl))
{
var filePath = "/upfile/temporary/" + hashKey + "/";
var fileUrl = "/upfile/temporary/" + hashKey + "/" + fileName;
apiResult.resultCode = 1;
apiResult.data = new { filePath, fileUrl };
apiResult.message = key;
}
return apiResult;
});
}
/// <summary>
///【商载通】 生成品牌文件
/// </summary>
/// <param name="demodel">查询参数</param>
/// <param name="ExcelEnumIdList">需要导出的列</param>
/// <param name="filePath">Logon存放路劲</param>
/// <param name="excelFileUrl">Excel文件路径</param>
private async void GetBrandEnterpriseListToExcel(RB_Brand_Enterprise_Extend demodel, List<int> ExcelEnumIdList, string filePath, string excelFileUrl)
{
byte[] bytes = null;
List<ExcelDataSource> slist = new List<ExcelDataSource>();
var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BrandEnterpriseExportEnum));
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30)
{
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
}
};
foreach (var item in ExcelEnumIdList)
{
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 = buildingCarrierModule.GetBrandEnterpriseListModule(demodel);
List<Action> actions = new List<Action>();
if (list != null && list.Count > 0)
{
//判断是否下载图片
if (ExcelEnumIdList.Contains(4))
{
foreach (var item in list)
{
actions.Add(new Action(() =>
{
DownLoadUrl(item.Logo, filePath);
}));
}
}
}
if (actions != null && actions.Count > 0)
{
ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 4 }; // 设置最大并行度为 4
Parallel.Invoke(options, actions.ToArray());
}
#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 ExcelEnumIdList)
{
switch (qitem)
{
case 1:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break;
case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); 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.Introduce) { }); break;
case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.DevIntention) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyDemand) { }); break;
case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Cooperation) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Complementary) { }); break;
}
}
slist.Add(datarow);
}
#endregion
bytes = ExcelTempLateHelper.ToBrandExcelExtend(slist, filePath);
using (FileStream fs = new FileStream(excelFileUrl, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
}
catch (Exception ex)
{
bytes = ExcelTempLateHelper.ToBrandExcelExtend(slist, filePath);
using (FileStream fs = new FileStream(excelFileUrl, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
LogHelper.Write(ex, string.Format("GetBrandEnterpriseListToExcel_Request: {0}", JsonHelper.Serialize(demodel)));
}
}
}
}
\ No newline at end of file
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