diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index 9a3c134c6..37aaeee08 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -1585,35 +1585,110 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) { // fmt.Println("deleteList2", deleteList) // cms.DeletedDuplicateWaitAuditData(ctx, dao.GetDB()) // orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, time.Now().AddDate(0, 0, -2).Format("20060102"), time.Now().Format("20060102")) + // var ( + // db = dao.GetDB() + // goods []*model.GoodsOrder + // ) + // sql := `SELECT * from goods_order where vendor_id = 0 and buyer_comment = '【JD】' and total_shop_money = 0 and status = 110 + // AND order_created_at > '2020-09-01'` + // dao.GetRows(db, &goods, sql, nil) + // for _, order2 := range goods { + // results, err := api.JdAPI.GetJdShopOrders(order2.OrderCreatedAt.AddDate(0, 0, -1).Format("20060102"), order2.OrderCreatedAt.Format("20060102"), globals.JdOrgCode, globals.JdLoginName) + // if err != nil || results == nil { + // return err + // } + // for _, v := range results.BillList.Result { + // if v.DueAmount != 0 { + // order, _ := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(v.OrderID), model.VendorIDJD) + // stores, _ := dao.GetStoreList(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, nil, nil, nil, "") + // if len(stores) > 0 { + // store := stores[0] + // if order.NewEarningPrice == 0 { + // jxutils.RefreshOrderEarningPrice2(order, store.PayPercentage) + // } + // if order.TotalShopMoney == 0 { + // order.TotalShopMoney = utils.Float64TwoInt64(v.DueAmount * 100) + // } + // dao.UpdateEntity(db, order, "TotalShopMoney", "NewEarningPrice") + // } + // } + // } + // } + type tmpJD struct { + JdStoreID int `orm:"column(jd_store_id)" json:"jdStoreID"` + SkuName string `json:"skuName"` + } + type tmpCount struct { + Count int `json:"count"` + ID int `orm:"column(id)" json:"id"` + } var ( - db = dao.GetDB() - goods []*model.GoodsOrder + db = dao.GetDB() + tmpJDs []*tmpJD + jdMaps = make(map[int][]string) + jdMaps2 = make(map[int][]int) + a = 99999 ) - sql := `SELECT * from goods_order where vendor_id = 0 and buyer_comment = '【JD】' and total_shop_money = 0 and status = 110 - AND order_created_at > '2020-09-01'` - dao.GetRows(db, &goods, sql, nil) - for _, order2 := range goods { - results, err := api.JdAPI.GetJdShopOrders(order2.OrderCreatedAt.AddDate(0, 0, -1).Format("20060102"), order2.OrderCreatedAt.Format("20060102"), globals.JdOrgCode, globals.JdLoginName) - if err != nil || results == nil { - return err - } - for _, v := range results.BillList.Result { - if v.DueAmount != 0 { - order, _ := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(v.OrderID), model.VendorIDJD) - stores, _ := dao.GetStoreList(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, nil, nil, nil, "") - if len(stores) > 0 { - store := stores[0] - if order.NewEarningPrice == 0 { - jxutils.RefreshOrderEarningPrice2(order, store.PayPercentage) - } - if order.TotalShopMoney == 0 { - order.TotalShopMoney = utils.Float64TwoInt64(v.DueAmount * 100) - } - dao.UpdateEntity(db, order, "TotalShopMoney", "NewEarningPrice") - } + sql := `SELECT * FROM tmp_jd LIMIT 1` + dao.GetRows(db, &tmpJDs, sql, nil) + for _, v := range tmpJDs { + jdMaps[v.JdStoreID] = append(jdMaps[v.JdStoreID], v.SkuName) + } + for jdStoreID, skuNames := range jdMaps { + for _, v := range skuNames { + var ( + nameIDs []int + tmpCount = &tmpCount{} + ) + skuNames, _ := dao.GetSkuNames(db, nil, nil, v, false) + for _, v := range skuNames { + nameIDs = append(nameIDs, v.ID) } + sql := ` + SELECT SUM(a.count) count, c.id + FROM order_sku a + JOIN sku b ON a.sku_id = b.id + JOIN sku_name c ON c.id = b.name_id + WHERE c.name_id IN (` + dao.GenQuestionMarks(len(nameIDs)) + `) + AND a.order_created_at > ? + GROUP BY 2 + ORDER BY 1 DESC + ` + sqlParams := []interface{}{time.Now().AddDate(0, -1, 0)} + dao.GetRow(db, &tmpCount, sql, sqlParams) + jdMaps2[jdStoreID] = append(jdMaps2[jdStoreID], tmpCount.ID) } } + for jdStoreID, skuNames := range jdMaps2 { + storeDetail, _ := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(jdStoreID), model.VendorIDJD) + var skuBindInfos []*cms.StoreSkuBindInfo + for _, v := range skuNames { + var skuBindInfoSkus []*cms.StoreSkuBindSkuInfo + skuBindInfo := &cms.StoreSkuBindInfo{ + IsFocus: 1, + IsSale: 1, + NameID: v, + StoreID: storeDetail.ID, + } + skus, _ := dao.GetSkus(db, nil, []int{v}, nil, nil, nil) + for _, vv := range skus { + skuBindInfoSku := &cms.StoreSkuBindSkuInfo{ + SkuID: vv.ID, + Stock: &a, + IsSale: 1, + } + skuBindInfoSkus = append(skuBindInfoSkus, skuBindInfoSku) + } + prices, _ := dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, []int{v}, utils.Time2Date(time.Now().AddDate(0, 0, -1))) + if len(prices) > 0 { + skuBindInfo.UnitPrice = prices[0].MidUnitPrice + } else { + skuBindInfo.UnitPrice = 1000 + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + } + cms.UpdateStoreSkus(ctx, 0, storeDetail.ID, skuBindInfos, true, true) + } return err }