饿鲜达合并,按美团调价包刷新京西价
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -3539,7 +3539,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)
|
||||
@@ -3549,67 +3549,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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
if err != nil {
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
|
||||
}
|
||||
if isNeedMapCat {
|
||||
if isNeedMapCat && !isExd {
|
||||
utils.CallFuncAsync(func() {
|
||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
||||
})
|
||||
@@ -161,7 +161,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, true, isExd)
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
strStoreID := utils.Int2Str(storeID)
|
||||
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil {
|
||||
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil && !isExd {
|
||||
utils.AfterFuncWithRecover(5*time.Second, func() {
|
||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
||||
// 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下
|
||||
|
||||
@@ -66,6 +66,7 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq"
|
||||
|
||||
ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ"
|
||||
ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA"
|
||||
ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d4188f026ac01fc93656266683e8dfb3127c2fdf894259e9034125ff3bdd2a997a385802ee3ef1802ba93a04acea34fde2d2b6e802c5dcd4ec6e3f4ad909a1d806e3ceeb349ed726b03d60ed1fe7010d4140aa338d9c5f05e3fec172c78d3d7f0ca579d61b7015af1bf99aa46b04d2b8a64aa50646dc09afe94b6b60e0ba9a933635db5e8b2a035e9b6d693b289acf1b256d5b9a3f8478c87b0b009115bfd1394f20bb5a0dc2c07b8d013a25f286ec6bf7f2d86010d65507e31358834b7a6b58fbd88cb3f1a12cf71c997b91c1527f6f3c10693f7c2bd6073da8633a98cd2dc1114dfa5be5ee0e60b02cf7e4a94d0fb563a8c01717e7c050f02249117219c07a2eb211577c208ba77f4d536fa25139bc249be93b38d6fc495ef67a32aa206835d177db402bc534de1d29caf4f6b4fbcd912c13f167d00d1732222744c336a5189728f72fb5e153c4b1164171cfb0c811f34f4c2fedd43f721b8706b43f8d631251c"
|
||||
mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow"
|
||||
|
||||
weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744"
|
||||
@@ -280,7 +281,7 @@ weixinSecret = "ba32b269a068a5b72486a0beafd171e8"
|
||||
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"
|
||||
|
||||
[alpha]
|
||||
httpport = 8088
|
||||
httpport = 8080
|
||||
|
||||
# xiaan
|
||||
jdOrgCode = "82029"
|
||||
|
||||
@@ -415,3 +415,16 @@ func (c *SkuController) UpdateSkuNamesExPrefix() {
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 合并饿鲜达商品库
|
||||
// @Description 合并饿鲜达商品库
|
||||
// @Param token header string true "认证token"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /SumExianDaDepot [put]
|
||||
func (c *SkuController) SumExianDaDepot() {
|
||||
c.callSumExianDaDepot(func(params *tSkuSumExianDaDepotParams) (retVal interface{}, errCode string, err error) {
|
||||
err = cms.SumExianDaDepot()
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -673,6 +673,7 @@ func (c *StoreSkuController) SendSeckillSkusCountMsg() {
|
||||
// @Description 根据平台价反算京西价
|
||||
// @Param token header string true "认证token"
|
||||
// @Param payload formData string true "json数据,JdStoreSkus对象"
|
||||
// @Param vendorID formData int true "厂商ID"
|
||||
// @Param isAsync formData bool true "是否异步,缺省是同步"
|
||||
// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
@@ -684,7 +685,7 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() {
|
||||
if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err != nil {
|
||||
return retVal, "", err
|
||||
}
|
||||
retVal,err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.IsAsync, params.IsContinueWhenError)
|
||||
retVal, err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.VendorID, params.IsAsync, params.IsContinueWhenError)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -124,9 +124,11 @@ func Init() {
|
||||
EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret"))
|
||||
ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "")
|
||||
ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "")
|
||||
if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" {
|
||||
ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "")
|
||||
if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" {
|
||||
EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS)
|
||||
EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN)
|
||||
EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN)
|
||||
}
|
||||
} else {
|
||||
EbaiAPI = nil
|
||||
|
||||
@@ -1359,6 +1359,15 @@ func init() {
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||
beego.ControllerComments{
|
||||
Method: "SumExianDaDepot",
|
||||
Router: `/SumExianDaDepot`,
|
||||
AllowHTTPMethods: []string{"put"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||
beego.ControllerComments{
|
||||
Method: "SyncCategory",
|
||||
|
||||
Reference in New Issue
Block a user