Commit 995dabd5 authored by 黄奎's avatar 黄奎

页面修改

parent a7d1e2cb
......@@ -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);
......
......@@ -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
......@@ -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;
......
......@@ -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();
}
......
......@@ -25,5 +25,7 @@
<ProjectReference Include="..\Mall.ThirdCore\Mall.ThirdCore.csproj" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>
......@@ -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);
......
......@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment