Files
jx-callback/globals/api/apimanager/apimanager.go
gazebo 248a9299ce GetSkusWithVendor,GetSkuCategoryWithVendor
apimanager的bug修改
2019-12-12 10:59:55 +08:00

84 lines
2.2 KiB
Go

package apimanager
import (
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"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
)
func init() {
globals.SugarLogger.Debug("init apimanager")
CurAPIManager = &APIManager{}
partner.InitAPIManager(CurAPIManager)
}
func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) {
switch vendorID {
case model.VendorIDJD:
pfAPI = api.JdAPI
if appOrgCode != "" && appOrgCode == globals.Jd2OrgCode {
pfAPI = api.Jd2API
}
case model.VendorIDMTWM:
pfAPI = api.MtwmAPI
case model.VendorIDEBAI:
pfAPI = api.EbaiAPI
}
return pfAPI
}
// TODO
func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) {
switch vendorID {
case model.VendorIDJD:
appOrgCodeList = jxutils.BatchString2Slice(globals.JdOrgCode, globals.Jd2OrgCode)
case model.VendorIDMTWM:
appOrgCodeList = []string{api.MtwmAPI.GetAppID()}
case model.VendorIDEBAI:
appOrgCodeList = []string{api.EbaiAPI.GetSource()}
}
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
}
func GetVendorOrgCodeMap(ctx *jxcontext.Context) (vendorOrgCodeMap map[int][]string) {
vendorOrgCodeMap = make(map[int][]string)
for _, vendorID := range partner.GetPurchasePlatformVendorIDs() {
vendorOrgCodeMap[vendorID] = CurAPIManager.GetAppOrgCodeList(vendorID)
}
return vendorOrgCodeMap
}