diff --git a/BBWY.JDSDK/Request/SkuWriteUpdateSkusRequest.cs b/BBWY.JDSDK/Request/SkuWriteUpdateSkusRequest.cs index 96cf0300..10ff3bef 100644 --- a/BBWY.JDSDK/Request/SkuWriteUpdateSkusRequest.cs +++ b/BBWY.JDSDK/Request/SkuWriteUpdateSkusRequest.cs @@ -43,6 +43,8 @@ namespace Jd.Api.Request public List multiCateProps { get; set; } public int? promiseId { get; set; } + + public string saleAttrTemplateId { get; set; } } public class SkuWriteUpdateSkusItemSaleAttrs @@ -57,5 +59,7 @@ namespace Jd.Api.Request public List attrValueAlias { get; set; } public int index { get; set; } + + public List attrValuesSeqNo { get; set; } } } diff --git a/BBWY.Server.API/Controllers/TestController.cs b/BBWY.Server.API/Controllers/TestController.cs index f7a33fea..6a5d2d0c 100644 --- a/BBWY.Server.API/Controllers/TestController.cs +++ b/BBWY.Server.API/Controllers/TestController.cs @@ -23,5 +23,11 @@ namespace BBWY.Server.API.Controllers testBusiness.StatisticsProduct(); } + + [HttpPost] + public void XiuFu() + { + testBusiness.XiuFu(); + } } } diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 8f1bd0b2..46648140 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1000,7 +1000,7 @@ namespace BBWY.Server.Business for (var i = 0; i < request.GiftTemplateSkuList.Count(); i++) { var giftSku = request.GiftTemplateSkuList[i]; - var colorProperty = colorSaleAttrs[takeColorIndex]; + var colorPropertyValue = colorSaleAttrs[takeColorIndex]; var p = new SkuWriteUpdateSkusItem() { @@ -1013,14 +1013,26 @@ namespace BBWY.Server.Business outerId = $"{request.OuterId}{(i + 1).ToString().PadLeft(3, '0')}", saleAttrs = new List() { - new SkuWriteUpdateSkusItemSaleAttrs() + //new SkuWriteUpdateSkusItemSaleAttrs() + //{ + // type = "com.jd.pop.ware.ic.api.domain.Prop", + // attrId = colorProperty.Value("attId"), + // attrValues = new List() { colorProperty.Value("id") }, + // index = takeColorIndex, + // attrValuesSeqNo = new List(){ takeColorIndex } + //} + + new SkuWriteUpdateSkusItemSaleAttrs() { type = "com.jd.pop.ware.ic.api.domain.Prop", - attrId = colorProperty.Value("attId"), - attrValues = new List() { colorProperty.Value("id") }, - index = takeColorIndex + attrId = colorPropertyValue.Value("attId"), + //attrValues = new List() { colorPropertyValue.Value("id") }, + attrValueAlias = new List(){ giftSku.Title }, // colorPropertyValue.Value("name") + index = takeColorIndex, + attrValuesSeqNo = new List(){ takeColorIndex } } - } + }, + saleAttrTemplateId = "POP_MODEL" //promiseId = 30603710 //固定时效模板Id 48小时发货 }; @@ -1037,26 +1049,26 @@ namespace BBWY.Server.Business } } - //修改标题参数 - updateSkuTitleParamList.Add(new WareWriteUpdateWareSaleAttrvalueAliasRequestItem() - { - attrId = p.saleAttrs[0].attrId, - attrValues = p.saleAttrs[0].attrValues, - attrValueAlias = new List() { giftSku.Title } - }); - - //修改商品细节图参数 - var imgUrlBuilder = new StringBuilder(); - var imgIndexBuilder = new StringBuilder(); - imgUrlBuilder.Append($"{giftSku.Logo.Substring(giftSku.Logo.IndexOf("jfs"))},"); - imgIndexBuilder.Append("1,"); - imageWriteUpdateRequestList.Add(new ImageWriteUpdateRequest() - { - wareId = wareId, - colorId = colorProperty.Value("id"), - imgUrl = imgUrlBuilder.ToString().Trim(','), - imgIndex = imgIndexBuilder.ToString().Trim(',') - }); + ////修改标题参数 + //updateSkuTitleParamList.Add(new WareWriteUpdateWareSaleAttrvalueAliasRequestItem() + //{ + // attrId = p.saleAttrs[0].attrId, + // attrValues = p.saleAttrs[0].attrValues, + // attrValueAlias = new List() { giftSku.Title } + //}); + + ////修改商品细节图参数 + //var imgUrlBuilder = new StringBuilder(); + //var imgIndexBuilder = new StringBuilder(); + //imgUrlBuilder.Append($"{giftSku.Logo.Substring(giftSku.Logo.IndexOf("jfs"))},"); + //imgIndexBuilder.Append("1,"); + //imageWriteUpdateRequestList.Add(new ImageWriteUpdateRequest() + //{ + // wareId = wareId, + // colorId = colorProperty.Value("id"), + // imgUrl = imgUrlBuilder.ToString().Trim(','), + // imgIndex = imgIndexBuilder.ToString().Trim(',') + //}); takeColorIndex--; skusParamList.Add(p); @@ -1127,27 +1139,55 @@ namespace BBWY.Server.Business } } - var newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value("skuId")).ToList(); - giftSkuIdList.AddRange(newSkuList); - } - #endregion + var newSkuIdList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value("skuId")).ToList(); + giftSkuIdList.AddRange(newSkuIdList); - #region sku改名 - { - stepText = "sku改名"; - var req = new WareWriteUpdateWareSaleAttrvalueAliasRequest() + + var newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList(); + var imgIndex = 1; + StringBuilder colorBuilder = new StringBuilder(); + StringBuilder imgUrlBuilder = new StringBuilder(); + StringBuilder imgIndexBuilder = new StringBuilder(); + foreach (var skuJToken in newSkuList) + { + var skuTitle = skuJToken["saleAttrs"][0]["attrValueAlias"][0].ToString(); + var colorId = skuJToken["saleAttrs"][0]["attrValues"][0].ToString(); + var currentImgIndex = imgIndex; + imgIndex++; + var giftSku = request.GiftTemplateSkuList.FirstOrDefault(x => x.Title == skuTitle); + var imgUrl = giftSku.Logo.Substring(giftSku.Logo.IndexOf("jfs")); + + colorBuilder.Append($"{colorId},"); + imgUrlBuilder.Append($"{imgUrl},"); + imgIndexBuilder.Append($"{currentImgIndex},"); + } + + imageWriteUpdateRequestList.Add(new ImageWriteUpdateRequest() { wareId = wareId, - props = updateSkuTitleParamList - }; - var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); - if (res.Json == null) - res.Json = JObject.Parse(res.Body); - if (res.IsError) - throw new BusinessException($"sku改名失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); + colorId = colorBuilder.ToString().TrimEnd(','), + imgUrl = imgUrlBuilder.ToString().TrimEnd(','), + imgIndex = imgIndexBuilder.ToString().TrimEnd(',') + }); } #endregion + //#region sku改名 + //{ + // stepText = "sku改名"; + // var req = new WareWriteUpdateWareSaleAttrvalueAliasRequest() + // { + // wareId = wareId, + // props = updateSkuTitleParamList + // }; + // var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + // if (res.Json == null) + // res.Json = JObject.Parse(res.Body); + // if (res.IsError) + // throw new BusinessException($"sku改名失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); + //} + //#endregion + #region sku修改细节图 stepText = "sku修改细节图"; foreach (var imageWriteUpdateRequest in imageWriteUpdateRequestList) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index b055c426..f2b484d6 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -604,6 +604,7 @@ namespace BBWY.Server.Business if (isNewOrder) { dbOrder.OrderState = orderState; + dbOrder.PreferentialAmount = preferentialAmount; } else if ((orderState != null && orderState != dbOrder.OrderState) || buyerRemark != dbOrder.BuyerRemark || diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index 23a9a1b3..c4398cee 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -8,6 +8,7 @@ using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.IO; +using System.Linq; namespace BBWY.Server.Business { @@ -86,6 +87,48 @@ namespace BBWY.Server.Business var filePath = Path.Combine(AppContext.BaseDirectory, "result.csv"); File.WriteAllLines(filePath, list, System.Text.Encoding.UTF8); } + + public void XiuFu() + { + var st = DateTime.Parse("2023-09-01"); + var orderList = fsql.Select().InnerJoin((oc, o) => oc.OrderId == o.Id) + .Where((oc, o) => o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.PreferentialAmount == 0) + .GroupBy((oc, o) => oc.OrderId) + .ToList(g => new Order + { + Id = g.Key, + PreferentialAmount = g.Sum(g.Value.Item1.CouponPrice) + }); + + List> updateOrderList = new List>(); + var totalCount = orderList.Count(); + for (var i = 0; i < totalCount; i++) + { + var order = orderList[i]; + updateOrderList.Add(fsql.Update(order.Id).Set(o => o.PreferentialAmount, order.PreferentialAmount)); + if (updateOrderList.Count() == 50) + { + Console.WriteLine($"执行数据库更新 {i}/{totalCount}"); + fsql.Transaction(() => + { + foreach (var update in updateOrderList) + update.ExecuteAffrows(); + }); + updateOrderList.Clear(); + } + } + + if (updateOrderList.Count() > 0) + { + fsql.Transaction(() => + { + foreach (var update in updateOrderList) + update.ExecuteAffrows(); + }); + updateOrderList.Clear(); + } + Console.WriteLine("更新完毕"); + } } public class JPCount