81 lines
2.1 KiB
Go
81 lines
2.1 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
|
|
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
|
|
}
|