diff --git a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
index ba7683f..6529d47 100644
--- a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
@@ -43,7 +43,7 @@ namespace BBWYB.Server.API.Controllers
/// 网页创建采购单
///
///
- [HttpPost]
+ [HttpPost, AllowAnonymous]
public void WebCreatePurchaseOrder([FromBody] WebCreateOrderRequest request)
{
purchaseOrderBusiness.WebCreatePurchaseOrder(request);
diff --git a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs
index f99350f..1830bcc 100644
--- a/BBWYB.Server.API/Controllers/SkuOptimizationController.cs
+++ b/BBWYB.Server.API/Controllers/SkuOptimizationController.cs
@@ -80,5 +80,15 @@ namespace BBWYB.Server.API.Controllers
{
return optimizationBusiness.GetNoCompletedSpuOptimizationTaskCount(GetUserId());
}
+
+ ///
+ /// 获取超时任务数量
+ ///
+ ///
+ [HttpGet]
+ public long GetTimeOutSpuOptimizationTaskCount()
+ {
+ return optimizationBusiness.GetTimeOutSpuOptimizationTaskCount();
+ }
}
}
diff --git a/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs b/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs
index 9ac86c6..30f939b 100644
--- a/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/Aggregion/AggregionPurchaseSchemeBusiness.cs
@@ -136,21 +136,46 @@ namespace BBWYB.Server.Business
#endregion
#region 采购方案
- List dbSchemeList = fsql.Select(schemeIdList).ToList();
-
- #region 最近采购成本
- var recentOrderPurchaserRelationList = fsql.Select()
- .InnerJoin((opi, opri) => opi.OrderId == opri.OrderId &&
- opi.PurchaseOrderId == opri.PurchaseOrderId)
- .Where((opi, opri) => opi.IsEnabled == true && schemeIdList.Contains(opri.SchemeId.Value))
- .GroupBy((opi, opri) => opri.SchemeId.Value)
- .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item2.Id) })
- .From()
- .InnerJoin((opri, opri2) => opri.MaxId == opri2.Id)
- .ToList((opri, opri2) => opri2);
- var purchaseOrderIdList = recentOrderPurchaserRelationList.Select(x => x.PurchaseOrderId).Distinct().ToList();
+ //List dbSchemeList = fsql.Select(schemeIdList).ToList();
+
+ //#region 最近采购成本/采购时间
+
+
+ //var recentPurchaseRecordList = fsql.Select()
+ // .InnerJoin((opi, opri, opsi) => opi.OrderId == opri.OrderId &&
+ // opi.PurchaseOrderId == opri.PurchaseOrderId)
+ // .InnerJoin((opi, opri, opsi) => opri.PurchaseOrderId == opsi.PurchaseOrderId &&
+ // opri.PurchaseSkuId == opsi.PurchaseSkuId)
+ // .Where((opi, opri, opsi) => opi.IsEnabled == true &&
+ // schemeIdList.Contains(opri.SchemeId.Value))
+ // .OrderByDescending((opi, opri, opsi) => opri.CreateTime)
+ // .Page(1, 1000)
+ // .ToList((opi, opri, opsi) => new
+ // {
+ // opi.OrderId,
+ // opi.PurchaseOrderId,
+ // opri.SchemeId,
+ // opsi.PurchasedPrice,
+ // opsi.CreateTime
+ // });
+
+ //var recentPurchaseRecordGroups = recentPurchaseRecordList.GroupBy(x => x.SchemeId);
+ //foreach (var relationGroup in recentPurchaseRecordGroups)
+ //{
+ // var scheme = dbSchemeList.FirstOrDefault(s => s.Id == relationGroup.Key.Value);
+ // if (scheme == null)
+ // continue;
+
+ // //取最近一笔订单,最大的订单号
+ // var recentOrderId = relationGroup.Max(x => x.OrderId);
+ // var recentOrderRelationRecordList = relationGroup.Where(x => x.OrderId == recentOrderId);
+ // scheme.LastPurchasePriceCost = recentOrderRelationRecordList.Sum(x=>x.PurchasedPrice);
+ // scheme.LastBargainingTime = recentOrderRelationRecordList.FirstOrDefault()?.CreateTime;
+ //}
+
+
+ //#endregion
- #endregion
#region 采购次数
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index ac504a4..cb16449 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -3382,7 +3382,7 @@ namespace BBWYB.Server.Business
public void WebCreatePurchaseOrder(WebCreateOrderRequest request)
{
- nLogManager.Default().Info($"CreatePurchaseOrder\r\n{JsonConvert.SerializeObject(request)}");
+ nLogManager.Default().Info($"WebCreateOrderRequest\r\n{JsonConvert.SerializeObject(request)}");
var dbOrder = fsql.Select(request.OrderId).ToOne();
if (dbOrder == null)
@@ -3513,13 +3513,15 @@ namespace BBWYB.Server.Business
Collect1688Helper collect1688Helper = new Collect1688Helper(cookies);
- var adress = request.Consignee.Province + request.Consignee.City + request.Consignee.Town + request.Consignee.Address;
+ var adress = request.Consignee.Province + request.Consignee.City+request.Consignee.County + request.Consignee.Town ;
- var orderModel = (Model.Enums.OrderModel)request.PurchaseOrderMode;
+ var detailAdress = request.Consignee.Town + request.Consignee.Address;
+ var orderModel = (Model.Enums.OrderModel)request.PurchaseOrderMode;
+ //+ request.Consignee.Address
- var prewOrder = collect1688Helper.PrewOrder(orderProductParamList.ToList(), adress, orderModel, request.Consignee.Mobile, request.Consignee.ContactName);
+ var prewOrder = collect1688Helper.PrewOrder(orderProductParamList.ToList(), orderModel, request.Consignee);
if (prewOrder == null)
{
throw new BusinessException($"登录失效,正在重新登陆,登录后点击下单!");
diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
index f65655b..fe13258 100644
--- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
+++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
@@ -183,6 +183,7 @@ namespace BBWYB.Server.Business
BelongShopName = belongShop.ShopName,
CompletionTime = null,
CreateTime = DateTime.Now,
+ TaskTime = DateTime.Now,
IsOptimizationCompleted = false,
LastOptimizationTime = null,
ProductId = productId,
@@ -330,7 +331,7 @@ namespace BBWYB.Server.Business
Id = idGenerator.NewLong(),
CreateTme = DateTime.Now,
//ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1),
- ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now),
+ ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(1)),
//OrderId = o.OrderId,
//OrderSn = o.OrderSn,
ShopId = shopId,
@@ -736,7 +737,7 @@ namespace BBWYB.Server.Business
.Page(request.PageIndex, request.PageSize)
.ToSql();
- var taskList = select.OrderBy(t => t.CreateTime)
+ var taskList = select.OrderBy(t => t.TaskTime)
.Count(out var total)
.Page(request.PageIndex, request.PageSize)
.ToList();
@@ -790,7 +791,8 @@ namespace BBWYB.Server.Business
SkuIdList = skuIdList,
BargainTeamIdList = bargainTeamIdList,
IncludePurchaseSkuBasicInfo = 1,
- IncludePurchaseSkuStatisticsInfo = 1
+ IncludePurchaseSkuStatisticsInfo = 1,
+ IncludeSkuStatisticsInfo = 1
});
#endregion
@@ -818,7 +820,8 @@ namespace BBWYB.Server.Business
SchemeGroupId = ps.SchemeGroupId,
IsFreeFreight = ps.IsFreeFreight,
LastPurchasePriceCost = ps.LastPurchasePriceCost,
- PurchaseSchemeCost = ps.BargainingCost ?? ps.DefaultCost
+ PurchaseSchemeCost = ps.BargainingCost ?? ps.DefaultCost,
+ SkuLastPurchasePriceCost = ps.SkuLastPurchasePriceCost
}).ToList();
}
#endregion
@@ -998,7 +1001,8 @@ namespace BBWYB.Server.Business
}
spuOptimizationTask.ReStartTimes++;
updateSpuTask = fsql.Update(spuOptimizationTask.Id)
- .Set(t => t.ReStartTimes, spuOptimizationTask.ReStartTimes);
+ .Set(t => t.ReStartTimes, spuOptimizationTask.ReStartTimes)
+ .Set(t => t.TaskTime, DateTime.Now);
}
}
@@ -1070,5 +1074,17 @@ namespace BBWYB.Server.Business
return fsql.Select().Where(t => t.IsOptimizationCompleted == false).Count();
}
+
+ ///
+ /// 获取超时的任务数量
+ ///
+ ///
+ public long GetTimeOutSpuOptimizationTaskCount()
+ {
+ return fsql.Select()
+ .Where(t => t.ReStartTimes > 0)
+ .Count();
+ }
+
}
}
diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
index f8cb9ef..7562bb2 100644
--- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
@@ -498,6 +498,7 @@ namespace BBWYB.Server.Business.Sync
BelongShopName = sourceShopName,
CompletionTime = null,
CreateTime = DateTime.Now,
+ TaskTime = DateTime.Now,
IsOptimizationCompleted = false,
LastOptimizationTime = null,
ProductId = spuGroup.Key,
@@ -641,7 +642,7 @@ namespace BBWYB.Server.Business.Sync
Id = idGenerator.NewLong(),
CreateTme = DateTime.Now,
//ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1),
- ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now),
+ ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(1)),
//OrderId = o.OrderId,
//OrderSn = o.OrderSn,
ShopId = shopId,
diff --git a/BBWYB.Server.Business/_1688Helper/Collect1688Helper.cs b/BBWYB.Server.Business/_1688Helper/Collect1688Helper.cs
index 338b9f9..3e33b6d 100644
--- a/BBWYB.Server.Business/_1688Helper/Collect1688Helper.cs
+++ b/BBWYB.Server.Business/_1688Helper/Collect1688Helper.cs
@@ -1,6 +1,7 @@
using BBWYB.Common.Models;
using BBWYB.Server.Model._1688;
+using BBWYB.Server.Model.Dto;
using HtmlAgilityPack;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -154,7 +155,7 @@ namespace BBWYB.Server.Business._1688Helper
foreach (HtmlNode zone_order in zone_orders)
{
// 获取 data-source 属性的值
- string dataSourceValue = zone_order.GetAttributeValue("data-source", "");
+ string dataSourceValue = zone_order.GetAttributeValue("data-source", "")?.Replace(""", "\"");
var groupHeaderJson = JsonConvert.DeserializeObject(dataSourceValue);
//sellerMemberId
@@ -191,7 +192,7 @@ namespace BBWYB.Server.Business._1688Helper
if (groupDivDataSource != null)
{
- var json = JsonConvert.DeserializeObject(groupDivDataSource);
+ var json = JsonConvert.DeserializeObject(groupDivDataSource?.Replace(""", "\""));
group = json.group.ToString();
stepName = json.stepName.ToString();
}
@@ -267,11 +268,6 @@ namespace BBWYB.Server.Business._1688Helper
//'ext':'{\"detailOrderBizAttributes\":{\"b_cargo_from\":\"offerdetail:pc;ipvId:2150462317125683404374580e106c\"}}',
var ext = GetRegexValue(data_source, "'ext':'([^']+)'")?.Replace("\\"","\"");
- ////'mixAmount':'100'
-
- var mixAmount = decimal.Parse(GetRegexValue(data_source, "'mixAmount':'([^']+)'"));
-
-
//'offerId':'563883060952',
var offerId = GetRegexValue(data_source, "'offerId':'([^']+)'");
@@ -303,7 +299,6 @@ namespace BBWYB.Server.Business._1688Helper
OutId = outId,
OfferPriceRangeJson = offerPriceRangeJson,
Ext = ext,
- MixAmount = mixAmount
});
}
@@ -898,7 +893,7 @@ namespace BBWYB.Server.Business._1688Helper
return response;
}
- public PrewOrderResponse PrewOrder(List orderProducts, string address, OrderModel orderModel,string phoneNumber,string UserName)
+ public PrewOrderResponse PrewOrder(List orderProducts, OrderModel orderModel, ConsigneeRequest Consignee)
{
var flow = orderModel.ToString(); //下单类型
//获取时间戳
@@ -908,6 +903,9 @@ namespace BBWYB.Server.Business._1688Helper
var _csrf_token = productParameter.Csrf_token;
var lvid = productParameter.Lvid;
var orderUrl = productParameter.OrderUrl;
+
+ var address = Consignee.Province+ Consignee.City+ Consignee.County;
+
var adressModel = InputAddress(address, _csrf_token);
if (adressModel == null)
{
@@ -916,9 +914,11 @@ namespace BBWYB.Server.Business._1688Helper
AddLog?.Invoke($"获取地址信息成功,姓名:{adressModel.PersonalName},手机号:{adressModel.MobileNO},地址:{adressModel.AddressDetail},邮编:{adressModel.DivisionZip}");
var addressCode = adressModel.AddressCode;
- var addressDetail = adressModel.AddressDetail;
- adressModel.PersonalName = UserName;
- adressModel.MobileNO= phoneNumber;
+
+ adressModel.PersonalName = Consignee.ContactName;
+ adressModel.MobileNO= Consignee.Mobile;
+
+ adressModel.AddressDetail = Consignee.Town+ Consignee.Address;
var divisionZip = adressModel.DivisionZip;
//刷新地址
productParameter = ReflashAdress(productParameter, adressModel, orderModel);
diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs
index 1c5c598..e496741 100644
--- a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs
+++ b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs
@@ -40,6 +40,12 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
+ ///
+ /// 任务时间(创建/重启),用于查询
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? TaskTime { get; set; }
+
///
/// 是否优化完成
///
diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs
index 0b5c60a..b90105b 100644
--- a/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Optimization/SkuOptimizationTaskResponse.cs
@@ -37,6 +37,11 @@ namespace BBWYB.Server.Model.Dto
///
public decimal? LastPurchasePriceCost { get; set; } = 0.0M;
+ ///
+ /// 店铺SKU的最近采购成本(配件单价之和)
+ ///
+ public decimal? SkuLastPurchasePriceCost { get; set; }
+
///
/// 采购方案成本
///
diff --git a/BBWYB.Server.Model/Dto/_1688/OrderParameter.cs b/BBWYB.Server.Model/Dto/_1688/OrderParameter.cs
index 6ae7c80..9704536 100644
--- a/BBWYB.Server.Model/Dto/_1688/OrderParameter.cs
+++ b/BBWYB.Server.Model/Dto/_1688/OrderParameter.cs
@@ -106,6 +106,5 @@ namespace BBWYB.Server.Model._1688
///
public int ChooseFreeFreight { get; set; }
public string Ext { get; set; }
- public decimal MixAmount { get; set; }
}
}