饿鲜达合并,按美团调价包刷新京西价

This commit is contained in:
苏尹岚
2020-02-11 18:25:58 +08:00
parent 129ce499b7
commit 4d9c933167
8 changed files with 140 additions and 61 deletions

View File

@@ -1443,3 +1443,12 @@ func DeleteSkuNameExPrefixOverdue(db *dao.DaoDB) (err error) {
_, err = dao.DeleteSkuNameExPrefixOverdue(db)
return err
}
func SumExianDaDepot() (err error) {
// result, err := api.EbaiAPI.GetExianDaSkuDepot()
// for _, v := range result {
// v.ElemeGoodsID
// v.ImageURL
// }
return err
}

View File

@@ -3543,7 +3543,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
return hint, err
}
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, isAsync, isContinueWhenError bool) (hint string, err error) {
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) {
var (
db = dao.GetDB()
jdMap = make(map[int][]*JdStoreSkus)
@@ -3553,67 +3553,111 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
for _, v := range jdStoreSkus {
var (
pricePercentagePack []*model.PricePercentageItem
cats []*model.ThingMap
skus []*model.SkuAndName
)
sql := `
SELECT t1.*
FROM thing_map t1
WHERE t1.deleted_at = ? AND t1.thing_type = ?
AND t1.vendor_thing_id = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
model.ThingTypeSku,
v.JdSkuID,
}
err = dao.GetRows(db, &cats, sql, sqlParams...)
if len(cats) > 0 {
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
if err != nil || len(skus) == 0 {
return result, fmt.Errorf("没有找到该京西skuID,京西skuID :[%v]", cats[0].ThingID)
if vendorID == model.VendorIDJD {
for _, v := range jdStoreSkus {
var (
pricePercentagePack []*model.PricePercentageItem
cats []*model.ThingMap
skus []*model.SkuAndName
)
sql := `
SELECT t1.*
FROM thing_map t1
WHERE t1.deleted_at = ? AND t1.thing_type = ?
AND t1.vendor_thing_id = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
model.ThingTypeSku,
v.JdSkuID,
}
} else {
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID,京东skuID :[%v]", v.JdSkuID)
}
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), model.VendorIDJD)
if err != nil || store == nil {
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
}
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
JdSkuID: skus[0].NameID,
Price: jxPrice,
})
}
for k, v := range jdMap {
var skuNameMap = make(map[int]int)
for _, vv := range v {
if skuNameMap[vv.JdSkuID] != 0 {
if skuNameMap[vv.JdSkuID] > vv.Price {
skuNameMap[vv.JdSkuID] = vv.Price
err = dao.GetRows(db, &cats, sql, sqlParams...)
if len(cats) > 0 {
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
if err != nil || len(skus) == 0 {
return result, fmt.Errorf("没有找到该京西skuID,京西skuID :[%v]", cats[0].ThingID)
}
} else {
skuNameMap[vv.JdSkuID] = vv.Price
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID,京东skuID :[%v]", v.JdSkuID)
}
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), vendorID)
if err != nil || store == nil {
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
}
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
JdSkuID: skus[0].NameID,
Price: jxPrice,
})
}
for k, v := range jdMap {
var skuNameMap = make(map[int]int)
for _, vv := range v {
if skuNameMap[vv.JdSkuID] != 0 {
if skuNameMap[vv.JdSkuID] > vv.Price {
skuNameMap[vv.JdSkuID] = vv.Price
}
} else {
skuNameMap[vv.JdSkuID] = vv.Price
}
}
jxMap[k] = skuNameMap
}
for k, v := range jxMap {
for kk, vv := range v {
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
if len(result) > 0 && err == nil {
if result[0].UnitPrice > vv {
storeSkuBindInfo := &StoreSkuBindInfo{
StoreID: k,
NameID: kk,
UnitPrice: vv,
}
param = append(param, storeSkuBindInfo)
}
}
}
}
jxMap[k] = skuNameMap
}
for k, v := range jxMap {
for kk, vv := range v {
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
if len(result) > 0 && err == nil {
if result[0].UnitPrice > vv {
storeSkuBindInfo := &StoreSkuBindInfo{
StoreID: k,
NameID: kk,
UnitPrice: vv,
} else if vendorID == model.VendorIDMTWM {
for _, v := range jdStoreSkus {
var (
pricePercentagePack []*model.PricePercentageItem
)
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil)
store, _ := dao.GetStoreDetail(db, v.JdStoreID, vendorID)
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{
JdSkuID: skus[0].NameID,
Price: jxPrice,
})
}
for k, v := range jdMap {
var skuNameMap = make(map[int]int)
for _, vv := range v {
if skuNameMap[vv.JdSkuID] != 0 {
if skuNameMap[vv.JdSkuID] > vv.Price {
skuNameMap[vv.JdSkuID] = vv.Price
}
} else {
skuNameMap[vv.JdSkuID] = vv.Price
}
}
jxMap[k] = skuNameMap
}
for k, v := range jxMap {
for kk, vv := range v {
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
if len(result) > 0 && err == nil {
if result[0].UnitPrice > vv {
storeSkuBindInfo := &StoreSkuBindInfo{
StoreID: k,
NameID: kk,
UnitPrice: vv,
}
param = append(param, storeSkuBindInfo)
}
param = append(param, storeSkuBindInfo)
}
}
}