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
16c26e4e
Commit
16c26e4e
authored
Dec 06, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口修改
parent
45c8eeb3
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
757 additions
and
8 deletions
+757
-8
BusinessExportEnum.cs
Mall.Common/Enum/TradePavilion/BusinessExportEnum.cs
+89
-0
CarrierExportEnum.cs
Mall.Common/Enum/TradePavilion/CarrierExportEnum.cs
+115
-0
BuildingCarrierModule.cs
Mall.Module.TradePavilion/BuildingCarrierModule.cs
+37
-1
RB_Brand_EnterpriseRepository.cs
...Repository/TradePavilion/RB_Brand_EnterpriseRepository.cs
+46
-0
RB_Building_CarrierRepository.cs
...Repository/TradePavilion/RB_Building_CarrierRepository.cs
+44
-0
AppletTradeController.cs
...WebApi/Controllers/TradePavilion/AppletTradeController.cs
+4
-6
TradeController.cs
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
+422
-1
No files found.
Mall.Common/Enum/TradePavilion/BusinessExportEnum.cs
View file @
16c26e4e
...
...
@@ -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
}
}
Mall.Common/Enum/TradePavilion/CarrierExportEnum.cs
View file @
16c26e4e
...
...
@@ -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
,
}
}
Mall.Module.TradePavilion/BuildingCarrierModule.cs
View file @
16c26e4e
...
...
@@ -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>
...
...
Mall.Repository/TradePavilion/RB_Brand_EnterpriseRepository.cs
View file @
16c26e4e
...
...
@@ -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
();
}
}
}
Mall.Repository/TradePavilion/RB_Building_CarrierRepository.cs
View file @
16c26e4e
...
...
@@ -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
();
}
}
...
...
Mall.WebApi/Controllers/TradePavilion/AppletTradeController.cs
View file @
16c26e4e
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
{
...
...
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
View file @
16c26e4e
...
...
@@ -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
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