Commit 4dc1d1db authored by 吴春's avatar 吴春

1

parent 734930b2
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Common.Plugin;
namespace Mall.Common.Enum.TradePavilion
{
/// <summary>
/// 品牌下载枚举列表
/// </summary>
public enum SZTBusinessExportEnum
{
/// <summary>
/// 品牌全名
/// </summary>
[EnumField("品牌全名")]
FullBrandName = 1,
/// <summary>
/// 品牌名
/// </summary>
[EnumField("品牌名")]
BrandName = 2,
/// <summary>
/// 品牌视频
/// </summary>
[EnumField("品牌视频")]
VideoUrl = 3,
/// <summary>
/// Logo
/// </summary>
[EnumField("Logo")]
Logo = 4,
/// <summary>
/// 品牌分类
/// </summary>
[EnumField("品牌分类")]
CategoryId = 5,
/// <summary>
/// 品牌简介
/// </summary>
[EnumField("品牌简介")]
Introduce = 6,
/// <summary>
/// 店铺数量
/// </summary>
[EnumField("店铺数量")]
ShopNum = 7,
/// <summary>
/// 建筑面积
/// </summary>
[EnumField("建筑面积")]
BuiltUpArea = 8,
/// <summary>
/// 需求面积
/// </summary>
[EnumField("需求面积")]
AreaRequirement = 9,
/// <summary>
/// 客群定位
/// </summary>
[EnumField("客群定位")]
CustomerType = 10,
/// <summary>
/// 品牌定位
/// </summary>
[EnumField("品牌定位")]
BrandType = 11,
/// <summary>
/// 合作条件
/// </summary>
[EnumField("合作条件")]
Cooperation = 12,
/// <summary>
/// 物业需求
/// </summary>
[EnumField("物业需求")]
PropertyDemand = 13,
/// <summary>
/// 配套需求
/// </summary>
[EnumField("配套需求")]
Complementary = 14,
/// <summary>
/// 联系人
/// </summary>
[EnumField("联系人")]
ContactName = 15,
/// <summary>
/// 联系电话
/// </summary>
[EnumField("联系电话")]
ContactPhone = 16,
}
/// <summary>
/// 【商载通】企业服务下载枚举列表
/// </summary>
public enum SZTBrandServicesExportEnum
{
/// <summary>
/// 企业名称
/// </summary>
[EnumField("企业名称")]
Name = 1,
/// <summary>
/// LOGO
/// </summary>
[EnumField("LOGO")]
Banner = 2,
/// <summary>
/// 企业简介
/// </summary>
[EnumField("企业简介")]
Introduction = 3,
/// <summary>
/// 企业类别
/// </summary>
[EnumField("企业类别")]
EType = 4,
/// <summary>
/// 意向楼宇等级
/// </summary>
[EnumField("意向楼宇等级")]
CategoryId = 5,
/// <summary>
/// 意向楼宇位置
/// </summary>
[EnumField("意向楼宇位置")]
Address = 6,
/// <summary>
/// 经纬度
/// </summary>
[EnumField("经纬度")]
LatAndLon = 7,
/// <summary>
/// 投运时间
/// </summary>
[EnumField("投运时间")]
OperationTime = 8,
/// <summary>
/// 企业发展意向
/// </summary>
[EnumField("企业发展意向")]
DevIntention = 9,
/// <summary>
/// 楼宇装修
/// </summary>
[EnumField("楼宇装修")]
Renovation = 10,
/// <summary>
/// 支付方式
/// </summary>
[EnumField("支付方式")]
Payment = 11,
/// <summary>
/// 交房日期
/// </summary>
[EnumField("交房日期")]
HandoverDate = 12,
/// <summary>
/// 意向楼层
/// </summary>
[EnumField("意向楼层")]
IntentionalFloor = 13,
/// <summary>
/// 电梯数
/// </summary>
[EnumField("电梯数")]
ElevatorNum = 14,
/// <summary>
/// 物业费
/// </summary>
[EnumField("物业费")]
PropertyFee = 15,
/// <summary>
/// 月租金
/// </summary>
[EnumField("月租金")]
RentFee = 16,
/// <summary>
/// 联系人名字
/// </summary>
[EnumField("联系人名字")]
ContactName = 17,
/// <summary>
/// 联系人电话
/// </summary>
[EnumField("联系人电话")]
ContactPhone = 18
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Common.Plugin;
namespace Mall.Common.Enum.TradePavilion
{
/// <summary>
/// 载体
/// </summary>
public enum SZTCarrierExportEnum
{
/// <summary>
/// 项目名称
/// </summary>
[EnumField("项目名称")]
CarrierName = 1,
/// <summary>
/// Logo
/// </summary>
[EnumField("Logo")]
Logo = 2,
/// <summary>
/// 载体视频
/// </summary>
[EnumField("载体视频")]
VideoUrl = 3,
/// <summary>
/// 项目位置
/// </summary>
[EnumField("项目位置")]
Address = 4,
/// <summary>
/// 开业状态
/// </summary>
[EnumField("开业状态")]
OpeningStatus = 5,
/// <summary>
/// 商业体量
/// </summary>
[EnumField("商业体量")]
CarrierSize = 6,
/// <summary>
/// 商业层数
/// </summary>
[EnumField("商业层数")]
LayersNum = 7,
/// <summary>
/// 车位数量
/// </summary>
[EnumField("车位数量")]
CarNum = 8,
/// <summary>
/// 经营面积
/// </summary>
[EnumField("经营面积")]
BuiltUpArea = 9,
/// <summary>
/// 可租赁面积
/// </summary>
[EnumField("可租赁面积")]
AreaRequirement = 10,
/// <summary>
/// 开业时间
/// </summary>
[EnumField("开业时间")]
OpenTime = 11,
/// <summary>
/// 人流量参数
/// </summary>
[EnumField("人流量参数")]
VisitorsFlowrate = 12,
/// <summary>
/// 水电气及配套
/// </summary>
[EnumField("水电气及配套")]
SupportingFacilities = 13,
/// <summary>
/// 管理公司及管理费
/// </summary>
[EnumField("管理公司及管理费")]
ManagementCompany = 14,
/// <summary>
/// 开发商
/// </summary>
[EnumField("开发商")]
Developers = 15,
/// <summary>
/// 物业构成
/// </summary>
[EnumField("物业构成")]
CategoryId = 16,
/// <summary>
/// 资产权属
/// </summary>
[EnumField("资产权属")]
Ascription = 17,
/// <summary>
/// 业态规划
/// </summary>
[EnumField("业态规划")]
CarrierPlan = 18,
/// <summary>
/// 目标招商业态及品牌需求
/// </summary>
[EnumField("目标招商业态及品牌需求")]
BrandDemand = 19,
/// <summary>
/// 项目发展及定位
/// </summary>
[EnumField("项目发展及定位")]
Location = 20,
/// <summary>
/// 联系人
/// </summary>
[EnumField("联系人")]
ContactName = 21,
/// <summary>
/// 联系电话
/// </summary>
[EnumField("联系电话")]
ContactPhone = 22,
}
/// <summary>
/// 楼宇下载项目
/// </summary>
public enum SZTBuildExportEnum
{
/// <summary>
/// 楼宇名称
/// </summary>
[EnumField("楼宇名称")]
Name = 1,
/// <summary>
/// Logo
/// </summary>
[EnumField("Logo")]
Logo = 2,
/// <summary>
/// 楼宇位置
/// </summary>
[EnumField("楼宇位置")]
Address = 3,
/// <summary>
/// 经纬度
/// </summary>
[EnumField("经纬度")]
LatAndLon = 4,
/// <summary>
/// 投运时间
/// </summary>
[EnumField("投运时间")]
OperationTime = 5,
/// <summary>
/// 楼宇等级
/// </summary>
[EnumField("楼宇等级")]
CategoryId = 6,
/// <summary>
/// 楼宇建筑面积
/// </summary>
[EnumField("楼宇建筑面积")]
Areas = 7,
/// <summary>
/// 楼栋数
/// </summary>
[EnumField("楼栋数")]
BuildingNum = 8,
/// <summary>
/// 楼层数
/// </summary>
[EnumField("楼层数")]
FloorNum = 9,
/// <summary>
/// 电梯数
/// </summary>
[EnumField("电梯数")]
ElevatorNum = 10,
/// <summary>
/// 层高
/// </summary>
[EnumField("层高")]
FloorHeight = 11,
/// <summary>
/// 开发商
/// </summary>
[EnumField("开发商")]
Developers = 12,
/// <summary>
/// 物业公司
/// </summary>
[EnumField("物业公司")]
PropertyComp = 13,
/// <summary>
/// 销售自持比例
/// </summary>
[EnumField("销售自持比例")]
SaleOrSelf = 14,
/// <summary>
/// 是否统一运营
/// </summary>
[EnumField("是否统一运营")]
IsAllOperate = 15,
/// <summary>
/// 建设时间
/// </summary>
[EnumField("建设时间")]
ConstructionTime = 16,
/// <summary>
/// 物业费
/// </summary>
[EnumField("物业费")]
PropertyFee = 17,
/// <summary>
/// 月租金
/// </summary>
[EnumField("月租金")]
RentFee = 18,
/// <summary>
/// 产业方向
/// </summary>
[EnumField("产业方向")]
IndustryDirection = 19,
/// <summary>
/// 目标企业招引需求
/// </summary>
[EnumField("目标企业招引需求")]
BrandDemand = 20,
/// <summary>
/// 其他需求
/// </summary>
[EnumField("其他需求")]
Other = 21,
/// <summary>
/// 联系人
/// </summary>
[EnumField("联系人")]
ContactName = 22,
/// <summary>
/// 联系电话
/// </summary>
[EnumField("联系电话")]
ContactPhone = 23,
}
}
...@@ -411,6 +411,32 @@ namespace Mall.Module.TradePavilion ...@@ -411,6 +411,32 @@ namespace Mall.Module.TradePavilion
return list; return list;
} }
/// <summary>
/// 获取活力楼宇分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Building_Extend> GetBuildingModule(RB_Building_Extend query)
{
var list = buildingRepository.GetBuildingRepository(query);
if (list != null && list.Any())
{
foreach (var item in list)
{
item.BannerList = new List<string>();
if (!string.IsNullOrWhiteSpace(item.Banner))
{
item.BannerList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(item.Banner);
}
}
}
return list;
}
/// <summary> /// <summary>
/// 新增修改活力楼宇 /// 新增修改活力楼宇
/// </summary> /// </summary>
...@@ -517,7 +543,7 @@ namespace Mall.Module.TradePavilion ...@@ -517,7 +543,7 @@ namespace Mall.Module.TradePavilion
public List<RB_EnterpriseServices_Extend> GetEnterpriseServicesPageModule(int pageIndex, int pageSize, out long rowsCount, RB_EnterpriseServices_Extend query) public List<RB_EnterpriseServices_Extend> GetEnterpriseServicesPageModule(int pageIndex, int pageSize, out long rowsCount, RB_EnterpriseServices_Extend query)
{ {
var list = enterpriseServicesRepository.GetEnterpriseServicesPageRepository(pageIndex, pageSize, out rowsCount, query); var list = enterpriseServicesRepository.GetEnterpriseServicesPageRepository(pageIndex, pageSize, out rowsCount, query);
if (list!=null&&list.Any()) if (list != null && list.Any())
{ {
foreach (var item in list) foreach (var item in list)
{ {
...@@ -527,11 +553,35 @@ namespace Mall.Module.TradePavilion ...@@ -527,11 +553,35 @@ namespace Mall.Module.TradePavilion
item.BannerList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(item.Banner); item.BannerList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(item.Banner);
} }
} }
} }
return list; return list;
} }
/// <summary>
/// 获取企业服务列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_EnterpriseServices_Extend> GetEnterpriseServicesModule(RB_EnterpriseServices_Extend query)
{
var list = enterpriseServicesRepository.GetEnterpriseServicesListRepository(query);
if (list != null && list.Any())
{
foreach (var item in list)
{
item.BannerList = new List<string>();
if (!string.IsNullOrWhiteSpace(item?.Banner ?? ""))
{
item.BannerList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(item.Banner);
}
}
}
return list;
}
/// <summary> /// <summary>
/// 新增修改企业服务 /// 新增修改企业服务
/// </summary> /// </summary>
......
...@@ -70,8 +70,9 @@ WHERE 1=1 ...@@ -70,8 +70,9 @@ WHERE 1=1
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS CategoryName SELECT A.*,IFNULL(B.ClassName,'') AS CategoryName,IFNULL(C.ClassName,'') AS ETypeName
FROM rb_enterpriseservices AS A LEFT JOIN rb_brandclass AS B ON A.CategoryId=B.ID FROM rb_enterpriseservices AS A LEFT JOIN rb_brandclass AS B ON A.CategoryId=B.ID
LEFT JOIN rb_brandclass AS C ON A.EType=C.ID
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_EnterpriseServices_Extend.Status), (int)DateStateEnum.Normal); builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_EnterpriseServices_Extend.Status), (int)DateStateEnum.Normal);
......
...@@ -3384,6 +3384,110 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3384,6 +3384,110 @@ namespace Mall.WebApi.Controllers.TradePavilion
} }
/// <summary>
/// 修改企业
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetEnterpriseServicesUpdate()
{
var userInfo = AppletUserInfo;
RB_EnterpriseServices_Extend query = JsonConvert.DeserializeObject<RB_EnterpriseServices_Extend>(RequestParm.msg.ToString());
if (query.ServiceId <= 0)
{
return ApiResult.ParamIsNull("请传递企业id");
}
if (string.IsNullOrWhiteSpace(query.Name))
{
return ApiResult.Failed("请输入企业名称");
}
if (query.CategoryId == 0)
{
return ApiResult.Failed("请选择企业类别");
}
if (query.BannerList != null && query.BannerList.Any())
{
query.Banner = JsonConvert.SerializeObject(query.BannerList);
}
else
{
query.Banner = "";
}
query.CreateDate = System.DateTime.Now;
query.MallBaseId = userInfo.MallBaseId;
query.TenantId = userInfo.TenantId;
query.Status = 0;
query.UpdateDate = System.DateTime.Now;
query.CreateBy = userInfo.UserId;
var oldModel = buildingCarrierModule.GetBrandEnterpriseModule(query.ServiceId);
if (oldModel == null) { return ApiResult.Failed("企业信息不存在"); }
if (oldModel.UserId != userInfo.UserId) { return ApiResult.Failed("无法修改此企业信息"); }
bool flag = buildingCarrierModule.SetEnterpriseServicesModule(query);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 修改楼宇
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetBuildingServicesUpdate()
{
var userInfo = AppletUserInfo;
RB_Building_Extend query = JsonConvert.DeserializeObject<RB_Building_Extend>(RequestParm.msg.ToString());
if (query.BuildId <= 0)
{
return ApiResult.ParamIsNull("请传递楼宇id");
}
if (string.IsNullOrWhiteSpace(query.Name))
{
return ApiResult.Failed("请输入楼宇名称");
}
if (query.CategoryId == 0)
{
return ApiResult.Failed("请选择楼宇类别");
}
if (query.BannerList != null && query.BannerList.Any())
{
query.Banner = JsonConvert.SerializeObject(query.BannerList);
}
else
{
query.Banner = "";
}
query.CreateDate = System.DateTime.Now;
query.MallBaseId = userInfo.MallBaseId;
query.TenantId = userInfo.TenantId;
query.Status = 0;
query.UpdateDate = System.DateTime.Now;
query.CreateBy = userInfo.UserId;
var oldModel = buildingCarrierModule.GetBuildingInfoModule(query.BuildId);
if (oldModel == null) { return ApiResult.Failed("楼宇信息不存在"); }
if (oldModel.UserId != userInfo.UserId) { return ApiResult.Failed("无法修改此楼宇信息"); }
bool flag = buildingCarrierModule.SetBuildingModule(query);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#region 入驻 #region 入驻
...@@ -3505,7 +3609,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3505,7 +3609,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
if (model.CategoryId == 0) if (model.CategoryId == 0)
{ {
return ApiResult.Failed("请选择楼宇等级"); return ApiResult.Failed("请选择企业类别");
} }
List<string> BannerList = new List<string>(); List<string> BannerList = new List<string>();
string bannerListStr = parms.GetStringValue("BannerList"); string bannerListStr = parms.GetStringValue("BannerList");
......
...@@ -3702,7 +3702,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3702,7 +3702,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
[HttpPost] [HttpPost]
public ApiResult GetBuildingCarrierExportEnumList() public ApiResult GetBuildingCarrierExportEnumList()
{ {
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BuildCarrierExportEnum)); var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTCarrierExportEnum));
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
Name = x.Key, Name = x.Key,
...@@ -3795,7 +3795,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3795,7 +3795,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
byte[] bytes = null; byte[] bytes = null;
string ExcelName = "载体列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; string ExcelName = "载体列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>(); List<ExcelDataSource> slist = new List<ExcelDataSource>();
var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BuildCarrierExportEnum)); var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTCarrierExportEnum));
ExcelDataSource header = new ExcelDataSource() ExcelDataSource header = new ExcelDataSource()
{ {
ExcelRows = new List<ExcelColumn>(30) ExcelRows = new List<ExcelColumn>(30)
...@@ -3847,6 +3847,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3847,6 +3847,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
}; };
foreach (var qitem in ExcelEnumIdList) foreach (var qitem in ExcelEnumIdList)
{ {
//
switch (qitem) switch (qitem)
{ {
case 1: case 1:
...@@ -3854,38 +3855,45 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -3854,38 +3855,45 @@ namespace Mall.WebApi.Controllers.TradePavilion
case 2: case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
case 3: case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Developers) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl ) { }); break;
case 4: case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Address) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Address) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value:(item.OpeningStatus == 1 ? "已开业" : "即将开业") ) { }); break;
case 6: case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: Common.ConvertHelper.FormatDate(item.OpenTime)) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.CarrierSize + "万平方米") { }); break;
case 7: case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.LayersNum ) { }); break;
case 8: case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Ascription) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.CarNum.ToString()) { }); break;
case 9: case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.CarrierSize.ToString()) + "万平方米") { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.BuiltUpArea.ToString("")) { }); break;
case 10: case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyComposition) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.AreaRequirement.ToString("")) { }); break;
case 11: case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Location) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: Common.ConvertHelper.FormatDate(item.OpenTime)) { }); break;
case 12: case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Crowd) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VisitorsFlowrate) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.VisitorsFlowrate) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.SupportingFacilities ) { }); break;
case 14: case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.LayersNum) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.ManagementCompany) { }); break;
case 15: case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: item.SupportingFacilities) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Developers) { }); break;
case 16: case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ManagementCompany) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName ) { }); break;
case 17: case 17:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandDemand) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Ascription) { }); break;
case 18: 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; datarow.ExcelRows.Add(new ExcelColumn(value: item.CarrierPlan) { }); break;
case 19:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandDemand) { }); break;
case 20:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Location) { }); break;
case 21:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactName) { }); break;
case 22:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactPhone) { }); break;
} }
} }
slist.Add(datarow); slist.Add(datarow);
...@@ -4175,7 +4183,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -4175,7 +4183,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
[HttpPost] [HttpPost]
public ApiResult GetBrandEnterpriseExportEnumList() public ApiResult GetBrandEnterpriseExportEnumList()
{ {
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BrandEnterpriseExportEnum)); var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTBusinessExportEnum));
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
Name = x.Key, Name = x.Key,
...@@ -4260,7 +4268,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -4260,7 +4268,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
{ {
byte[] bytes = null; byte[] bytes = null;
List<ExcelDataSource> slist = new List<ExcelDataSource>(); List<ExcelDataSource> slist = new List<ExcelDataSource>();
var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BrandEnterpriseExportEnum)); var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTBusinessExportEnum));
ExcelDataSource header = new ExcelDataSource() ExcelDataSource header = new ExcelDataSource()
{ {
ExcelRows = new List<ExcelColumn>(30) ExcelRows = new List<ExcelColumn>(30)
...@@ -4317,35 +4325,37 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -4317,35 +4325,37 @@ namespace Mall.WebApi.Controllers.TradePavilion
switch (qitem) switch (qitem)
{ {
case 1: case 1:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break;
case 3: case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
case 4: case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
case 5: case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 6: case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ShopNum.ToString()) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Introduce) { }); break;
case 7: case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.BuiltUpArea.ToString()) + "-" + (item.EndBuiltUpArea.ToString())) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value:item.ShopNum.ToString()) { }); break;
case 8: case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.AreaRequirement.ToString()) + "-" + (item.EndAreaRequirement.ToString())) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.BuiltUpArea.ToString() ) { }); break;
case 9: case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CustomerType) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.AreaRequirement.ToString()) { }); break;
case 10: case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandType) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.CustomerType) { }); break;
case 11: case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Introduce) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandType) { }); break;
case 12: case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.DevIntention) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Cooperation) { }); break;
case 13: case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyDemand) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyDemand) { }); break;
case 14: case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Cooperation) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Complementary) { }); break; datarow.ExcelRows.Add(new ExcelColumn(value: item.Complementary) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactName) { }); break;
case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactPhone) { }); break;
} }
} }
slist.Add(datarow); slist.Add(datarow);
......
using Mall.Common.API; using Mall.CacheManager.Base;
using Mall.Common.API;
using Mall.Common.Plugin; using Mall.Common.Plugin;
using Mall.Model.Extend.TradePavilion; using Mall.Model.Extend.TradePavilion;
using Mall.Module.TradePavilion; using Mall.Module.TradePavilion;
using Mall.WebApi.Filter; using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Net;
using System.Threading.Tasks;
namespace Mall.WebApi.Controllers.TradePavilion namespace Mall.WebApi.Controllers.TradePavilion
{ {
...@@ -18,11 +23,11 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -18,11 +23,11 @@ namespace Mall.WebApi.Controllers.TradePavilion
[EnableCors("AllowCors")] [EnableCors("AllowCors")]
public class YBTradeController : BaseController public class YBTradeController : BaseController
{ {
private readonly BuildingCarrierModule buildingCarrierModule = new BuildingCarrierModule(); private readonly BuildingCarrierModule buildingCarrierModule = new BuildingCarrierModule();
RedisHelper redisHelper = new RedisHelper();
/// <summary> /// <summary>
/// 获取活力楼宇分页列表 /// 获取活力楼宇分页列表
...@@ -41,11 +46,11 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -41,11 +46,11 @@ namespace Mall.WebApi.Controllers.TradePavilion
{ {
Name = parms.GetStringValue("Name"), Name = parms.GetStringValue("Name"),
CategoryId = parms.GetInt("CategoryId"), CategoryId = parms.GetInt("CategoryId"),
Address=parms.GetStringValue("Address"), Address = parms.GetStringValue("Address"),
MallBaseId = RequestParm.MallBaseId, MallBaseId = RequestParm.MallBaseId,
TenantId = RequestParm.TenantId, TenantId = RequestParm.TenantId,
}; };
List<object> list = new List<object>(); List<object> list = new List<object>();
var dataList = buildingCarrierModule.GetBuildingPageModule(pageModel.pageIndex, pageModel.pageSize, out long rowsCount, query); var dataList = buildingCarrierModule.GetBuildingPageModule(pageModel.pageIndex, pageModel.pageSize, out long rowsCount, query);
foreach (var item in dataList) foreach (var item in dataList)
...@@ -55,12 +60,12 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -55,12 +60,12 @@ namespace Mall.WebApi.Controllers.TradePavilion
{ {
try try
{ {
List<string> imgList=Common.Plugin.JsonHelper.DeserializeObject<List<string>>(item.Banner); List<string> imgList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(item.Banner);
CoverImg = imgList?.FirstOrDefault() ?? ""; CoverImg = imgList?.FirstOrDefault() ?? "";
} }
catch catch
{ {
} }
} }
list.Add(new list.Add(new
...@@ -74,7 +79,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -74,7 +79,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
item.CategoryId, item.CategoryId,
item.CategoryName, item.CategoryName,
item.Areas, item.Areas,
item.BuildingNum, item.BuildingNum,
item.FloorNum, item.FloorNum,
item.ElevatorNum, item.ElevatorNum,
item.FloorHeight, item.FloorHeight,
...@@ -110,27 +115,27 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -110,27 +115,27 @@ namespace Mall.WebApi.Controllers.TradePavilion
{ {
BuildId = parms.GetInt("BuildId"), BuildId = parms.GetInt("BuildId"),
Name = parms.GetStringValue("Name"), Name = parms.GetStringValue("Name"),
Address=parms.GetStringValue("Address"), Address = parms.GetStringValue("Address"),
LatAndLon=parms.GetStringValue("LatAndLon"), LatAndLon = parms.GetStringValue("LatAndLon"),
OperationTime=parms.GetStringValue("OperationTime"), OperationTime = parms.GetStringValue("OperationTime"),
CategoryId=parms.GetInt("CategoryId"), CategoryId = parms.GetInt("CategoryId"),
Areas=parms.GetStringValue("Areas"), Areas = parms.GetStringValue("Areas"),
BuildingNum=parms.GetStringValue("BuildingNum"), BuildingNum = parms.GetStringValue("BuildingNum"),
FloorNum=parms.GetStringValue("FloorNum"), FloorNum = parms.GetStringValue("FloorNum"),
ElevatorNum=parms.GetStringValue("ElevatorNum"), ElevatorNum = parms.GetStringValue("ElevatorNum"),
FloorHeight=parms.GetDecimal("FloorHeight"), FloorHeight = parms.GetDecimal("FloorHeight"),
Developers=parms.GetStringValue("Developers"), Developers = parms.GetStringValue("Developers"),
PropertyComp=parms.GetStringValue("PropertyComp"), PropertyComp = parms.GetStringValue("PropertyComp"),
SaleOrSelf=parms.GetStringValue("SaleOrSelf"), SaleOrSelf = parms.GetStringValue("SaleOrSelf"),
IsAllOperate=parms.GetInt("IsAllOperate"), IsAllOperate = parms.GetInt("IsAllOperate"),
ConstructionTime=parms.GetStringValue("ConstructionTime"), ConstructionTime = parms.GetStringValue("ConstructionTime"),
PropertyFee=parms.GetDecimal("PropertyFee"), PropertyFee = parms.GetDecimal("PropertyFee"),
RentFee=parms.GetDecimal("RentFee"), RentFee = parms.GetDecimal("RentFee"),
IndustryDirection=parms.GetStringValue("IndustryDirection"), IndustryDirection = parms.GetStringValue("IndustryDirection"),
BrandDemand=parms.GetStringValue("BrandDemand"), BrandDemand = parms.GetStringValue("BrandDemand"),
Other=parms.GetStringValue("Other"), Other = parms.GetStringValue("Other"),
ContactName=parms.GetStringValue("ContactName"), ContactName = parms.GetStringValue("ContactName"),
ContactPhone=parms.GetStringValue("ContactPhone"), ContactPhone = parms.GetStringValue("ContactPhone"),
}; };
List<string> bannerList = new List<string>(); List<string> bannerList = new List<string>();
string BannerStr = parms.GetStringValue("Banner"); string BannerStr = parms.GetStringValue("Banner");
...@@ -146,7 +151,7 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -146,7 +151,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
} }
} }
extModel.Banner = Common.Plugin.JsonHelper.Serialize(bannerList); extModel.Banner = Common.Plugin.JsonHelper.Serialize(bannerList);
if (extModel.BuildId == 0) if (extModel.BuildId == 0)
{ {
extModel.CreateBy = RequestParm.TenantId; extModel.CreateBy = RequestParm.TenantId;
...@@ -238,6 +243,228 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -238,6 +243,228 @@ namespace Mall.WebApi.Controllers.TradePavilion
return ApiResult.Success(data: extModel); return ApiResult.Success(data: extModel);
} }
/// <summary>
/// 获取【商载通】载体、楼宇下载枚举列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetBuildingExportEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTCarrierExportEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 检查【商再通】楼宇文件是否存在
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> CheckBuildingFile()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
RB_Building_Extend query = new RB_Building_Extend()
{
Name = parms.GetStringValue("Name"),
CategoryId = parms.GetInt("CategoryId"),
Address = parms.GetStringValue("Address"),
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(() =>
{
GetBuildingListToExcel(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 GetBuildingListToExcel(RB_Building_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.SZTBuildExportEnum));
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.GetBuildingModule(demodel);
List<Action> actions = new List<Action>();
if (list != null && list.Count > 0)
{
//判断是否下载图片
if (ExcelEnumIdList.Contains(2))
{
foreach (var item in list)
{
if (item.BannerList != null && item.BannerList.Any())
{
actions.Add(new Action(() =>
{
DownLoadUrl(item.BannerList.FirstOrDefault(), 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.Name) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BannerList?.FirstOrDefault() ?? "", isPic: 1) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Address) { }); break;
case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.LatAndLon) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.OperationTime ) { }); break;
case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Areas) { }); break;
case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BuildingNum) { }); break;
case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: item.FloorNum) { }); break;
case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ElevatorNum) { }); break;
case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.FloorHeight.ToString("")) { }); break;
case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Developers) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyComp) { }); break;
case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.SaleOrSelf) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsAllOperate == 1 ? "是" : "否")) { }); break;
case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ConstructionTime) { }); break;
case 17:
datarow.ExcelRows.Add(new ExcelColumn(value: item.PropertyFee.ToString("")) { }); break;
case 18:
datarow.ExcelRows.Add(new ExcelColumn(value: item.RentFee.ToString("")) { }); break;
case 19:
datarow.ExcelRows.Add(new ExcelColumn(value: item.IndustryDirection) { }); break;
case 20:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandDemand) { }); break;
case 21:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Other) { }); break;
case 22:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactName) { }); break;
case 23:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactPhone) { }); 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>
///// 获取【商载通】载体、楼宇下载枚举列表 ///// 获取【商载通】载体、楼宇下载枚举列表
///// </summary> ///// </summary>
...@@ -649,6 +876,246 @@ namespace Mall.WebApi.Controllers.TradePavilion ...@@ -649,6 +876,246 @@ namespace Mall.WebApi.Controllers.TradePavilion
} }
/// <summary>
/// 获取【商载通】载体、楼宇下载枚举列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetEnterpriseServicesExportEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.SZTBrandServicesExportEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
/// <summary>
/// 检查【商再通】企业服务文件是否存在
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<ApiResult> CheckEnterpriseServicesFile()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
RB_EnterpriseServices_Extend query = new RB_EnterpriseServices_Extend()
{
Name = parms.GetStringValue("Name"),
CategoryId = parms.GetInt("CategoryId"),
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(() =>
{
GetEnterpriseServicesListToExcel(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 GetEnterpriseServicesListToExcel(RB_EnterpriseServices_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.SZTBrandServicesExportEnum));
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.GetEnterpriseServicesModule(demodel);
List<Action> actions = new List<Action>();
if (list != null && list.Count > 0)
{
//判断是否下载图片
if (ExcelEnumIdList.Contains(2))
{
foreach (var item in list)
{
if (item.BannerList != null && item.BannerList.Any())
{
actions.Add(new Action(() =>
{
DownLoadUrl(item.BannerList.FirstOrDefault(), 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.Name) { }); break;
case 2:
datarow.ExcelRows.Add(new ExcelColumn(value: item.BannerList?.FirstOrDefault() ?? "", isPic: 1) { }); break;
case 3:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Introduction) { }); break;
case 4:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ETypeName) { }); break;
case 5:
datarow.ExcelRows.Add(new ExcelColumn(value: item.CategoryName) { }); break;
case 6:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Address) { }); break;
case 7:
datarow.ExcelRows.Add(new ExcelColumn(value: item.LatAndLon) { }); break;
case 8:
datarow.ExcelRows.Add(new ExcelColumn(value: item.OperationTime) { }); break;
case 9:
datarow.ExcelRows.Add(new ExcelColumn(value: item.DevIntention) { }); break;
case 10:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Renovation) { }); break;
case 11:
datarow.ExcelRows.Add(new ExcelColumn(value: item.Payment) { }); break;
case 12:
datarow.ExcelRows.Add(new ExcelColumn(value: item.HandoverDate) { }); break;
case 13:
datarow.ExcelRows.Add(new ExcelColumn(value: item.IntentionalFloor) { }); break;
case 14:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ElevatorNum) { }); break;
case 15:
datarow.ExcelRows.Add(new ExcelColumn(value: (item.PropertyFee.ToString(""))) { }); break;
case 16:
datarow.ExcelRows.Add(new ExcelColumn(value: item.RentFee.ToString("")) { }); break;
case 17:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactName) { }); break;
case 18:
datarow.ExcelRows.Add(new ExcelColumn(value: item.ContactPhone) { }); 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>
private void DownLoadUrl(string url, string savePath)
{
Uri uri = new Uri(url);
string path = uri.AbsolutePath;
int lastSlashIndex = path.LastIndexOf('/');
string fileName = path.Substring(lastSlashIndex + 1);
string newFilePath = savePath + fileName;
string logStr = string.Format("{0} 开始下载 Url_{1} 文件 ", DateTime.Now.ToString("MM-dd HH:mm:ss fff"), url);
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 1000 * 60 * 20; // 10分钟超时时间
using (WebResponse response = request.GetResponse())
using (Stream responseStream = response.GetResponseStream())
using (Stream fileStream = new FileStream(newFilePath, FileMode.Create, FileAccess.Write, FileShare.None))
{
responseStream.CopyTo(fileStream);
}
}
catch (Exception ex)
{
logStr = string.Format("{0} 下载 Url_{1} 异常:{2} message:{3}", DateTime.Now.ToString("MM-dd HH:mm:ss fff"), url, ex.StackTrace, ex.Message);
LogHelper.WriteInfo(logStr);
}
}
///// <summary> ///// <summary>
///// 获取品牌下载枚举列表 ///// 获取品牌下载枚举列表
///// </summary> ///// </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