diff --git a/business/model/sku.go b/business/model/sku.go index e861eb607..80a2934cb 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -170,6 +170,7 @@ type SkuCategoryMap struct { VendorOrgCode string `orm:"size(32)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 VendorCatID string `orm:"size(32);column(vendor_cat_id)" json:"vendorCatID"` + SyncStatus int8 `orm:"default(2)"` } func (*SkuCategoryMap) TableUnique() [][]string { diff --git a/business/partner/partner_api.go b/business/partner/partner_api.go index 97288bb52..386527933 100644 --- a/business/partner/partner_api.go +++ b/business/partner/partner_api.go @@ -1,7 +1,8 @@ package partner type IAPIManager interface { - GetAPI(vendorID int, orgCode string) interface{} + GetAPI(vendorID int, appOrgCode string) interface{} + GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) } var ( diff --git a/business/partner/purchase/jd/jd.go b/business/partner/purchase/jd/jd.go index aefdc075e..18a89cdb1 100644 --- a/business/partner/purchase/jd/jd.go +++ b/business/partner/purchase/jd/jd.go @@ -25,8 +25,8 @@ func init() { } } -func getAPI(orgCode string) (apiObj *jdapi.API) { - return partner.CurAPIManager.GetAPI(model.VendorIDJD, orgCode).(*jdapi.API) +func getAPI(appOrgCode string) (apiObj *jdapi.API) { + return partner.CurAPIManager.GetAPI(model.VendorIDJD, appOrgCode).(*jdapi.API) } func (c *PurchaseHandler) GetVendorID() int { diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index b4f9236e6..6e62c34b6 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -1,26 +1,32 @@ package apimanager import ( + "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) +type VendorOrgCodePair struct { + VendorID int + AppOrgCode string +} + type APIManager struct { } var ( - curAPIManager *APIManager + CurAPIManager *APIManager ) func init() { globals.SugarLogger.Debug("init apimanager") - curAPIManager = &APIManager{} - partner.InitAPIManager(curAPIManager) + CurAPIManager = &APIManager{} + partner.InitAPIManager(CurAPIManager) } -func (a *APIManager) GetAPI(vendorID int, name string) (pfAPI interface{}) { +func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) { switch vendorID { case model.VendorIDJD: pfAPI = api.JdAPI @@ -31,3 +37,32 @@ func (a *APIManager) GetAPI(vendorID int, name string) (pfAPI interface{}) { } return pfAPI } + +func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) { + switch vendorID { + case model.VendorIDJD: + appOrgCodeList = []string{"320406"} + case model.VendorIDMTWM: + case model.VendorIDEBAI: + } + return appOrgCodeList +} + +func (a *APIManager) GetVendorOrgCodeList(vendorIDs []int, appOrgCodes []string) (vendorOrgCodeList []*VendorOrgCodePair) { + if len(vendorIDs) == 0 { + vendorIDs = partner.GetMultiStoreVendorIDs() + } + appOrgCodeMap := jxutils.StringList2Map(appOrgCodes) + for _, vendorID := range vendorIDs { + tmpOrgCodeList := a.GetAppOrgCodeList(vendorID) + for _, v := range tmpOrgCodeList { + if len(appOrgCodes) == 0 || appOrgCodeMap[v] == 1 { + vendorOrgCodeList = append(vendorOrgCodeList, &VendorOrgCodePair{ + VendorID: vendorID, + AppOrgCode: v, + }) + } + } + } + return vendorOrgCodeList +} diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 5b0b17614..f1d3779d0 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -32,7 +32,7 @@ func Init() { orm.RegisterModel(&model.Store{}, &model.StoreSub{}, &model.StoreMap{}, &model.StoreCourierMap{}) orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) orm.RegisterModel(&model.SkuCategory{}) - // orm.RegisterModel(&model.DurableTask{}, &model.DurableTaskItem{}) + // orm.RegisterModel(&model.SkuCategoryMap{}) orm.RegisterModel(&model.AuthBind{}, &model.User{})