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 ) 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 } 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 }