Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mall.oytour.com
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
mall.oytour.com
Commits
bbf3b6b5
Commit
bbf3b6b5
authored
Dec 12, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/Kui2/mall.oytour.com
parents
fd37ed3f
43bb3899
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1199 additions
and
69 deletions
+1199
-69
SZTBusinessExportEnum.cs
Mall.Common/Enum/TradePavilion/SZTBusinessExportEnum.cs
+207
-0
SZTCarrierExportEnum.cs
Mall.Common/Enum/TradePavilion/SZTCarrierExportEnum.cs
+291
-0
BuildingCarrierModule.cs
Mall.Module.TradePavilion/BuildingCarrierModule.cs
+52
-2
RB_EnterpriseServicesRepository.cs
...pository/TradePavilion/RB_EnterpriseServicesRepository.cs
+2
-1
AppletTradeController.cs
...WebApi/Controllers/TradePavilion/AppletTradeController.cs
+105
-1
TradeController.cs
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
+44
-34
YBTradeController.cs
Mall.WebApi/Controllers/TradePavilion/YBTradeController.cs
+498
-31
No files found.
Mall.Common/Enum/TradePavilion/SZTBusinessExportEnum.cs
0 → 100644
View file @
bbf3b6b5
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
}
}
Mall.Common/Enum/TradePavilion/SZTCarrierExportEnum.cs
0 → 100644
View file @
bbf3b6b5
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
,
}
}
Mall.Module.TradePavilion/BuildingCarrierModule.cs
View file @
bbf3b6b5
...
...
@@ -411,6 +411,32 @@ namespace Mall.Module.TradePavilion
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>
...
...
@@ -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
)
{
var
list
=
enterpriseServicesRepository
.
GetEnterpriseServicesPageRepository
(
pageIndex
,
pageSize
,
out
rowsCount
,
query
);
if
(
list
!=
null
&&
list
.
Any
())
if
(
list
!=
null
&&
list
.
Any
())
{
foreach
(
var
item
in
list
)
{
...
...
@@ -527,11 +553,35 @@ namespace Mall.Module.TradePavilion
item
.
BannerList
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
List
<
string
>>(
item
.
Banner
);
}
}
}
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>
...
...
Mall.Repository/TradePavilion/RB_EnterpriseServicesRepository.cs
View file @
bbf3b6b5
...
...
@@ -70,8 +70,9 @@ WHERE 1=1
DynamicParameters
parameters
=
new
DynamicParameters
();
StringBuilder
builder
=
new
StringBuilder
();
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
LEFT JOIN rb_brandclass AS C ON A.EType=C.ID
WHERE 1=1
"
);
builder
.
AppendFormat
(
@" AND A.{0}={1} "
,
nameof
(
RB_EnterpriseServices_Extend
.
Status
),
(
int
)
DateStateEnum
.
Normal
);
...
...
Mall.WebApi/Controllers/TradePavilion/AppletTradeController.cs
View file @
bbf3b6b5
...
...
@@ -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
入驻
...
...
@@ -3505,7 +3609,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
if
(
model
.
CategoryId
==
0
)
{
return
ApiResult
.
Failed
(
"请选择
楼宇等级
"
);
return
ApiResult
.
Failed
(
"请选择
企业类别
"
);
}
List
<
string
>
BannerList
=
new
List
<
string
>();
string
bannerListStr
=
parms
.
GetStringValue
(
"BannerList"
);
...
...
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
View file @
bbf3b6b5
...
...
@@ -3702,7 +3702,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
[
HttpPost
]
public
ApiResult
GetBuildingCarrierExportEnumList
()
{
var
list
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
Build
CarrierExportEnum
));
var
list
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
SZT
CarrierExportEnum
));
return
ApiResult
.
Success
(
""
,
list
.
Select
(
x
=>
new
{
Name
=
x
.
Key
,
...
...
@@ -3795,7 +3795,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
byte
[]
bytes
=
null
;
string
ExcelName
=
"载体列表"
+
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmss"
)
+
".xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
Build
CarrierExportEnum
));
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
SZT
CarrierExportEnum
));
ExcelDataSource
header
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
...
...
@@ -3847,6 +3847,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
};
foreach
(
var
qitem
in
ExcelEnumIdList
)
{
//
switch
(
qitem
)
{
case
1
:
...
...
@@ -3854,38 +3855,45 @@ namespace Mall.WebApi.Controllers.TradePavilion
case
2
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Logo
,
isPic
:
1
)
{
});
break
;
case
3
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Developers
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
VideoUrl
)
{
});
break
;
case
4
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
VideoUrl
)
{
});
break
;
case
5
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Address
)
{
});
break
;
case
5
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:(
item
.
OpeningStatus
==
1
?
"已开业"
:
"即将开业"
)
)
{
});
break
;
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
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CategoryName
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
LayersNum
)
{
});
break
;
case
8
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Ascription
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CarNum
.
ToString
()
)
{
});
break
;
case
9
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
CarrierSize
.
ToString
())
+
"万平方米"
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BuiltUpArea
.
ToString
(
""
)
)
{
});
break
;
case
10
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
PropertyComposition
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
AreaRequirement
.
ToString
(
""
)
)
{
});
break
;
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
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Crowd
)
{
});
break
;
case
13
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
VisitorsFlowrate
)
{
});
break
;
case
13
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
SupportingFacilities
)
{
});
break
;
case
14
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
LayersNum
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ManagementCompany
)
{
});
break
;
case
15
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
SupportingFacilitie
s
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Developer
s
)
{
});
break
;
case
16
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ManagementCompany
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CategoryName
)
{
});
break
;
case
17
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BrandDemand
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Ascription
)
{
});
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
;
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
);
...
...
@@ -4175,7 +4183,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
[
HttpPost
]
public
ApiResult
GetBrandEnterpriseExportEnumList
()
{
var
list
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
BrandEnterprise
ExportEnum
));
var
list
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
SZTBusiness
ExportEnum
));
return
ApiResult
.
Success
(
""
,
list
.
Select
(
x
=>
new
{
Name
=
x
.
Key
,
...
...
@@ -4260,7 +4268,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
{
byte
[]
bytes
=
null
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
BrandEnterprise
ExportEnum
));
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
SZTBusiness
ExportEnum
));
ExcelDataSource
header
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
...
...
@@ -4317,35 +4325,37 @@ namespace Mall.WebApi.Controllers.TradePavilion
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
:
case
2
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BrandName
)
{
});
break
;
case
3
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
VideoUrl
)
{
});
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
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CategoryName
)
{
});
break
;
case
6
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ShopNum
.
ToString
()
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Introduce
)
{
});
break
;
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
:
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
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CustomerType
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
AreaRequirement
.
ToString
()
)
{
});
break
;
case
10
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Brand
Type
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Customer
Type
)
{
});
break
;
case
11
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Introduc
e
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BrandTyp
e
)
{
});
break
;
case
12
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
DevInten
tion
)
{
});
break
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Coopera
tion
)
{
});
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
;
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
);
...
...
Mall.WebApi/Controllers/TradePavilion/YBTradeController.cs
View file @
bbf3b6b5
using
Mall.Common.API
;
using
Mall.CacheManager.Base
;
using
Mall.Common.API
;
using
Mall.Common.Plugin
;
using
Mall.Model.Extend.TradePavilion
;
using
Mall.Module.TradePavilion
;
using
Mall.WebApi.Filter
;
using
Microsoft.AspNetCore.Cors
;
using
Microsoft.AspNetCore.Mvc
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Linq
;
using
System.Net
;
using
System.Threading.Tasks
;
namespace
Mall.WebApi.Controllers.TradePavilion
{
...
...
@@ -18,11 +23,11 @@ namespace Mall.WebApi.Controllers.TradePavilion
[
EnableCors
(
"AllowCors"
)]
public
class
YBTradeController
:
BaseController
{
private
readonly
BuildingCarrierModule
buildingCarrierModule
=
new
BuildingCarrierModule
();
RedisHelper
redisHelper
=
new
RedisHelper
();
/// <summary>
/// 获取活力楼宇分页列表
...
...
@@ -41,11 +46,11 @@ namespace Mall.WebApi.Controllers.TradePavilion
{
Name
=
parms
.
GetStringValue
(
"Name"
),
CategoryId
=
parms
.
GetInt
(
"CategoryId"
),
Address
=
parms
.
GetStringValue
(
"Address"
),
Address
=
parms
.
GetStringValue
(
"Address"
),
MallBaseId
=
RequestParm
.
MallBaseId
,
TenantId
=
RequestParm
.
TenantId
,
};
List
<
object
>
list
=
new
List
<
object
>();
var
dataList
=
buildingCarrierModule
.
GetBuildingPageModule
(
pageModel
.
pageIndex
,
pageModel
.
pageSize
,
out
long
rowsCount
,
query
);
foreach
(
var
item
in
dataList
)
...
...
@@ -55,12 +60,12 @@ namespace Mall.WebApi.Controllers.TradePavilion
{
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
()
??
""
;
}
catch
{
{
}
}
list
.
Add
(
new
...
...
@@ -74,7 +79,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
item
.
CategoryId
,
item
.
CategoryName
,
item
.
Areas
,
item
.
BuildingNum
,
item
.
BuildingNum
,
item
.
FloorNum
,
item
.
ElevatorNum
,
item
.
FloorHeight
,
...
...
@@ -110,27 +115,27 @@ namespace Mall.WebApi.Controllers.TradePavilion
{
BuildId
=
parms
.
GetInt
(
"BuildId"
),
Name
=
parms
.
GetStringValue
(
"Name"
),
Address
=
parms
.
GetStringValue
(
"Address"
),
LatAndLon
=
parms
.
GetStringValue
(
"LatAndLon"
),
OperationTime
=
parms
.
GetStringValue
(
"OperationTime"
),
CategoryId
=
parms
.
GetInt
(
"CategoryId"
),
Areas
=
parms
.
GetStringValue
(
"Areas"
),
BuildingNum
=
parms
.
GetStringValue
(
"BuildingNum"
),
FloorNum
=
parms
.
GetStringValue
(
"FloorNum"
),
ElevatorNum
=
parms
.
GetStringValue
(
"ElevatorNum"
),
FloorHeight
=
parms
.
GetDecimal
(
"FloorHeight"
),
Developers
=
parms
.
GetStringValue
(
"Developers"
),
PropertyComp
=
parms
.
GetStringValue
(
"PropertyComp"
),
SaleOrSelf
=
parms
.
GetStringValue
(
"SaleOrSelf"
),
IsAllOperate
=
parms
.
GetInt
(
"IsAllOperate"
),
ConstructionTime
=
parms
.
GetStringValue
(
"ConstructionTime"
),
PropertyFee
=
parms
.
GetDecimal
(
"PropertyFee"
),
RentFee
=
parms
.
GetDecimal
(
"RentFee"
),
IndustryDirection
=
parms
.
GetStringValue
(
"IndustryDirection"
),
BrandDemand
=
parms
.
GetStringValue
(
"BrandDemand"
),
Other
=
parms
.
GetStringValue
(
"Other"
),
ContactName
=
parms
.
GetStringValue
(
"ContactName"
),
ContactPhone
=
parms
.
GetStringValue
(
"ContactPhone"
),
Address
=
parms
.
GetStringValue
(
"Address"
),
LatAndLon
=
parms
.
GetStringValue
(
"LatAndLon"
),
OperationTime
=
parms
.
GetStringValue
(
"OperationTime"
),
CategoryId
=
parms
.
GetInt
(
"CategoryId"
),
Areas
=
parms
.
GetStringValue
(
"Areas"
),
BuildingNum
=
parms
.
GetStringValue
(
"BuildingNum"
),
FloorNum
=
parms
.
GetStringValue
(
"FloorNum"
),
ElevatorNum
=
parms
.
GetStringValue
(
"ElevatorNum"
),
FloorHeight
=
parms
.
GetDecimal
(
"FloorHeight"
),
Developers
=
parms
.
GetStringValue
(
"Developers"
),
PropertyComp
=
parms
.
GetStringValue
(
"PropertyComp"
),
SaleOrSelf
=
parms
.
GetStringValue
(
"SaleOrSelf"
),
IsAllOperate
=
parms
.
GetInt
(
"IsAllOperate"
),
ConstructionTime
=
parms
.
GetStringValue
(
"ConstructionTime"
),
PropertyFee
=
parms
.
GetDecimal
(
"PropertyFee"
),
RentFee
=
parms
.
GetDecimal
(
"RentFee"
),
IndustryDirection
=
parms
.
GetStringValue
(
"IndustryDirection"
),
BrandDemand
=
parms
.
GetStringValue
(
"BrandDemand"
),
Other
=
parms
.
GetStringValue
(
"Other"
),
ContactName
=
parms
.
GetStringValue
(
"ContactName"
),
ContactPhone
=
parms
.
GetStringValue
(
"ContactPhone"
),
};
List
<
string
>
bannerList
=
new
List
<
string
>();
string
BannerStr
=
parms
.
GetStringValue
(
"Banner"
);
...
...
@@ -146,7 +151,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
}
extModel
.
Banner
=
Common
.
Plugin
.
JsonHelper
.
Serialize
(
bannerList
);
if
(
extModel
.
BuildId
==
0
)
{
extModel
.
CreateBy
=
RequestParm
.
TenantId
;
...
...
@@ -238,6 +243,228 @@ namespace Mall.WebApi.Controllers.TradePavilion
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>
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment