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
995dabd5
Commit
995dabd5
authored
Jun 10, 2020
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
a7d1e2cb
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
437 additions
and
16 deletions
+437
-16
FileHelper.cs
Mall.Common/Plugin/FileHelper.cs
+47
-2
RB_Template_Market_Extend.cs
...Model/Extend/MarketingCenter/RB_Template_Market_Extend.cs
+5
-0
MiniprogramTemplateModule.cs
Mall.Module.MarketingCenter/MiniprogramTemplateModule.cs
+99
-10
RB_Template_MarketRepository.cs
...epository/MarketingCenter/RB_Template_MarketRepository.cs
+8
-0
TemplateController.cs
....WebApi/Controllers/MarketingCenter/TemplateController.cs
+166
-0
Mall.WebApi.csproj
Mall.WebApi/Mall.WebApi.csproj
+2
-0
MallHelper.cs
Test/Helper/MallHelper.cs
+84
-4
Category.cs
Test/Model/Category.cs
+26
-0
No files found.
Mall.Common/Plugin/FileHelper.cs
View file @
995dabd5
...
...
@@ -2,6 +2,7 @@
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Net
;
using
System.Text
;
namespace
Mall.Common.Plugin
...
...
@@ -11,6 +12,50 @@ namespace Mall.Common.Plugin
/// </summary>
public
class
FileHelper
{
/// <summary>
/// 生成图片
/// </summary>
/// <param name="url"></param>
public
static
void
CreateImage
(
string
url
)
{
string
tempPath
=
GetFileUrl
(
url
);
string
path
=
Environment
.
CurrentDirectory
+
tempPath
;
//下载到的地址+文件名
HttpWebRequest
request
=
WebRequest
.
Create
(
url
)
as
HttpWebRequest
;
//发送请求并获取相应回应数据
HttpWebResponse
response
=
request
.
GetResponse
()
as
HttpWebResponse
;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
Stream
responseStream
=
response
.
GetResponseStream
();
string
newFilePath
=
path
.
Substring
(
0
,
path
.
LastIndexOf
(
"/"
));
if
(!
System
.
IO
.
Directory
.
Exists
(
newFilePath
))
//如果不存在就创建file文件夹
{
System
.
IO
.
Directory
.
CreateDirectory
(
newFilePath
);
}
//创建本地文件写入流
Stream
stream
=
new
FileStream
(
path
,
FileMode
.
Create
);
byte
[]
bArr
=
new
byte
[
1024
];
int
size
=
responseStream
.
Read
(
bArr
,
0
,
(
int
)
bArr
.
Length
);
while
(
size
>
0
)
{
stream
.
Write
(
bArr
,
0
,
size
);
size
=
responseStream
.
Read
(
bArr
,
0
,
(
int
)
bArr
.
Length
);
}
stream
.
Close
();
responseStream
.
Close
();
}
/// <summary>
/// 获取Oss文件全路径
/// </summary>
/// <param name="path">文件相对路径</param>
/// <returns></returns>
public
static
string
GetFileUrl
(
string
path
)
{
return
path
.
Replace
(
"http://auth-zjhejiang-com.oss-cn-hangzhou.aliyuncs.com"
,
""
)
.
Replace
(
"https://cdnimg.iotweixin.com"
,
""
).
Replace
(
"http://img.weibaoge.cn"
,
""
).
Replace
(
"http://v4test.zjhejiang.com"
,
""
)
.
Replace
(
"http://v4test1.oss-cn-hangzhou.aliyuncs.com"
,
""
).
Replace
(
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com"
,
""
);
}
/// <summary>
/// 网站文件夹虚拟目录
/// </summary>
...
...
@@ -22,7 +67,7 @@ namespace Mall.Common.Plugin
/// <param name="filePath">文件夹路径</param>
public
static
void
DeleteFile
(
string
filePath
)
{
string
newPath
=
AppContext
.
BaseDirectory
+
"\\"
+
filePath
;
string
newPath
=
AppContext
.
BaseDirectory
+
"\\"
+
filePath
;
DirectoryInfo
theFolder
=
new
DirectoryInfo
(
newPath
);
if
(
theFolder
.
Exists
)
{
...
...
@@ -100,7 +145,7 @@ namespace Mall.Common.Plugin
{
string
newTempFilePath
=
filePath
.
Substring
(
filePath
.
IndexOf
(
"/"
));
;
var
strPath
=
AppContext
.
BaseDirectory
+
"\\"
+
VirtualDirectory
+
newTempFilePath
;
//System.Web.HttpContext.Current.Server.MapPath("~/" + VirtualDirectory + newTempFilePath);
string
newfilePath
=
AppContext
.
BaseDirectory
+
"\\"
+
VirtualDirectory
+
newFilePath
.
Substring
(
0
,
strPath
.
LastIndexOf
(
'\\'
)
-
1
);
//System.Web.HttpContext.Current.Server.MapPath("~/" + VirtualDirectory) + newFilePath.Substring(0, strPath.LastIndexOf('\\') - 1);
string
newfilePath
=
AppContext
.
BaseDirectory
+
"\\"
+
VirtualDirectory
+
newFilePath
.
Substring
(
0
,
strPath
.
LastIndexOf
(
'\\'
)
-
1
);
//System.Web.HttpContext.Current.Server.MapPath("~/" + VirtualDirectory) + newFilePath.Substring(0, strPath.LastIndexOf('\\') - 1);
if
(!
Directory
.
Exists
(
newfilePath
))
{
Directory
.
CreateDirectory
(
newfilePath
);
...
...
Mall.Model/Extend/MarketingCenter/RB_Template_Market_Extend.cs
View file @
995dabd5
...
...
@@ -33,5 +33,10 @@ namespace Mall.Model.Entity.MarketingCenter
/// 创建人
/// </summary>
public
string
CreateByName
{
get
;
set
;
}
/// <summary>
/// 编号【逗号分割查询使用】
/// </summary>
public
string
QIds
{
get
;
set
;
}
}
}
\ No newline at end of file
Mall.Module.MarketingCenter/MiniprogramTemplateModule.cs
View file @
995dabd5
...
...
@@ -7,6 +7,7 @@ using Mall.Model.Query;
using
Mall.Repository
;
using
Mall.Repository.MarketingCenter
;
using
MySqlX.XDevAPI.Relational
;
using
Newtonsoft.Json.Linq
;
using
Org.BouncyCastle.Crypto.Tls
;
using
System
;
using
System.Collections.Generic
;
...
...
@@ -45,9 +46,9 @@ namespace Mall.Module.MarketingCenter
/// <param name="query">查询条件</param>
/// <param name="IsAnalyzePlus">是否解析插件</param>
/// <returns></returns>
public
List
<
RB_Miniprogram_Template_Extend
>
GetMiniprogramTemplateListModule
(
RB_Miniprogram_Template_Extend
query
,
bool
IsAnalyzePlus
=
false
)
public
List
<
RB_Miniprogram_Template_Extend
>
GetMiniprogramTemplateListModule
(
RB_Miniprogram_Template_Extend
query
,
bool
IsAnalyzePlus
=
false
)
{
var
list
=
miniprogram_TemplateRepository
.
GetMiniprogramTemplateListRepository
(
query
);
var
list
=
miniprogram_TemplateRepository
.
GetMiniprogramTemplateListRepository
(
query
);
if
(
IsAnalyzePlus
)
{
foreach
(
var
item
in
list
)
...
...
@@ -130,7 +131,7 @@ namespace Mall.Module.MarketingCenter
switch
(
item
.
Id
)
{
//背景组件
case
"background"
:
item
.
data
=
JsonHelper
.
DeserializeObject
<
backgroundItem
>(
item
.
data
.
ToString
());
break
;
case
"background"
:
item
.
data
=
JsonHelper
.
DeserializeObject
<
backgroundItem
>(
item
.
data
.
ToString
());
break
;
//查找组件
case
"search"
:
item
.
data
=
JsonHelper
.
DeserializeObject
<
searchItem
>(
item
.
data
.
ToString
());
break
;
//导航组件
...
...
@@ -145,18 +146,106 @@ namespace Mall.Module.MarketingCenter
case
"link"
:
item
.
data
=
JsonHelper
.
DeserializeObject
<
linkItem
>(
item
.
data
.
ToString
());
break
;
//图片广告插件
case
"rubik"
:
try
JObject
jObj
=
JObject
.
Parse
(
item
.
data
.
ToString
());
Int32
.
TryParse
(
jObj
[
"style"
].
ToString
(),
out
int
style
);
Int32
.
TryParse
(
jObj
[
"space"
].
ToString
(),
out
int
space
);
Int32
.
TryParse
(
jObj
[
"h"
].
ToString
(),
out
int
h_root
);
Int32
.
TryParse
(
jObj
[
"w"
].
ToString
(),
out
int
w_root
);
var
subData
=
new
rubikItem
()
{
item
.
data
=
JsonHelper
.
DeserializeObject
<
rubikItem
>(
item
.
data
.
ToString
());
style
=
style
,
space
=
space
,
height
=
jObj
[
"height"
].
ToString
(),
w
=
w_root
.
ToString
(),
h
=
h_root
,
hotspot
=
new
List
<
hotspotItem
>(),
list
=
new
List
<
rubikDetailItem
>(),
};
if
(!
string
.
IsNullOrWhiteSpace
(
jObj
[
"hotspot"
].
ToString
()))
{
subData
.
hotspot
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
hotspotItem
>>(
jObj
[
"hotspot"
].
ToString
());
}
catch
if
(!
string
.
IsNullOrWhiteSpace
(
jObj
[
"list"
].
ToString
()))
{
item
.
data
=
new
rubikItem
()
JArray
jArray
=
JArray
.
Parse
(
jObj
[
"list"
].
ToString
());
if
(
jArray
!=
null
&&
jArray
.
Count
>
0
)
{
hotspot
=
new
List
<
hotspotItem
>(),
list
=
new
List
<
rubikDetailItem
>()
{
new
rubikDetailItem
()
{
link
=
new
List
<
rubikLinkItem
>()
{
new
rubikLinkItem
()}
}
},
};
foreach
(
var
subItem
in
jArray
)
{
Int32
.
TryParse
(
subItem
[
"w"
].
ToString
(),
out
int
w
);
Int32
.
TryParse
(
subItem
[
"h"
].
ToString
(),
out
int
h2
);
Int32
.
TryParse
(
subItem
[
"x"
].
ToString
(),
out
int
x
);
Int32
.
TryParse
(
subItem
[
"y"
].
ToString
(),
out
int
y
);
int
zIndex
=
0
;
if
(
subItem
[
"zIndex"
]
!=
null
&&
!
string
.
IsNullOrWhiteSpace
(
subItem
[
"zIndex"
].
ToString
()))
{
Int32
.
TryParse
(
subItem
[
"zIndex"
].
ToString
(),
out
zIndex
);
}
var
links
=
new
List
<
rubikLinkItem
>();
if
(
subItem
[
"link"
]
!=
null
&&
!
string
.
IsNullOrWhiteSpace
(
subItem
[
"link"
].
ToString
()))
{
try
{
var
linkObj
=
JObject
.
Parse
(
subItem
[
"link"
].
ToString
());
links
.
Add
(
new
rubikLinkItem
()
{
PageName
=
linkObj
[
"name"
].
ToString
(),
PageUrl
=
linkObj
[
"value"
].
ToString
(),
new_link_url
=
linkObj
[
"new_link_url"
].
ToString
(),
IsParameter
=
0
,
ParameterValue
=
linkObj
[
"name"
].
ToString
(),
});
}
catch
{
}
try
{
var
linkArray
=
JArray
.
Parse
(
subItem
[
"link"
].
ToString
());
if
(
linkArray
!=
null
&&
linkArray
.
Count
>
0
)
{
foreach
(
var
linkItem
in
linkArray
)
{
links
.
Add
(
new
rubikLinkItem
()
{
PageName
=
linkItem
[
"name"
].
ToString
(),
PageUrl
=
linkItem
[
"value"
].
ToString
(),
new_link_url
=
linkItem
[
"new_link_url"
].
ToString
(),
IsParameter
=
0
,
ParameterValue
=
linkItem
[
"name"
].
ToString
(),
});
}
}
}
catch
{
}
}
subData
.
list
.
Add
(
new
rubikDetailItem
()
{
w
=
w
,
h
=
h2
,
x
=
x
,
y
=
y
,
link
=
links
,
width
=
subItem
[
"width"
].
ToString
(),
height
=
subItem
[
"height"
].
ToString
(),
left
=
subItem
[
"left"
].
ToString
(),
top
=
subItem
[
"top"
].
ToString
(),
pic_url
=
subItem
[
"pic_url"
].
ToString
(),
backgroundImage
=
subItem
[
"backgroundImage"
].
ToString
(),
backgroundRepeat
=
subItem
[
"backgroundRepeat"
].
ToString
(),
backgroundSize
=
subItem
[
"backgroundSize"
].
ToString
(),
backgroundPosition
=
subItem
[
"backgroundPosition"
].
ToString
(),
zIndex
=
zIndex
});
;
}
}
}
item
.
data
=
subData
;
break
;
//视频插件
case
"video"
:
item
.
data
=
JsonHelper
.
DeserializeObject
<
videoItem
>(
item
.
data
.
ToString
());
break
;
...
...
Mall.Repository/MarketingCenter/RB_Template_MarketRepository.cs
View file @
995dabd5
...
...
@@ -58,6 +58,14 @@ namespace Mall.Repository.MarketingCenter
{
builder
.
Append
(
$" AND
{
nameof
(
RB_Template_Market_Extend
.
Name
)}
like '%
{
query
.
Name
.
Trim
()}
%'"
);
}
if
(
query
.
Id
>
0
)
{
builder
.
AppendFormat
(
" AND {0}={1} "
,
nameof
(
RB_Template_Market_Extend
.
Id
),
query
.
Id
);
}
if
(!
string
.
IsNullOrWhiteSpace
(
query
.
QIds
))
{
builder
.
AppendFormat
(
" AND {0} IN({1}) "
,
nameof
(
RB_Template_Market_Extend
.
Id
),
query
.
QIds
);
}
}
return
Get
<
RB_Template_Market_Extend
>(
builder
.
ToString
()).
ToList
();
}
...
...
Mall.WebApi/Controllers/MarketingCenter/TemplateController.cs
View file @
995dabd5
...
...
@@ -366,6 +366,172 @@ namespace Mall.WebApi.Controllers.MarketingCenter
var
flag
=
templateMarketModule
.
LoadTemplateMarketIsUseModule
(
Id
,
extModel
);
return
flag
?
ApiResult
.
Success
(
data
:
extModel
)
:
ApiResult
.
Failed
();
}
/// <summary>
/// 重新设置图片
/// </summary>
/// <returns></returns>
public
ApiResult
SetTemplateImg
()
{
var
parms
=
RequestParm
;
var
query
=
JsonConvert
.
DeserializeObject
<
RB_Template_Market_Extend
>(
parms
.
msg
.
ToString
());
var
list
=
templateMarketModule
.
GetTemplateMarketListModule
(
query
);
string
message
=
""
;
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
foreach
(
var
rootItem
in
list
)
{
if
(
rootItem
.
Pics
!=
null
&&
!
string
.
IsNullOrEmpty
(
rootItem
.
Pics
))
{
try
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
rootItem
.
Pics
);
rootItem
.
Pics
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
rootItem
.
Pics
);
rootItem
.
Pics
=
Common
.
Config
.
GetFileUrl
(
rootItem
.
Pics
);
}
catch
(
Exception
ex
)
{
message
+=
ex
.
Message
+
" "
;
}
}
List
<
ComponentItem
>
items
=
new
List
<
ComponentItem
>();
if
(
rootItem
.
TemplateData
!=
null
&&
!
string
.
IsNullOrWhiteSpace
(
rootItem
.
TemplateData
))
{
items
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
ComponentItem
>>(
rootItem
.
TemplateData
.
Replace
(
"\r\n"
,
""
).
Replace
(
@"\"
,
""
).
Trim
());
}
if
(
items
!=
null
&&
items
.
Count
>
0
)
{
try
{
foreach
(
var
item
in
items
)
{
switch
(
item
.
Id
)
{
//背景组件
case
"background"
:
var
backgroundData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
backgroundItem
>(
item
.
data
.
ToString
());
if
(!
string
.
IsNullOrWhiteSpace
(
backgroundData
.
backgroundPicUrl
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
backgroundData
.
backgroundPicUrl
);
backgroundData
.
backgroundPicUrl
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
backgroundData
.
backgroundPicUrl
);
backgroundData
.
backgroundPicUrl
=
Common
.
Config
.
GetFileUrl
(
backgroundData
.
backgroundPicUrl
);
}
item
.
data
=
backgroundData
;
break
;
//查找组件
case
"search"
:
break
;
//导航组件
case
"nav"
:
var
navData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
navItem
>(
item
.
data
.
ToString
());
if
(
navData
.
navs
!=
null
&&
navData
.
navs
.
Count
>
0
)
{
foreach
(
var
subItem
in
navData
.
navs
)
{
if
(!
string
.
IsNullOrWhiteSpace
(
subItem
.
icon
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
subItem
.
icon
);
subItem
.
icon
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
subItem
.
icon
);
subItem
.
icon
=
Common
.
Config
.
GetFileUrl
(
subItem
.
icon
);
}
}
}
item
.
data
=
navData
;
break
;
//轮播广告插件
case
"banner"
:
var
bannerData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
bannerItem
>(
item
.
data
.
ToString
());
if
(
bannerData
.
banners
!=
null
&&
bannerData
.
banners
.
Count
>
0
)
{
foreach
(
var
subItem
in
bannerData
.
banners
)
{
if
(!
string
.
IsNullOrWhiteSpace
(
subItem
.
picUrl
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
subItem
.
picUrl
);
subItem
.
picUrl
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
subItem
.
picUrl
);
subItem
.
picUrl
=
Common
.
Config
.
GetFileUrl
(
subItem
.
picUrl
);
}
}
}
item
.
data
=
bannerData
;
break
;
//图片广告插件
case
"rubik"
:
try
{
var
rubikData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
rubikItem
>(
item
.
data
.
ToString
());
if
(
rubikData
.
list
!=
null
&&
rubikData
.
list
.
Count
>
0
)
{
foreach
(
var
subItem
in
rubikData
.
list
)
{
if
(!
string
.
IsNullOrWhiteSpace
(
subItem
.
pic_url
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
subItem
.
pic_url
);
subItem
.
pic_url
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
subItem
.
pic_url
);
subItem
.
pic_url
=
Common
.
Config
.
GetFileUrl
(
subItem
.
pic_url
);
}
if
(!
string
.
IsNullOrWhiteSpace
(
subItem
.
backgroundImage
))
{
var
newUrl
=
subItem
.
backgroundImage
.
Replace
(
"url('"
,
""
).
Replace
(
"')"
,
""
);
Common
.
Plugin
.
FileHelper
.
CreateImage
(
newUrl
);
subItem
.
backgroundImage
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
newUrl
);
subItem
.
backgroundImage
=
"url('"
+
Common
.
Config
.
GetFileUrl
(
subItem
.
backgroundImage
)
+
"')"
;
}
}
}
item
.
data
=
rubikData
;
}
catch
{
}
break
;
//商品插件
case
"goods"
:
var
goodData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
goodsItem
>(
item
.
data
.
ToString
());
if
(!
string
.
IsNullOrWhiteSpace
(
goodData
.
goodsTagPicUrl
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
goodData
.
goodsTagPicUrl
);
goodData
.
goodsTagPicUrl
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
goodData
.
goodsTagPicUrl
);
goodData
.
goodsTagPicUrl
=
Common
.
Config
.
GetFileUrl
(
goodData
.
goodsTagPicUrl
);
}
item
.
data
=
goodData
;
break
;
//公告组件
case
"notice"
:
var
noticeData
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
noticeItem
>(
item
.
data
.
ToString
());
if
(!
string
.
IsNullOrWhiteSpace
(
noticeData
.
icon
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
noticeData
.
icon
);
noticeData
.
icon
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
noticeData
.
icon
);
noticeData
.
icon
=
Common
.
Config
.
GetFileUrl
(
noticeData
.
icon
);
}
if
(!
string
.
IsNullOrWhiteSpace
(
noticeData
.
headerUrl
))
{
Common
.
Plugin
.
FileHelper
.
CreateImage
(
noticeData
.
headerUrl
);
noticeData
.
headerUrl
=
Common
.
Plugin
.
FileHelper
.
GetFileUrl
(
noticeData
.
headerUrl
);
noticeData
.
headerUrl
=
Common
.
Config
.
GetFileUrl
(
noticeData
.
headerUrl
);
}
item
.
data
=
noticeData
;
break
;
}
}
}
catch
(
Exception
ex
)
{
message
+=
rootItem
.
Id
+
" "
+
ex
.
Message
+
" "
;
}
}
rootItem
.
TemplateData
=
Common
.
Plugin
.
JsonHelper
.
Serialize
(
items
);
templateMarketModule
.
SetTemplateMarketModule
(
rootItem
);
}
}
return
ApiResult
.
Success
(
message
:
message
);
}
#
endregion
}
}
\ No newline at end of file
Mall.WebApi/Mall.WebApi.csproj
View file @
995dabd5
...
...
@@ -25,5 +25,7 @@
<ProjectReference Include="..\Mall.ThirdCore\Mall.ThirdCore.csproj" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>
Test/Helper/MallHelper.cs
View file @
995dabd5
...
...
@@ -8,6 +8,7 @@ using System.Text;
using
System.Threading
;
using
System.Text.RegularExpressions
;
using
Test.DBHelper
;
using
MySql.Data.MySqlClient
;
namespace
Test.Helper
{
...
...
@@ -21,8 +22,85 @@ namespace Test.Helper
/// </summary>
public
static
void
GetData
()
{
string
cookie
=
"__login_route=%2Fadmin%2Fpassport%2Flogin; __login_role=admin; search={'keyword':'','status':' - 1','sort_prop':'','sort_type':'','cats'[],'date_start':null,'date_end':null}; HJ_SESSION_ID=kmmormovvm2u9qh5drkgsbj1ta; _csrf=7a980bb65eabe0ac3d77199092030044b17ae9779de00eaed628c8095ab2fe0ca%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22rsnZWVWkZkpfvVhLBXu8sGG3px0Dgcsx%22%3B%7D"
;
GetGategoryImgList
(
cookie
);
string
cookie
=
"__login_route=%2Fadmin%2Fpassport%2Flogin; __login_role=admin; HJ_SESSION_ID=4t7hlqga7scesoid63ln4gbv3n; _csrf=7e088e7a563fba6d8b51b65eebea11468c0c2ea43c8e99199be24320e3e86c94a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22D9rE0_dOz8RHzW5y695GOQPTWJZgT8Sk%22%3B%7D"
;
GetTemplate
(
cookie
);
}
/// <summary>
/// 获取模板
/// </summary>
public
static
void
GetTemplate
(
string
cookie
)
{
var
list
=
GetTemplateList
(
cookie
);
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
var
index
=
1
;
foreach
(
var
item
in
list
)
{
Console
.
WriteLine
(
index
+
"/"
+
list
.
Count
+
item
.
name
+
"分类Start"
);
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
" INSERT INTO rb_miniprogram_template(TenantId,MallBaseId,TemplateName,TemplateData,CreateDate,CreateBy,Status)"
);
builder
.
AppendFormat
(
" VALUES(1,1,'{0}',@data,'{1}',1,0);SELECT LAST_INSERT_ID()"
,
item
.
name
,
DateTime
.
Now
);
List
<
MySqlParameter
>
paramsList
=
new
List
<
MySqlParameter
>();
paramsList
.
Add
(
new
MySqlParameter
()
{
ParameterName
=
"@data"
,
Value
=
item
.
data
.
Replace
(
@"\"
,
""
)
});
try
{
var
res
=
DBHelper
.
MySqlHelper
.
ExecuteScalar
(
DBHelper
.
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
builder
.
ToString
(),
paramsList
.
ToArray
());
if
(
res
!=
null
&&
Convert
.
ToInt32
(
res
)
>
0
)
{
string
updateSql
=
string
.
Format
(
"UPDATE rb_miniprogram_template SET Id={0} WHERE Id={1}"
,
item
.
id
,
Convert
.
ToInt32
(
res
));
var
res1
=
DBHelper
.
MySqlHelper
.
ExecuteScalar
(
DBHelper
.
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
updateSql
,
null
);
}
}
catch
(
Exception
ex
)
{
Console
.
WriteLine
(
index
+
"/"
+
ex
.
Message
);
}
index
++;
Console
.
WriteLine
(
index
+
"/"
+
list
.
Count
+
item
.
name
+
"分类End"
);
}
}
}
/// <summary>
/// 获取模板列表
/// </summary>
/// <param name="cookie"></param>
/// <returns></returns>
public
static
List
<
TemplateData
>
GetTemplateList
(
string
cookie
)
{
List
<
TemplateData
>
list
=
new
List
<
TemplateData
>();
string
ApiUrl
=
"https://wx.weibaoge.cn/web/index.php?r=plugin%2Fdiy%2Fmall%2Ftemplate%2Findex&page={0}"
;
string
url1
=
string
.
Format
(
ApiUrl
,
"1"
);
string
jsonData
=
HttpGet
(
url1
,
cookie
);
if
(
jsonData
!=
null
&&
!
string
.
IsNullOrEmpty
(
jsonData
))
{
JObject
obj
=
JObject
.
Parse
(
jsonData
);
JObject
dataObj
=
JObject
.
Parse
(
obj
[
"data"
].
ToString
());
list
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
List
<
TemplateData
>>(
dataObj
[
"list"
].
ToString
());
}
if
(
list
==
null
)
{
list
=
new
List
<
TemplateData
>();
}
Thread
.
Sleep
(
1000
*
5
);
string
url2
=
string
.
Format
(
ApiUrl
,
"2"
);
string
jsonData2
=
HttpGet
(
url2
,
cookie
);
if
(
jsonData2
!=
null
&&
!
string
.
IsNullOrEmpty
(
jsonData2
))
{
JObject
obj
=
JObject
.
Parse
(
jsonData2
);
JObject
dataObj
=
JObject
.
Parse
(
obj
[
"data"
].
ToString
());
var
list2
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
List
<
TemplateData
>>(
dataObj
[
"list"
].
ToString
());
if
(
list2
!=
null
&&
list2
.
Count
>
0
)
{
list
.
AddRange
(
list2
);
}
}
return
list
;
}
...
...
@@ -45,7 +123,7 @@ namespace Test.Helper
int
parentId
=
0
;
try
{
var
res
=
MySqlHelper
.
ExecuteScalar
(
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
builder
.
ToString
(),
null
);
var
res
=
DBHelper
.
MySqlHelper
.
ExecuteScalar
(
DBHelper
.
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
builder
.
ToString
(),
null
);
if
(
res
!=
null
&&
Convert
.
ToInt32
(
res
)
>
0
)
{
Int32
.
TryParse
(
res
.
ToString
(),
out
parentId
);
...
...
@@ -73,7 +151,7 @@ namespace Test.Helper
stringBuilder
.
AppendFormat
(
" VALUES('{0}',{1},{2},'{3}','{4}',0,0,1,1,'{5}','{6}',1,0)"
,
subItem
.
name
,
subItem
.
type
,
parentId
,
path
,
""
,
DateTime
.
Now
,
DateTime
.
Now
);
try
{
var
newResult
=
MySqlHelper
.
ExecuteNonQuery
(
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
stringBuilder
.
ToString
(),
null
);
var
newResult
=
DBHelper
.
MySqlHelper
.
ExecuteNonQuery
(
DBHelper
.
MySqlHelper
.
defaultConnection
,
System
.
Data
.
CommandType
.
Text
,
stringBuilder
.
ToString
(),
null
);
}
catch
(
Exception
ex
)
{
...
...
@@ -190,6 +268,8 @@ namespace Test.Helper
{
HttpWebRequest
myRequest
=
(
HttpWebRequest
)
WebRequest
.
Create
(
url
);
myRequest
.
Headers
.
Add
(
"cookie"
,
cookie
);
myRequest
.
Headers
.
Add
(
"x-requested-with"
,
"XMLHttpRequest"
);
//x-requested-with: XMLHttpRequest
myRequest
.
Method
=
"GET"
;
HttpWebResponse
myResponse
=
(
HttpWebResponse
)
myRequest
.
GetResponse
();
StreamReader
reader
=
new
StreamReader
(
myResponse
.
GetResponseStream
(),
Encoding
.
UTF8
);
...
...
Test/Model/Category.cs
View file @
995dabd5
...
...
@@ -6,6 +6,32 @@ using System.Threading.Tasks;
namespace
Test.Model
{
/// <summary>
/// 模板实体类
/// </summary>
public
class
TemplateData
{
/// <summary>
/// 模板编号
/// </summary>
public
int
id
{
get
;
set
;
}
/// <summary>
/// 商城编号
/// </summary>
public
int
mall_id
{
get
;
set
;
}
/// <summary>
/// 模板名称
/// </summary>
public
string
name
{
get
;
set
;
}
/// <summary>
/// 模板数据
/// </summary>
public
string
data
{
get
;
set
;
}
}
/// <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