diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
index a4f05ae2..66636f55 100644
--- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
+++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
@@ -872,7 +872,8 @@ namespace BBWY.Server.Business
                     AppSecret = request.AppSecret,
                     AppToken = request.AppToken,
                     Platform = Enums.Platform.京东,
-                    IsCheckSkuCount = true
+                    IsCheckSkuCount = true,
+                    IsContainSource = true
                 };
 
                 IList<ProductSkuResponse> motherTemplateSkuList = null;
@@ -989,15 +990,35 @@ namespace BBWY.Server.Business
 
                     #region 组装上架/改名/设置细节图参数
                     stepText = "组装上架/改名/设置细节图参数";
-                    var takeColorIndex = colorSaleAttrs.Count() - 1;
+                    var indexCount = colorSaleAttrs.Count() - 1;
+                    var noUsedIndexList = new List<int>();
+                    try
+                    {
+                        var usedIndexList = new List<int>();
+                        usedIndexList.AddRange(mainProductSkuList.Select(ps => Convert.ToInt32(ps.Source["saleAttrs"][0]["attrValuesSeqNo"][0].ToString())));
+                        for (var i = 0; i <= indexCount; i++)
+                        {
+                            if (usedIndexList.Contains(i))
+                                continue;
+                            noUsedIndexList.Add(i);
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        for (var i = 0; i <= indexCount; i++)
+                        {
+                            noUsedIndexList.Add(i);
+                        }
+                    }
+
                     var skusParamList = new List<SkuWriteUpdateSkusItem>();
                     var updateSkuTitleParamList = new List<WareWriteUpdateWareSaleAttrvalueAliasRequestItem>();
                     var imageWriteUpdateRequestList = new List<ImageWriteUpdateRequest>();
-
+                    var skuIndex = noUsedIndexList.Count() - 1;
                     for (var i = 0; i < request.GiftTemplateSkuList.Count(); i++)
                     {
                         var giftSku = request.GiftTemplateSkuList[i];
-                        var colorPropertyValue = colorSaleAttrs[takeColorIndex];
+                        //var colorPropertyValue = colorSaleAttrs[takeColorIndex];
 
                         var p = new SkuWriteUpdateSkusItem()
                         {
@@ -1009,14 +1030,13 @@ namespace BBWY.Server.Business
                             outerId = $"{request.OuterId}{(i + 1).ToString().PadLeft(3, '0')}",
                             saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>()
                             {
-
-                                 new SkuWriteUpdateSkusItemSaleAttrs()
+                                new SkuWriteUpdateSkusItemSaleAttrs()
                                 {
                                     type = "com.jd.pop.ware.ic.api.domain.Prop",
-                                    attrId = colorPropertyValue.Value<string>("attId"),
+                                    attrId = colorSaleAttrs[0].Value<string>("attId"),
                                     attrValueAlias = new List<string>(){ giftSku.Title },
-                                    index = takeColorIndex,
-                                    attrValuesSeqNo = new List<int?>(){ takeColorIndex }
+                                    index = noUsedIndexList[skuIndex],
+                                    attrValuesSeqNo = new List<int?>(){ noUsedIndexList[skuIndex] }
                                 }
                             },
                             saleAttrTemplateId = "POP_MODEL"
@@ -1034,8 +1054,8 @@ namespace BBWY.Server.Business
                                 p.multiCateProps.Add(m);
                             }
                         }
-
-                        takeColorIndex--;
+                        skuIndex--;
+                        //takeColorIndex--;
                         skusParamList.Add(p);
                     }
                     #endregion
@@ -1105,48 +1125,45 @@ namespace BBWY.Server.Business
                             }
                         }
 
-                        //记录上架返回值
-                        nLogManager.Default().Info($"任务Id {request.Id} 店铺Id {request.ShopId} 上架赠品返回值 {res.Body}");
+                        Thread.Sleep(30 * 1000);
+                        stepText = "从sku列表接口匹配刚上架的赠品";
+                        giftSkuList = new List<ProductSkuResponse>();
+                        var newMainProductSkuList = GetProductSkuList(new SearchProductSkuRequest()
+                        {
+                            AppKey = request.AppKey,
+                            AppSecret = request.AppSecret,
+                            AppToken = request.AppToken,
+                            Platform = Enums.Platform.京东,
+                            Spu = request.MainProductSpu,
+                            IsContainSource = true
+                        });
 
-                        stepText = "获取上架skuId";
-                        var newSkuIdList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value<string>("skuId")).ToList();
+                        //记录上架返回值
+                        nLogManager.Default().Info($"任务Id {request.Id} 店铺Id {request.ShopId} 上架赠品sku查询返回值 {JsonConvert.SerializeObject(newMainProductSkuList)}");
 
-                        #region 处理上架之后没有skuId的情况
-                        if (newSkuIdList.Any(s => string.IsNullOrEmpty(s)))
+                        foreach (var ps in newMainProductSkuList)
                         {
-                            newSkuIdList.Clear();
-                            Thread.Sleep(30 * 1000);
-                            var _mainProductSkuList = GetProductSkuList(new SearchProductSkuRequest()
-                            {
-                                AppKey = request.AppKey,
-                                AppSecret = request.AppSecret,
-                                AppToken = request.AppToken,
-                                Platform = Enums.Platform.京东,
-                                Spu = request.MainProductSpu
-                            });
-                            foreach (var ps in _mainProductSkuList)
+                            if (request.GiftTemplateSkuList.Any(x => x.Title == ps.Title))
                             {
-                                if (request.GiftTemplateSkuList.Any(x => x.Title == ps.Title))
-                                {
-                                    //此sku是赠品sku
-                                    newSkuIdList.Add(ps.Id);
-                                }
+                                //此sku是赠品sku
+                                //newSkuIdList.Add(ps.Id);
+                                giftSkuList.Add(ps);
                             }
-                            if (newSkuIdList.Count() == 0)
-                                throw new BusinessException("未能从sku列表接口正常获取新上架sku");
                         }
-                        #endregion
+                        if (giftSkuList.Count() == 0)
+                            throw new BusinessException("未能从sku列表接口正常获取新上架sku");
 
-                        giftSkuIdList.AddRange(newSkuIdList);
+                        giftSkuIdList.AddRange(giftSkuList.Select(gs => gs.Id));
 
-                        stepText = "获取上架sku";
-                        var newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList();
+                        stepText = "设置赠品图片";
+                        //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)
+                        foreach (var giftsku in giftSkuList)
                         {
+                            var skuJToken = giftsku.Source;
                             var skuTitle = skuJToken["saleAttrs"][0]["attrValueAlias"][0].ToString();
                             var colorId = "0000000000";
                             try