diff --git a/JdShopListener/JdShopListener/Converters/ToStringConverter.cs b/JdShopListener/JdShopListener/Converters/ToStringConverter.cs
index c2ae626..cc0cc31 100644
--- a/JdShopListener/JdShopListener/Converters/ToStringConverter.cs
+++ b/JdShopListener/JdShopListener/Converters/ToStringConverter.cs
@@ -37,6 +37,8 @@ namespace WPF.Converters
dic.Add(drr[0].ToLower(), drr[1]);
}
+ string defa = dic.FirstOrDefault().Value.ToString();
+
if (dic.ContainsKey(key))
{
if (dic[key] == "Collapsed")
@@ -46,15 +48,15 @@ namespace WPF.Converters
return dic[key];
}
- else
- if (dic.FirstOrDefault().Value.ToString() == "Visible")
+ else if (defa == "Visible")
{
return System.Windows.Visibility.Collapsed;
}
else
- if (dic.FirstOrDefault().Value.ToString() == "Collapsed")
+ if (defa == "Collapsed")
return System.Windows.Visibility.Visible;
- return value;
+
+ return defa;
}
diff --git a/JdShopListener/JdShopListener/JdShopListener.csproj b/JdShopListener/JdShopListener/JdShopListener.csproj
index 5bfc419..c9d9233 100644
--- a/JdShopListener/JdShopListener/JdShopListener.csproj
+++ b/JdShopListener/JdShopListener/JdShopListener.csproj
@@ -30,7 +30,7 @@
- Always
+ PreserveNewest
diff --git a/JdShopListener/JdShopListener/MainWindow.xaml b/JdShopListener/JdShopListener/MainWindow.xaml
index 6ea4902..daf6392 100644
--- a/JdShopListener/JdShopListener/MainWindow.xaml
+++ b/JdShopListener/JdShopListener/MainWindow.xaml
@@ -214,7 +214,7 @@
-
+
@@ -268,20 +268,20 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/JdShopListener/JdShopListener/MainWindowViewModel.cs b/JdShopListener/JdShopListener/MainWindowViewModel.cs
index 0267641..ca598e5 100644
--- a/JdShopListener/JdShopListener/MainWindowViewModel.cs
+++ b/JdShopListener/JdShopListener/MainWindowViewModel.cs
@@ -33,7 +33,8 @@ namespace JdShopListener
new ProModel(){ Name="价格" , Type= ProType.Price},
new ProModel(){ Name="活动" , Type= ProType.Active},
new ProModel(){ Name="促销" , Type= ProType.Promotion},
- new ProModel(){ Name="优惠券" , Type= ProType.Coupons}
+ new ProModel(){ Name="优惠券" , Type= ProType.Coupons},
+ new ProModel(){ Name="Sku" , Type= ProType.Sku},
};
DateList = new System.Collections.ObjectModel.ObservableCollection() {
@@ -61,7 +62,10 @@ namespace JdShopListener
SkuList.Clear();
var list= DbHelper.Db.GetSkuList();
list.ForEach(c => {
- SkuList.Add(c);
+ if (c.IsShow == 1)
+ {
+ SkuList.Add(c);
+ }
});
}
@@ -191,9 +195,9 @@ namespace JdShopListener
set { Set(ref _IsAdd, value); }
}
- private bool _IsStart;
+ private bool? _IsStart=false;
- public bool IsStart
+ public bool? IsStart
{
get { return _IsStart; }
set { Set(ref _IsStart, value); }
@@ -245,12 +249,38 @@ namespace JdShopListener
SpuId = spuId
};
+ if (model.SkuId == Sku)
+ {
+ model.IsShow = 1;
+ }
+
+
+
//去除重复
if (SkuList.Count(c => c.SkuId == model.SkuId) > 0)
+ {
+
+ if (model.IsShow == 1)
+ {
+ var osku = SkuList.FirstOrDefault(c => c.SkuId == model.SkuId);
+
+ if (osku.IsShow != 1)
+ {
+
+ osku.IsShow = 1;
+ DbHelper.Db.UpdateSkuModel(osku);
+ }
+
+ }
+
+
continue;
+ }
+
//加入本地数据库
skus.Add(model);
+
Application.Current.Dispatcher.Invoke(() =>
{
SkuList.Add(model);
@@ -331,7 +361,7 @@ namespace JdShopListener
///
public void Start()
{
- if (!IsStart)
+ if (IsStart==false)
{
IsStart = true;
Thread t = new Thread(() =>
@@ -339,12 +369,36 @@ namespace JdShopListener
LastItemChangeList.Clear();
LastItemChangeList = DbHelper.Db.GetLastItemChanges();
- DoWork();
+ while (IsStart==true)
+ {
+ AddLog("开始sku定时监控!");
+
+ DoWork();
+
+ AddLog("全部sku监控执行完成,等待一小时后开始下一轮监控!");
+
+ for(int i=0;i<60;i++)
+ {
+ if (IsStart != true)
+ break;
+ for (int s = 0; s < 60; s++)
+ {
+ if (IsStart != true)
+ break;
+ //等待一小时
+ Thread.Sleep(1000);
+ }
+ }
+ }
IsStart = false;
});
t.Start();
}
+ else {
+ IsStart = null;
+ AddLog("开始停止监控!");
+ }
}
///
@@ -488,6 +542,66 @@ namespace JdShopListener
});
}
break;
+
+ case ProType.Sku:
+ {
+ var data = list.Where(c => c.NewSkus != c.OldSkus).ToList();
+ data.ForEach(item =>
+ {
+
+ ItemData change = new ItemData()
+ {
+ Date = item.Date,
+ Desc = item.Desc,
+ ImgUrl = item.ImgUrl,
+ SkuId = item.SkuId
+ };
+
+ if (item.OldSkus == null)
+ {
+ item.OldSkus = "[]";
+ }
+ if (item.NewSkus == null)
+ {
+ item.NewSkus = "[]";
+ }
+
+
+ List addSkus = new List();
+ List removeSkus = new List();
+
+ var oldList = Newtonsoft.Json.JsonConvert.DeserializeObject>(item.OldSkus).Select(c => c.Title);
+ var newList = Newtonsoft.Json.JsonConvert.DeserializeObject>(item.NewSkus).Select(c => c.Title);
+
+ foreach (var sku in newList)
+ {
+ //如果旧列表不存在就是新增
+ if (!oldList.Contains(sku))
+ {
+ addSkus.Add(new ProListModel() { Title=sku });
+ }
+ }
+
+ foreach (var sku in oldList)
+ {
+ //如果新列表没有就是删除
+ if (!newList.Contains(sku))
+ {
+ removeSkus.Add(new ProListModel() { Title = sku });
+ }
+ }
+
+
+ change.OldProList = removeSkus;
+ change.NewProList = addSkus;
+
+ Application.Current.Dispatcher.Invoke(() =>
+ {
+ ItemList.Add(change);
+ });
+ });
+ }
+ break;
}
}
@@ -532,139 +646,176 @@ namespace JdShopListener
//开始监控全部
foreach (var sku in SkuList)
{
- var lastSku = LastItemChangeList.FirstOrDefault(c => c.SkuId == sku.SkuId);
-
- if(lastSku==null)
+ if (IsStart != true)
{
- lastSku = new ItemChangeModel();
+ break;
}
- ItemChangeModel item = new ItemChangeModel()
+ try
{
- Date = DateTime.Now,
- Desc = sku.Desc,
- ImgUrl = sku.ImgUrl,
- SkuId = sku.SkuId
- };
+ var lastSku = LastItemChangeList.FirstOrDefault(c => c.SkuId == sku.SkuId);
- var result = GetWareBusiness(sku);
+ if (lastSku == null)
+ {
+ lastSku = new ItemChangeModel();
+ }
- //价格
- decimal? price = result.price.p;
- if (price == null || price == 0)
- {
- price = result.price.op ?? 0;
- }
+ ItemChangeModel item = new ItemChangeModel()
+ {
+ Date = DateTime.Now,
+ Desc = sku.Desc,
+ ImgUrl = sku.ImgUrl,
+ SkuId = sku.SkuId
+ };
- item.NewPrice = (decimal)price;
+ var result = GetWareBusiness(sku);
- #region 活动
- var newActive = new List