diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index 62fa5dc..62e0165 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -31,7 +31,7 @@ namespace AllBase
///
/// 版本ID
///
- public static int VersionCount = 1357;
+ public static int VersionCount = 1359;
public static string MainPath = "29wx";
//public static string MainPath = "29wx";
//public static string MainPath = "29pdd";
diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
index 9e43946..25a51d6 100644
--- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
+++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs
@@ -2344,7 +2344,7 @@ namespace TemuKJD.WXForms.ProductForms
#region 图片盗链映射生成字典(如果有)
Dictionary wxImgMapDic = new Dictionary(StringComparer.OrdinalIgnoreCase);
bool isChangeImgDic = false;
- wxImgMapDic = GetImageCaches(prodInfo);
+ wxImgMapDic = ImageCacheService.GetImageCaches(prodInfo);
// 旧盗链
Dictionary wxImgMapOldDic = new Dictionary();
@@ -2816,7 +2816,7 @@ namespace TemuKJD.WXForms.ProductForms
#region 保存缓存盗链图片
if (isChangeImgDic)
{
- SaveImageCaches(Platform, wxImgMapDic.Values);
+ ImageCacheService.SaveImageCaches(Platform, wxImgMapDic.Values);
SaveImageCacheOld(dbProd.spu_id, wxImgMapOldDic);
isChangeImgDic = false;
@@ -3751,7 +3751,7 @@ namespace TemuKJD.WXForms.ProductForms
#region 保存缓存盗链图片
if (isChangeImgDic)
{
- SaveImageCaches(Platform, wxImgMapDic.Values);
+ ImageCacheService.SaveImageCaches(Platform, wxImgMapDic.Values);
SaveImageCacheOld(dbProd.spu_id, wxImgMapOldDic);
@@ -4850,7 +4850,7 @@ namespace TemuKJD.WXForms.ProductForms
#region 保存缓存盗链图片
if (isChangeImgDic)
{
- SaveImageCaches(Platform, wxImgMapDic.Values);
+ ImageCacheService.SaveImageCaches(Platform, wxImgMapDic.Values);
SaveImageCacheOld(dbProd.spu_id, wxImgMapOldDic);
@@ -5981,7 +5981,7 @@ namespace TemuKJD.WXForms.ProductForms
#region 保存缓存盗链图片
if (isChangeImgDic)
{
- SaveImageCaches(Platform, wxImgMapDic.Values);
+ ImageCacheService.SaveImageCaches(Platform, wxImgMapDic.Values);
SaveImageCacheOld(dbProd.spu_id, wxImgMapOldDic);
@@ -7541,99 +7541,7 @@ namespace TemuKJD.WXForms.ProductForms
globalShopUploadCntLimitRetryTimes = numJumpCnt.Value.ParseToInt();
}
- ///
- /// 获取图片缓存
- ///
- ///
- private Dictionary GetImageCaches(PDDProductInfo product)
- {
- Dictionary wxImgMapDic = new Dictionary(StringComparer.OrdinalIgnoreCase);
- if (EnvironmentHelper.IsProduction)
- {
- return wxImgMapDic;
- }
- List imageUrls = new List();
- imageUrls.AddRange(product.detail.galleries.Where(g => g.type == 1).Take(9).Select(a => a.url));
- var temp_detailGalleries = product.detail.galleries.Where(g => g.type == 2).ToList();
- if (temp_detailGalleries.Count == 0)
- temp_detailGalleries.Add(new gallery_item() { type = 2, url = product.detail.galleries.FirstOrDefault(g => g.type == 1)?.url });
- imageUrls.AddRange(temp_detailGalleries.Select(a => a.url));
-
-
- if (product.detail.sku.FirstOrDefault()?.spec?.Count > 0)
- {
- imageUrls.AddRange(product.detail.sku.Select(a => a.thumb_url));
- }
-
-
-
- List imageUrlMd5s = imageUrls.Select(a => BaseClass.GetMd5(a)).ToList();
-
- var url = BaseClass.BuildObjString("ImageCache/GetImageCache");//获取缓存
- var data = JsonConvert.SerializeObject(new
- {
- md5s = imageUrlMd5s
- });
-
- var html = GetHtml.PostUtf8(url, data, contentType: "application/json");
- if (string.IsNullOrEmpty(html))
- html = GetHtml.PostUtf8(url, data);
- var ret = JsonConvert.DeserializeObject>>(html);
- if (ret.Code == 200)
- {
- foreach (var item in ret.Data)
- {
- item.IsCache = true;
- wxImgMapDic[item.Md5] = item;
- }
- }
- return wxImgMapDic;
- }
-
- ///
- /// 保存缓存图片
- ///
- ///
- ///
- private void SaveImageCaches(PlatformType platform, IEnumerable images)
- {
- if (EnvironmentHelper.IsProduction)
- {
- return;
- }
- var url = BaseClass.BuildObjString("ImageCache/AddOrUpdate");
- var data = "";
- data = JsonHelper.SerializeObject(images.Where(a => a.IsCache == false).Select(a =>
- new
- {
- md5 = a.Md5,
- Platform = platform,
- PlatformUrl = a.PlatformUrl
- }
- ));
-
- var html = GetHtml.PostUtf8(url, data, contentType: "application/json");
- if (string.IsNullOrEmpty(html))
- html = GetHtml.PostUtf8(url, data);
- var ret = JsonConvert.DeserializeObject>(html);
- List failed = new List();
- if (ret.Code == 500)
- {
- if (ret.Data is JArray jArray)
- {
- failed = jArray.ToObject>() ?? new List();
- }
- else if (ret.Data is JValue jValue && jValue.Value is string str)
- {
- failed.Add(str);
- }
- }
- foreach (ImageCache item in images)
- {
- item.IsCache = !failed.Contains(item.Md5, StringComparer.OrdinalIgnoreCase);
- }
-
- }
+
void SaveImageCacheOld(string spuId, Dictionary wxImgMapOldDic)
{
@@ -7642,20 +7550,20 @@ namespace TemuKJD.WXForms.ProductForms
// return;
//}
- var url = BaseClass.BuildObjString("product/mdy_pdd_product");
- var data = "";
- Invoke(new Action(() =>
- {
- data = UserLogin.GetSignaturex();
- //data += "&spu_id=" + dbProd.spu_id;
- data += "&spu_id=" + spuId;
- data += "&wx_img_map_json=" + JsonHelper.SerializeObject(wxImgMapOldDic);
- }));
- var html = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
- html = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
- html = GetHtml.PostUtf8(url, data);
+ //var url = BaseClass.BuildObjString("product/mdy_pdd_product");
+ //var data = "";
+ //Invoke(new Action(() =>
+ //{
+ // data = UserLogin.GetSignaturex();
+ // //data += "&spu_id=" + dbProd.spu_id;
+ // data += "&spu_id=" + spuId;
+ // data += "&wx_img_map_json=" + JsonHelper.SerializeObject(wxImgMapOldDic);
+ //}));
+ //var html = GetHtml.PostUtf8(url, data);
+ //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ // html = GetHtml.PostUtf8(url, data);
+ //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ // html = GetHtml.PostUtf8(url, data);
}
private void chkNotUploadShopProdMoreThan_CheckedChanged(object sender, EventArgs e)
@@ -8186,15 +8094,7 @@ Content-Type: application/octet-stream
public int NotUploadShopProdMoreThan { get; set; } = 500;
}
- class ImageCache
- {
- public string Md5 { get; set; }
- public int Platform { get; set; }
- [JsonProperty("platform_url")]
- public string PlatformUrl { get; set; }
- public bool IsCache { get; set; }
- }
-
+
class WaitingProductConfig : BindableBase
{
public WaitingProductConfig()
diff --git a/Work/Services/ImageCacheService.cs b/Work/Services/ImageCacheService.cs
new file mode 100644
index 0000000..a91d8db
--- /dev/null
+++ b/Work/Services/ImageCacheService.cs
@@ -0,0 +1,138 @@
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model.Result;
+using AllBase.Model.Result.PDDResult;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Work.Services;
+
+public class ImageCache
+{
+ public string Md5 { get; set; }
+ public int Platform { get; set; }
+ [JsonProperty("platform_url")]
+ public string PlatformUrl { get; set; }
+ public bool IsCache { get; set; }
+}
+
+public class ImageCacheService
+{
+ private static string ServerUrl = "http://103.90.155.78:9001";
+ static ImageCacheService()
+ {
+ if (EnvironmentHelper.IsDevelopment)
+ {
+ ServerUrl = "http://localhost:14312";
+ }
+ }
+
+
+
+ ///
+ /// 获取图片缓存
+ ///
+ ///
+ public static Dictionary GetImageCaches(PDDProductInfo product)
+ {
+ Dictionary wxImgMapDic = new Dictionary(StringComparer.OrdinalIgnoreCase);
+ try
+ {
+ //if (EnvironmentHelper.IsProduction)
+ //{
+ // return wxImgMapDic;
+ //}
+ List imageUrls = new List();
+ imageUrls.AddRange(product.detail.galleries.Where(g => g.type == 1).Take(9).Select(a => a.url));
+ var temp_detailGalleries = product.detail.galleries.Where(g => g.type == 2).ToList();
+ if (temp_detailGalleries.Count == 0)
+ temp_detailGalleries.Add(new gallery_item() { type = 2, url = product.detail.galleries.FirstOrDefault(g => g.type == 1)?.url });
+ imageUrls.AddRange(temp_detailGalleries.Select(a => a.url));
+
+
+ if (product.detail.sku.FirstOrDefault()?.spec?.Count > 0)
+ {
+ imageUrls.AddRange(product.detail.sku.Select(a => a.thumb_url));
+ }
+
+
+
+ List imageUrlMd5s = imageUrls.Select(a => BaseClass.GetMd5(a)).ToList();
+
+ var url = ServerUrl + "/api/ImageCache/GetImageCache";//获取缓存
+ var html = GetHtml.PostJson(url, new { md5s = imageUrlMd5s });
+ var ret = JsonConvert.DeserializeObject>>(html);
+ if (ret.Code == 200)
+ {
+ foreach (var item in ret.Data)
+ {
+ item.IsCache = true;
+ wxImgMapDic[item.Md5] = item;
+ }
+ }
+ }
+ catch(Exception ex)
+ {
+
+ }
+ return wxImgMapDic;
+ }
+
+ ///
+ /// 保存缓存图片
+ ///
+ ///
+ ///
+ public static void SaveImageCaches(PlatformType platform, IEnumerable images)
+ {
+ try
+ {
+ //if (EnvironmentHelper.IsProduction)
+ //{
+ // return;
+ //}
+ var data = "";
+ data = JsonHelper.SerializeObject(images.Where(a => a.IsCache == false).Select(a =>
+ new
+ {
+ md5 = a.Md5,
+ Platform = platform,
+ PlatformUrl = a.PlatformUrl
+ }
+ ));
+
+ var url = ServerUrl + "/api/ImageCache/AddOrUpdate";
+ var html = GetHtml.PostJson(url, data);
+
+
+ var ret = JsonConvert.DeserializeObject>(html);
+ List failed = new List();
+ if (ret.Code == 500)
+ {
+ if (ret.Data is JArray jArray)
+ {
+ failed = jArray.ToObject>() ?? new List();
+ }
+ else if (ret.Data is JValue jValue && jValue.Value is string str)
+ {
+ failed.Add(str);
+ }
+ }
+ foreach (ImageCache item in images)
+ {
+ item.IsCache = !failed.Contains(item.Md5, StringComparer.OrdinalIgnoreCase);
+ }
+ }
+ catch
+ {
+
+ }
+
+ }
+
+}