Merge remote-tracking branch 'origin/mark' into lcw

This commit is contained in:
renyutian
2019-04-28 15:36:24 +08:00
44 changed files with 914 additions and 245 deletions

View File

@@ -166,6 +166,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
shopID = store.ID
}
store2, err2 := p.ReadStore(store.VendorStoreID)
// globals.SugarLogger.Debugf("ebai UpdateStore2 store2:%s, err2:%v", utils.Format4Output(store2, true), err2)
if err = err2; err == nil {
if store2.ID == store.ID {
shopID = -1

View File

@@ -387,16 +387,13 @@ func (p *PurchaseHandler) RefreshStoresAllSkusID(ctx *jxcontext.Context, parentT
func genSkuParamsFromStoreSkuInfo(storeSku *tStoreSkuFullInfo) (params map[string]interface{}) {
price := jxutils.CaculateSkuVendorPrice(storeSku.Price, storeSku.PricePercentage)
params = map[string]interface{}{
"name": jxutils.ComposeSkuName(storeSku.Prefix, storeSku.Name, storeSku.Comment, storeSku.Unit, storeSku.SpecQuality, storeSku.SpecUnit, 0),
"status": jxSkuStatus2Ebai(jxutils.MergeSkuStatus(storeSku.SkuStatus, storeSku.Status)),
"left_num": model.MaxStoreSkuStockQty,
"sale_price": price,
"market_price": price,
"category_id": storeSku.CatEbaiID,
"cat1_id": getEbaiCat(storeSku.EbaiCat1ID, 1),
"cat2_id": getEbaiCat(storeSku.EbaiCat2ID, 2),
"cat3_id": getEbaiCat(storeSku.EbaiCat3ID, 3),
"weight": storeSku.Weight,
"name": jxutils.ComposeSkuName(storeSku.Prefix, storeSku.Name, storeSku.Comment, storeSku.Unit, storeSku.SpecQuality, storeSku.SpecUnit, 0),
"left_num": model.MaxStoreSkuStockQty,
"category_id": storeSku.CatEbaiID,
"cat1_id": getEbaiCat(storeSku.EbaiCat1ID, 1),
"cat2_id": getEbaiCat(storeSku.EbaiCat2ID, 2),
"cat3_id": getEbaiCat(storeSku.EbaiCat3ID, 3),
"weight": storeSku.Weight,
"photos": []map[string]interface{}{
map[string]interface{}{
"is_master": true,
@@ -404,6 +401,13 @@ func genSkuParamsFromStoreSkuInfo(storeSku *tStoreSkuFullInfo) (params map[strin
},
},
}
if storeSku.EbaiSyncStatus&(model.SyncFlagPriceMask|model.SyncFlagNewMask) != 0 {
params["sale_price"] = price
params["market_price"] = price
}
if storeSku.EbaiSyncStatus&(model.SyncFlagSaleMask|model.SyncFlagNewMask) != 0 {
params["status"] = jxSkuStatus2Ebai(jxutils.MergeSkuStatus(storeSku.SkuStatus, storeSku.Status))
}
// todo 饿百如果给的UPC是空要报错但如果我要删除UPC怎么弄
if storeSku.Upc != "" {
params["upc"] = storeSku.Upc

View File

@@ -15,11 +15,14 @@ import (
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego"
)
const (
DefBrandID = 35247
DefJdCategoryID = 20362
DefBrandID = 35247
DefJdCategoryID = 20362
DefJdCategoryID4Jxgy = 22410 // 其他国产水果
)
type tSkuInfoExt struct {
@@ -36,6 +39,13 @@ var (
}
)
func getDefJdCategoryID() int {
if beego.BConfig.RunMode == "jxgy" {
return DefJdCategoryID4Jxgy
}
return DefJdCategoryID
}
func (p *PurchaseHandler) CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error) {
var jdPid int64
if cat.ParentID != 0 {
@@ -134,7 +144,7 @@ func (p *PurchaseHandler) cuSku(db *dao.DaoDB, sku *model.Sku, handler func(skuE
// shopCategories = append(shopCategories, skuInfoExt.SkuCatID)
// }
if skuInfoExt.JdCategoryID == 0 {
skuInfoExt.JdCategoryID = DefJdCategoryID
skuInfoExt.JdCategoryID = getDefJdCategoryID()
}
if skuInfoExt.BrandID == 0 {
skuInfoExt.BrandID = DefBrandID
@@ -176,6 +186,12 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
if skuExt.IsSpu == 0 {
if globals.EnableStoreWrite {
vendorSkuID, err = api.JdAPI.AddSku(utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams)
if err != nil {
if jdSkuID := jdapi.GetJdSkuIDFromError(err); jdSkuID > 0 {
vendorSkuID = utils.Int64ToStr(jdSkuID)
err = nil
}
}
}
} else {
vendorSkuID, err = p.syncSkuNameAsSpu(db, sku, skuExt, price, skuName, shopCategories, addParams)

View File

@@ -301,6 +301,7 @@ func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorStoreID s
return storeStatus, err
}
// 当前京东的storeCrud消息不会在门店状态改变时发送所以意义不大先放在这里
func (c *PurchaseHandler) onStoreMsg(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
var err error
if msg.StatusID == jdapi.StatusIDUpdateStore {
@@ -308,6 +309,11 @@ func (c *PurchaseHandler) onStoreMsg(msg *jdapi.CallbackOrderMsg) (response *jda
vendorStoreID := msg.BillID
if storeStatus, err = c.GetStoreStatus(jxcontext.AdminCtx, vendorStoreID); err == nil {
err = partner.CurStoreManager.OnStoreStatusChanged(vendorStoreID, model.VendorIDJD, storeStatus)
} else {
// 可能在门店删除的情况下会出查不到门店的错误
if errExt, ok := err.(*utils.ErrorWithCode); ok && errExt.IntCode() == 4 {
err = nil
}
}
}
return jdapi.Err2CallbackResponse(err, "")

View File

@@ -3,6 +3,8 @@ package wsc
import (
"testing"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/tasks"
"git.rosy.net.cn/jx-callback/globals"
@@ -19,7 +21,7 @@ func init() {
}
func TestGetVendorCategories(t *testing.T) {
vendorCatList, err := new(PurchaseHandler).GetVendorCategories()
vendorCatList, err := new(PurchaseHandler).GetVendorCategories(jxcontext.AdminCtx)
if err != nil {
t.Fatal(err.Error())
}