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
20ad23ac
Commit
20ad23ac
authored
Aug 06, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
111
parent
2231c82f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
205 additions
and
128 deletions
+205
-128
Config.cs
Mall.Common/Config.cs
+23
-0
TradeController.cs
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
+182
-128
No files found.
Mall.Common/Config.cs
View file @
20ad23ac
...
...
@@ -21,6 +21,7 @@ using System.Threading.Tasks;
using
System.Web
;
using
Microsoft.Extensions.Hosting
;
using
System.Drawing
;
using
System.Security.Cryptography
;
namespace
Mall.Common
{
...
...
@@ -833,5 +834,27 @@ namespace Mall.Common
}
}
/// <summary>
/// 获取hash值
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public
static
string
GetHash
(
string
value
)
{
string
result
=
""
;
using
(
var
md5Hash
=
MD5
.
Create
())
{
byte
[]
data
=
md5Hash
.
ComputeHash
(
Encoding
.
UTF8
.
GetBytes
(
value
));
StringBuilder
builder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
data
.
Length
;
i
++)
{
builder
.
Append
(
data
[
i
].
ToString
(
"x2"
));
//使用小写字母表示每个字节的十六进制值
}
result
=
builder
.
ToString
();
}
return
result
;
}
}
}
\ No newline at end of file
Mall.WebApi/Controllers/TradePavilion/TradeController.cs
View file @
20ad23ac
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Specialized
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Web
;
using
Dnc.Api.Throttle
;
using
Mall.CacheManager.Base
;
using
Mall.CacheManager.User
;
using
Mall.Common.API
;
using
Mall.Common.Enum
;
...
...
@@ -83,6 +87,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
/// </summary>
private
readonly
FirstShopWishModule
firstShopWishModule
=
new
FirstShopWishModule
();
RedisHelper
redisHelper
=
new
RedisHelper
();
#
region
联系人管理
...
...
@@ -2109,13 +2114,12 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
/// <summary>
///
品牌下载
///
检查文件是否存在
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
FileContentResult
GetBrandListToExcel
()
public
async
Task
<
ApiResult
>
CheckBrandFile
()
{
JObject
parms
=
JObject
.
Parse
(
RequestParm
.
msg
.
ToString
());
var
demodel
=
new
RB_Brand_Extend
()
...
...
@@ -2134,143 +2138,193 @@ namespace Mall.WebApi.Controllers.TradePavilion
};
demodel
.
MallBaseId
=
RequestParm
.
MallBaseId
;
demodel
.
TenantId
=
RequestParm
.
TenantId
;
try
{
List
<
int
>
ExcelEnumIds
=
JsonConvert
.
DeserializeObject
<
List
<
int
>>(
parms
.
GetStringValue
(
"ExcelEnumIds"
));
demodel
.
ExcelEnumIds
=
ExcelEnumIds
;
if
(
ExcelEnumIds
==
null
||
!
ExcelEnumIds
.
Any
())
{
demodel
.
ExcelEnumIds
=
new
List
<
int
>();
for
(
int
i
=
1
;
i
<=
23
;
i
++)
{
demodel
.
ExcelEnumIds
.
Add
(
i
);
}
}
}
catch
List
<
int
>
ExcelEnumIds
=
JsonConvert
.
DeserializeObject
<
List
<
int
>>(
parms
.
GetStringValue
(
"ExcelEnumIds"
));
string
hashKey
=
Common
.
Config
.
GetHash
(
Common
.
Plugin
.
JsonHelper
.
Serialize
(
demodel
));
string
fileName
=
hashKey
+
".xls"
;
string
key
=
"SD_"
+
hashKey
;
string
redisValue
=
redisHelper
.
Get
(
key
);
string
filePath
=
Path
.
Combine
(
Directory
.
GetCurrentDirectory
(),
"upfile/Brand"
);
if
(
System
.
IO
.
Directory
.
Exists
(
filePath
)
==
false
)
//如果不存在就创建file文件夹
{
demodel
.
ExcelEnumIds
=
new
List
<
int
>();
for
(
int
i
=
1
;
i
<=
23
;
i
++)
{
demodel
.
ExcelEnumIds
.
Add
(
i
);
}
System
.
IO
.
Directory
.
CreateDirectory
(
filePath
);
}
string
ExcelName
=
"品牌列表"
+
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmss"
)
+
".xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
if
(
demodel
.
ExcelEnumIds
==
null
||
!
demodel
.
ExcelEnumIds
.
Any
())
string
tempPath
=
filePath
+
"\\"
+
hashKey
+
"\\"
;
//如果不存在就创建file文件夹
if
(!
System
.
IO
.
Directory
.
Exists
(
tempPath
))
{
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
ExcelName
);
System
.
IO
.
Directory
.
CreateDirectory
(
tempPath
);
}
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
Common
.
Enum
.
TradePavilion
.
BusinessExportEnum
))
;
ExcelDataSource
header
=
new
ExcelDataSource
(
)
string
fileUrl
=
tempPath
+
fileName
;
if
(
string
.
IsNullOrEmpty
(
redisValue
)
)
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
redisValue
=
redisHelper
.
Get
(
key
);
if
(
string
.
IsNullOrEmpty
(
redisValue
))
{
new
ExcelColumn
(
value
:
"序号"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
}
redisHelper
.
StringSet
(
key
,
fileName
,
TimeSpan
.
FromMinutes
(
30
));
GetBrandListToExcel
(
demodel
,
ExcelEnumIds
,
fileUrl
);
}
};
foreach
(
var
item
in
demodel
.
ExcelEnumIds
)
{
var
Name
=
Enumlist
.
Where
(
x
=>
x
.
Value
==
item
.
ToString
()).
FirstOrDefault
().
Key
??
""
;
header
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
Name
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
}
slist
.
Add
(
header
);
try
return
await
Task
.
Run
<
ApiResult
>(()
=>
{
var
list
=
carrierModule
.
GetBrandListByWhere
(
demodel
);
#
region
组装数据
int
Num
=
0
;
foreach
(
var
item
in
list
)
ApiResult
apiResult
=
new
ApiResult
()
{
Num
++;
ExcelDataSource
datarow
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
Num
.
ToString
()){
},
}
};
foreach
(
var
qitem
in
demodel
.
ExcelEnumIds
)
{
switch
(
qitem
)
{
case
1
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ClassName
)
{
});
break
;
case
2
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
FullBrandName
)
{
});
break
;
case
4
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Logo
,
isPic
:
1
)
{
});
break
;
case
3
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BrandName
)
{
});
break
;
case
5
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
VideoUrl
)
{
});
break
;
case
6
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ShopNum
.
ToString
())
{
});
break
;
case
7
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
BuiltUpArea
.
ToString
())
+
"-"
+
(
item
.
EndBuiltUpArea
.
ToString
()))
{
});
break
;
case
8
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
AreaRequirement
.
ToString
())
+
"-"
+
(
item
.
EndAreaRequirement
.
ToString
()))
{
});
break
;
case
9
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CustomerType
)
{
});
break
;
case
10
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BrandType
)
{
});
break
;
case
11
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
StoreExpansion
)
{
});
break
;
case
12
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
((
item
.
ProjectType
.
HasValue
&&
item
.
ProjectType
.
Value
>
0
)
?
item
.
ProjectType
.
GetEnumName
()
:
""
))
{
});
break
;
case
13
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
IsShopSize
==
1
?
(
"有"
+
(!
string
.
IsNullOrWhiteSpace
(
item
.
ShopSize
)
?
item
.
ShopSize
:
""
))
:
"无"
))
{
});
break
;
case
14
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
RanQi
==
1
?
(
"有"
+
(!
string
.
IsNullOrWhiteSpace
(
item
.
RanQiBZ
)
?
item
.
RanQiBZ
:
""
))
:
"无"
))
{
});
break
;
case
15
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
PaiYan
==
1
?
(
"有"
+
(!
string
.
IsNullOrWhiteSpace
(
item
.
PaiYanBZ
)
?
item
.
PaiYanBZ
:
""
))
:
"无"
))
{
});
break
;
case
16
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
IsDianLiang
==
1
?
(
"有"
+
(!
string
.
IsNullOrWhiteSpace
(
item
.
DianLiang
)
?
item
.
DianLiang
:
""
))
:
"无"
))
{
});
break
;
case
17
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
Plumbing
==
1
?
"有"
:
"无"
))
{
});
break
;
case
18
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
Caliber
==
1
?
(
"有"
)
:
"无"
))
{
});
break
;
case
19
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
Sewage
==
1
?
(
"有"
)
:
"无"
))
{
});
break
;
case
20
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
KongTiao
==
1
?
(
"有"
)
:
"无"
))
{
});
break
;
case
21
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
XinFeng
==
1
?
(
"有"
)
:
"无"
))
{
});
break
;
case
22
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Advertising
)
{
});
break
;
case
23
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Other
)
{
});
break
;
}
}
slist
.
Add
(
datarow
);
}
#
endregion
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
string
basePath
=
AppDomain
.
CurrentDomain
.
BaseDirectory
+
"/upfile/temporary/brand/"
;
string
path
=
basePath
+
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmssfff"
)
+
".xls"
;
if
(!
Directory
.
Exists
(
basePath
))
{
Directory
.
CreateDirectory
(
basePath
);
}
using
(
FileStream
stream
=
System
.
IO
.
File
.
Create
(
path
))
resultCode
=
0
,
};
if
(
System
.
IO
.
File
.
Exists
(
fileUrl
))
{
//将字节数组写入流
stream
.
Write
(
byteData
,
0
,
byteData
.
Length
);
stream
.
Close
();
apiResult
.
resultCode
=
1
;
apiResult
.
data
=
"/upfile/Brand/"
+
hashKey
+
"/"
+
fileName
;
}
return
apiResult
;
});
}
/// <summary>
/// 品牌下载
/// </summary>
[
HttpPost
]
public
void
GetBrandListToExcel
(
RB_Brand_Extend
demodel
,
List
<
int
>
ExcelEnumIds
,
string
excelFileUrl
)
{
//try
//{
// demodel.ExcelEnumIds = ExcelEnumIds;
// if (ExcelEnumIds == null || !ExcelEnumIds.Any())
// {
// demodel.ExcelEnumIds = new List<int>();
// for (int i = 1; i <= 23; i++)
// {
// demodel.ExcelEnumIds.Add(i);
// }
// }
//}
//catch
//{
// demodel.ExcelEnumIds = new List<int>();
// for (int i = 1; i <= 23; i++)
// {
// demodel.ExcelEnumIds.Add(i);
// }
//}
//string ExcelName = "品牌列表" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//List<ExcelDataSource> slist = new List<ExcelDataSource>();
//if (demodel.ExcelEnumIds == null || !demodel.ExcelEnumIds.Any())
//{
// var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
// return File(byteData1, "application/octet-stream", ExcelName);
//}
//var Enumlist = EnumHelper.GetEnumList(typeof(Common.Enum.TradePavilion.BusinessExportEnum));
//ExcelDataSource header = new ExcelDataSource()
//{
// ExcelRows = new List<ExcelColumn>(30)
// {
// new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
// }
//};
//foreach (var item in demodel.ExcelEnumIds)
//{
// var Name = Enumlist.Where(x => x.Value == item.ToString()).FirstOrDefault().Key ?? "";
// header.ExcelRows.Add(new ExcelColumn(value: Name) { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
//}
//slist.Add(header);
//try
//{
// var list = carrierModule.GetBrandListByWhere(demodel);
// #region 组装数据
// int Num = 0;
// foreach (var item in list)
// {
// Num++;
// ExcelDataSource datarow = new ExcelDataSource()
// {
// ExcelRows = new List<ExcelColumn>(30) {
// new ExcelColumn(value:Num.ToString()){ },
// }
// };
// foreach (var qitem in demodel.ExcelEnumIds)
// {
// switch (qitem)
// {
// case 1:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.ClassName) { }); break;
// case 2:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.FullBrandName) { }); break;
// case 4:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Logo, isPic: 1) { }); break;
// case 3:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandName) { }); break;
// case 5:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.VideoUrl) { }); break;
// case 6:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.ShopNum.ToString()) { }); break;
// case 7:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.BuiltUpArea.ToString()) + "-" + (item.EndBuiltUpArea.ToString())) { }); break;
// case 8:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.AreaRequirement.ToString()) + "-" + (item.EndAreaRequirement.ToString())) { }); break;
// case 9:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.CustomerType) { }); break;
// case 10:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.BrandType) { }); break;
// case 11:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.StoreExpansion) { }); break;
// case 12:
// datarow.ExcelRows.Add(new ExcelColumn(value: ((item.ProjectType.HasValue && item.ProjectType.Value > 0) ? item.ProjectType.GetEnumName() : "")) { }); break;
// case 13:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsShopSize == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.ShopSize) ? item.ShopSize : "")) : "无")) { }); break;
// case 14:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.RanQi == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.RanQiBZ) ? item.RanQiBZ : "")) : "无")) { }); break;
// case 15:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.PaiYan == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.PaiYanBZ) ? item.PaiYanBZ : "")) : "无")) { }); break;
// case 16:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.IsDianLiang == 1 ? ("有" + (!string.IsNullOrWhiteSpace(item.DianLiang) ? item.DianLiang : "")) : "无")) { }); break;
// case 17:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Plumbing == 1 ? "有" : "无")) { }); break;
// case 18:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Caliber == 1 ? ("有") : "无")) { }); break;
// case 19:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.Sewage == 1 ? ("有") : "无")) { }); break;
// case 20:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.KongTiao == 1 ? ("有") : "无")) { }); break;
// case 21:
// datarow.ExcelRows.Add(new ExcelColumn(value: (item.XinFeng == 1 ? ("有") : "无")) { }); break;
// case 22:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Advertising) { }); break;
// case 23:
// datarow.ExcelRows.Add(new ExcelColumn(value: item.Other) { }); break;
// }
// }
// slist.Add(datarow);
// }
// #endregion
// var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
// string basePath = AppDomain.CurrentDomain.BaseDirectory + "/upfile/temporary/brand/";
// string path = basePath + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
// if (!Directory.Exists(basePath))
// {
// Directory.CreateDirectory(basePath);
// }
// using (FileStream stream =System.IO.File.Create(path))
// {
// //将字节数组写入流
// stream.Write(byteData, 0, byteData.Length);
// stream.Close();
// }
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
string
.
Format
(
"GetFileFromWebApi_requestData: {0}"
,
JsonHelper
.
Serialize
(
RequestParm
)));
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
ExcelName
);
}
//
return File(byteData, "application/octet-stream", ExcelName);
//
}
//
catch (Exception ex)
//
{
//
LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(RequestParm)));
//
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
//
return File(byteData1, "application/octet-stream", ExcelName);
//
}
}
/// <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