Merge remote-tracking branch 'origin/mark' into yonghui
This commit is contained in:
@@ -1231,12 +1231,12 @@ func DeleteSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName
|
|||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetVendorSku(ctx *jxcontext.Context, vendorID int, vendorOrgCode, vendorSkuID string) (skuNameInfo *model.SkuNameExt, err error) {
|
// func GetVendorSku(ctx *jxcontext.Context, vendorID int, vendorOrgCode, vendorSkuID string) (skuNameInfo *model.SkuNameExt, err error) {
|
||||||
if handler := CurVendorSync.GetMultiStoreHandler(vendorID); handler != nil {
|
// if handler := CurVendorSync.GetMultiStoreHandler(vendorID); handler != nil {
|
||||||
return handler.ReadSku(ctx, vendorOrgCode, vendorSkuID)
|
// return handler.ReadSku(ctx, vendorOrgCode, vendorSkuID)
|
||||||
}
|
// }
|
||||||
return nil, ErrCanNotFindVendor
|
// return nil, ErrCanNotFindVendor
|
||||||
}
|
// }
|
||||||
|
|
||||||
func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err error) {
|
func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
|||||||
@@ -55,15 +55,17 @@ type StoreExt struct {
|
|||||||
FloatLng float64 `json:"lng"`
|
FloatLng float64 `json:"lng"`
|
||||||
FloatLat float64 `json:"lat"`
|
FloatLat float64 `json:"lat"`
|
||||||
|
|
||||||
ProvinceCode int `json:"provinceCode"`
|
ProvinceCode int `json:"provinceCode"`
|
||||||
ProvinceName string `json:"provinceName"`
|
ProvinceName string `json:"provinceName"`
|
||||||
CityName string `json:"cityName"`
|
CityName string `json:"cityName"`
|
||||||
DistrictName string `json:"districtName"`
|
DistrictName string `json:"districtName"`
|
||||||
StoreMapStr string `json:"-"`
|
StoreMapStr string `json:"-"`
|
||||||
CourierMapStr string `json:"-"`
|
CourierMapStr string `json:"-"`
|
||||||
PayeeBankName string `json:"payeeBankName"` // 开户行名称
|
PayeeBankName string `json:"payeeBankName"` // 开户行名称
|
||||||
StoreMaps []map[string]interface{} `orm:"-"`
|
// StoreMaps []map[string]interface{} `orm:"-"`
|
||||||
CourierMaps []map[string]interface{} `orm:"-"`
|
// CourierMaps []map[string]interface{} `orm:"-"`
|
||||||
|
StoreMaps []*model.StoreMap `json:"StoreMaps"`
|
||||||
|
CourierMaps []*model.StoreCourierMap `json:"CourierMaps"`
|
||||||
|
|
||||||
OrderCount int `json:"orderCount"`
|
OrderCount int `json:"orderCount"`
|
||||||
}
|
}
|
||||||
@@ -404,10 +406,10 @@ func setStoreMapInfo(ctx *jxcontext.Context, db *dao.DaoDB, storesInfo *StoresIn
|
|||||||
v.Licence2Image = ""
|
v.Licence2Image = ""
|
||||||
}
|
}
|
||||||
for _, v2 := range storeMapMap[v.ID] {
|
for _, v2 := range storeMapMap[v.ID] {
|
||||||
v.StoreMaps = append(v.StoreMaps, utils.Struct2FlatMap(v2))
|
v.StoreMaps = append(v.StoreMaps, v2)
|
||||||
}
|
}
|
||||||
for _, v2 := range storeCourierMap[v.ID] {
|
for _, v2 := range storeCourierMap[v.ID] {
|
||||||
v.CourierMaps = append(v.CourierMaps, utils.Struct2FlatMap(v2))
|
v.CourierMaps = append(v.CourierMaps, v2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@@ -1188,7 +1190,6 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
if num > 0 {
|
if num > 0 {
|
||||||
// TODO 重算京西商城价
|
|
||||||
if vendorID != model.VendorIDJX {
|
if vendorID != model.VendorIDJX {
|
||||||
if valid["pricePercentage"] != nil || valid["pricePercentagePack"] != nil {
|
if valid["pricePercentage"] != nil || valid["pricePercentagePack"] != nil {
|
||||||
storeSkuBind := &model.StoreSkuBind{}
|
storeSkuBind := &model.StoreSkuBind{}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api/apimanager"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -96,8 +97,9 @@ var (
|
|||||||
diffData DiffDataLock
|
diffData DiffDataLock
|
||||||
depotDiffData DeoptDiffDataLock
|
depotDiffData DeoptDiffDataLock
|
||||||
|
|
||||||
multiStoreAllSkuInfoMap map[int]map[int]*partner.SkuNameInfo
|
multiStoreAllSkuInfoMap map[int]map[string]map[int]*partner.SkuNameInfo
|
||||||
multiStoreAllSkuInfoList map[int][]*partner.StoreSkuInfo
|
multiStoreAllSkuInfoList map[int]map[string][]*partner.StoreSkuInfo
|
||||||
|
|
||||||
skuNameInfoList []*partner.SkuNameInfo
|
skuNameInfoList []*partner.SkuNameInfo
|
||||||
filterVendorDepotUnSaleSkuIds []int
|
filterVendorDepotUnSaleSkuIds []int
|
||||||
filterJxDepotUnSaleSkuIds []int
|
filterJxDepotUnSaleSkuIds []int
|
||||||
@@ -166,16 +168,22 @@ func (d *DiffDataLock) InitData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InitMultiStoreData() {
|
func InitMultiStoreData() {
|
||||||
multiStoreAllSkuInfoMap = make(map[int]map[int]*partner.SkuNameInfo)
|
multiStoreAllSkuInfoMap = make(map[int]map[string]map[int]*partner.SkuNameInfo)
|
||||||
multiStoreAllSkuInfoList = make(map[int][]*partner.StoreSkuInfo)
|
multiStoreAllSkuInfoList = make(map[int]map[string][]*partner.StoreSkuInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMultiStoreAllSkuInfoMap(vendorID int) map[int]*partner.SkuNameInfo {
|
func GetMultiStoreAllSkuInfoMap(vendorID int, vendorOrgCode string) (retVal map[int]*partner.SkuNameInfo) {
|
||||||
return multiStoreAllSkuInfoMap[vendorID]
|
if multiStoreAllSkuInfoMap[vendorID] != nil {
|
||||||
|
retVal = multiStoreAllSkuInfoMap[vendorID][vendorOrgCode]
|
||||||
|
}
|
||||||
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMultiStoreAllSkuInfoList(vendorID int) []*partner.StoreSkuInfo {
|
func GetMultiStoreAllSkuInfoList(vendorID int, vendorOrgCode string) (retVal []*partner.StoreSkuInfo) {
|
||||||
return multiStoreAllSkuInfoList[vendorID]
|
if multiStoreAllSkuInfoList[vendorID] != nil {
|
||||||
|
retVal = multiStoreAllSkuInfoList[vendorID][vendorOrgCode]
|
||||||
|
}
|
||||||
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
//过滤掉平台下架的
|
//过滤掉平台下架的
|
||||||
@@ -202,23 +210,26 @@ func GetMultiStoreAllSkuInfo(ctx *jxcontext.Context, vendorMap map[int]bool) {
|
|||||||
}
|
}
|
||||||
if partner.IsMultiStore(vendorID) {
|
if partner.IsMultiStore(vendorID) {
|
||||||
multiHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler)
|
multiHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler)
|
||||||
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, 0, "", "")
|
for _, vendorOrgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) {
|
||||||
skuNameInfoList = allSkuNameInfoList
|
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "")
|
||||||
if err != nil {
|
skuNameInfoList = allSkuNameInfoList
|
||||||
baseapi.SugarLogger.Errorf("GetMultiStoreAllSkuInfo error:%v", err)
|
if err != nil {
|
||||||
} else {
|
baseapi.SugarLogger.Errorf("GetMultiStoreAllSkuInfo error:%v", err)
|
||||||
multiStoreAllSkuInfoList[vendorID] = StoreSkuFullList2BareFilter(allSkuNameInfoList) //map[平台ID:[]StoreSkuInfo1,StoreSkuInfo2...]
|
} else {
|
||||||
tempMap := make(map[int]*partner.SkuNameInfo)
|
multiStoreAllSkuInfoList[vendorID][vendorOrgCode] = StoreSkuFullList2BareFilter(allSkuNameInfoList) //map[平台ID:[]StoreSkuInfo1,StoreSkuInfo2...]
|
||||||
for _, value := range allSkuNameInfoList {
|
tempMap := make(map[int]*partner.SkuNameInfo)
|
||||||
for _, skuInfo := range value.SkuList {
|
for _, value := range allSkuNameInfoList {
|
||||||
//表示平台商品库未下架的
|
for _, skuInfo := range value.SkuList {
|
||||||
if skuInfo.Status > model.SkuStatusDontSale {
|
//表示平台商品库未下架的
|
||||||
filterVendorDepotUnSaleSkuIds = append(filterVendorDepotUnSaleSkuIds, skuInfo.SkuID)
|
if skuInfo.Status > model.SkuStatusDontSale {
|
||||||
tempMap[skuInfo.SkuID] = value
|
filterVendorDepotUnSaleSkuIds = append(filterVendorDepotUnSaleSkuIds, skuInfo.SkuID)
|
||||||
|
tempMap[skuInfo.SkuID] = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
multiStoreAllSkuInfoMap[vendorID] = make(map[string]map[int]*partner.SkuNameInfo)
|
||||||
|
multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] = tempMap //map[平台ID][map[skuID1:SkuNameInfo1,skuID2:SkuNameInfo2]...]
|
||||||
}
|
}
|
||||||
multiStoreAllSkuInfoMap[vendorID] = tempMap //map[平台ID][map[skuID1:SkuNameInfo1,skuID2:SkuNameInfo2]...]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,8 +265,8 @@ func GetFilterJxSkuInfoMap2(jxSkuInfoList []*model.SkuAndName) map[int]*model.Sk
|
|||||||
return filterVendorSkuInfoMap
|
return filterVendorSkuInfoMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetFilterMultiStoreSkuInfoMap(vendorID int, skuInfoList []*partner.StoreSkuInfo) map[int]*partner.SkuNameInfo {
|
func GetFilterMultiStoreSkuInfoMap(vendorID int, vendorOrgCode string, skuInfoList []*partner.StoreSkuInfo) map[int]*partner.SkuNameInfo {
|
||||||
allSkuInfoMap := GetMultiStoreAllSkuInfoMap(vendorID)
|
allSkuInfoMap := GetMultiStoreAllSkuInfoMap(vendorID, vendorOrgCode)
|
||||||
filterSkuInfoMap := make(map[int]*partner.SkuNameInfo)
|
filterSkuInfoMap := make(map[int]*partner.SkuNameInfo)
|
||||||
for _, value := range skuInfoList {
|
for _, value := range skuInfoList {
|
||||||
if value.Stock > 0 {
|
if value.Stock > 0 {
|
||||||
@@ -276,10 +287,10 @@ func GetFilterStoreList(storeList []*StoreExt, vendorMap, storeIDMap map[int]boo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if storeInfo.StoreMaps != nil {
|
if storeInfo.StoreMaps != nil {
|
||||||
var tempStoreMaps []map[string]interface{}
|
var tempStoreMaps []*model.StoreMap
|
||||||
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
||||||
vendorID := int(utils.MustInterface2Int64(vendorStoreInfo["vendorID"]))
|
vendorID := vendorStoreInfo.VendorID
|
||||||
isSyncStoreSku := int(utils.MustInterface2Int64(vendorStoreInfo["isSync"]))
|
isSyncStoreSku := int(vendorStoreInfo.IsSync)
|
||||||
if isSyncStoreSku == 0 {
|
if isSyncStoreSku == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -548,7 +559,7 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int,
|
|||||||
var filterJxSkuInfoMapSingle map[int]*dao.StoreSkuNameExt
|
var filterJxSkuInfoMapSingle map[int]*dao.StoreSkuNameExt
|
||||||
var filterJxSkuInfoMapMulti map[int]*dao.StoreSkuNameExt
|
var filterJxSkuInfoMapMulti map[int]*dao.StoreSkuNameExt
|
||||||
for _, vendorListValue := range jxStoreInfoListValue.StoreMaps {
|
for _, vendorListValue := range jxStoreInfoListValue.StoreMaps {
|
||||||
vendorID := int(utils.MustInterface2Int64(vendorListValue["vendorID"]))
|
vendorID := vendorListValue.VendorID
|
||||||
var flag = false
|
var flag = false
|
||||||
if partner.IsMultiStore(vendorID) {
|
if partner.IsMultiStore(vendorID) {
|
||||||
if flag == false {
|
if flag == false {
|
||||||
@@ -564,18 +575,17 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vendorStoreID := utils.Interface2String(vendorListValue["vendorStoreID"])
|
vendorStoreID := vendorListValue.VendorStoreID
|
||||||
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue)
|
baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue)
|
||||||
|
|
||||||
if partner.IsMultiStore(vendorID) {
|
if partner.IsMultiStore(vendorID) {
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler)
|
||||||
allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID)
|
allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID, vendorListValue.VendorOrgCode)
|
||||||
// TODO vendorOrgCode
|
skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, vendorListValue.VendorOrgCode, task, storeID, vendorStoreID, allSkuInfoList)
|
||||||
skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, "", task, storeID, vendorStoreID, allSkuInfoList)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err)
|
baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err)
|
||||||
} else if len(skuBareInfoList) > 0 {
|
} else if len(skuBareInfoList) > 0 {
|
||||||
filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, skuBareInfoList) //map[京东商品ID:SkuNameInfo]
|
filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo]
|
||||||
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap)
|
CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -103,13 +103,13 @@ func (s *StoreListQueueData) TransferWaitQueueToProcessQueue() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddOrDelExtraStoreOptime(ctx *jxcontext.Context, vendorID, storeID int, vendorStoreID string, storeInfo *model.Store, startOpStoreTime, endOpStoreTime int16, needAddTime bool) bool {
|
func AddOrDelExtraStoreOptime(ctx *jxcontext.Context, vendorID int, vendorOrgCode string, storeID int, vendorStoreID string, storeInfo *model.Store, startOpStoreTime, endOpStoreTime int16, needAddTime bool) bool {
|
||||||
opTimeList := storeInfo.GetOpTimeList()
|
opTimeList := storeInfo.GetOpTimeList()
|
||||||
if needAddTime {
|
if needAddTime {
|
||||||
opTimeList = []int16{startOpStoreTime, endOpStoreTime}
|
opTimeList = []int16{startOpStoreTime, endOpStoreTime}
|
||||||
}
|
}
|
||||||
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler)
|
handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler)
|
||||||
return handler.UpdateStoreOpTime(ctx, "", storeID, vendorStoreID, opTimeList) == nil // TODO vendorOrgCode应该用传入的值
|
return handler.UpdateStoreOpTime(ctx, vendorOrgCode, storeID, vendorStoreID, opTimeList) == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStockValue(isStart bool) int {
|
func GetStockValue(isStart bool) int {
|
||||||
@@ -142,14 +142,13 @@ func SetSkuStock(isStart bool, storeSkuNameList []*partner.SkuNameInfo) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetSpecialSkuStatus(ctx *jxcontext.Context, storeID, vendorID int, vendorStoreID string, storeSkuNameList []*partner.SkuNameInfo) {
|
func SetSpecialSkuStatus(ctx *jxcontext.Context, vendorID int, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuNameList []*partner.SkuNameInfo) {
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||||
for _, skuNameInfo := range storeSkuNameList {
|
for _, skuNameInfo := range storeSkuNameList {
|
||||||
for _, skuInfo := range skuNameInfo.SkuList {
|
for _, skuInfo := range skuNameInfo.SkuList {
|
||||||
if IsSpecialSku(skuNameInfo.Name) || IsSpecialSku(skuInfo.SkuName) {
|
if IsSpecialSku(skuNameInfo.Name) || IsSpecialSku(skuInfo.SkuName) {
|
||||||
storeSkuList := []*partner.StoreSkuInfo{&skuInfo.StoreSkuInfo}
|
storeSkuList := []*partner.StoreSkuInfo{&skuInfo.StoreSkuInfo}
|
||||||
// TODO vendorOrgCode
|
singleStoreHandler.UpdateStoreSkusStatus(ctx, vendorOrgCode, storeID, vendorStoreID, storeSkuList, model.SkuStatusNormal)
|
||||||
singleStoreHandler.UpdateStoreSkusStatus(ctx, "", storeID, vendorStoreID, storeSkuList, model.SkuStatusNormal)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -181,7 +180,7 @@ func GetFilterStoreList(storeList []*cms.StoreExt, vendorMap, storeIDMap map[int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
||||||
vendorID := int(utils.MustInterface2Int64(vendorStoreInfo["vendorID"]))
|
vendorID := vendorStoreInfo.VendorID
|
||||||
//filter for vendorID
|
//filter for vendorID
|
||||||
if len(vendorMap) > 0 {
|
if len(vendorMap) > 0 {
|
||||||
if _, ok := vendorMap[vendorID]; !ok {
|
if _, ok := vendorMap[vendorID]; !ok {
|
||||||
@@ -193,7 +192,7 @@ func GetFilterStoreList(storeList []*cms.StoreExt, vendorMap, storeIDMap map[int
|
|||||||
}
|
}
|
||||||
temp := *storeInfo
|
temp := *storeInfo
|
||||||
newStoreInfo := &temp
|
newStoreInfo := &temp
|
||||||
newStoreInfo.StoreMaps = []map[string]interface{}{vendorStoreInfo}
|
newStoreInfo.StoreMaps = []*model.StoreMap{vendorStoreInfo}
|
||||||
outStoreList = append(outStoreList, newStoreInfo)
|
outStoreList = append(outStoreList, newStoreInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,9 +223,9 @@ func StartOrEndOpStoreEx(ctx *jxcontext.Context, isStart bool, startTime, endTim
|
|||||||
storeListValue := batchItemList[0].(*cms.StoreExt)
|
storeListValue := batchItemList[0].(*cms.StoreExt)
|
||||||
storeID := storeListValue.ID
|
storeID := storeListValue.ID
|
||||||
for _, vendorListValue := range storeListValue.StoreMaps {
|
for _, vendorListValue := range storeListValue.StoreMaps {
|
||||||
vendorID := int(utils.MustInterface2Int64(vendorListValue["vendorID"]))
|
vendorID := vendorListValue.VendorID
|
||||||
startOpStoreTime := int16(utils.MustInterface2Int64(vendorListValue["fakeOpenStart"]))
|
startOpStoreTime := vendorListValue.FakeOpenStart
|
||||||
endOpStoreTime := int16(utils.MustInterface2Int64(vendorListValue["fakeOpenStop"]))
|
endOpStoreTime := vendorListValue.FakeOpenStop
|
||||||
//startOpStoreTime, endOpStoreTime := GetOpStoreTime(vendorID)
|
//startOpStoreTime, endOpStoreTime := GetOpStoreTime(vendorID)
|
||||||
if startTime != 0 && endTime != 0 {
|
if startTime != 0 && endTime != 0 {
|
||||||
startOpStoreTime = startTime
|
startOpStoreTime = startTime
|
||||||
@@ -236,7 +235,7 @@ func StartOrEndOpStoreEx(ctx *jxcontext.Context, isStart bool, startTime, endTim
|
|||||||
if isStart && (startOpStoreTime == 0 || endOpStoreTime == 0) {
|
if isStart && (startOpStoreTime == 0 || endOpStoreTime == 0) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
vendorStoreID := utils.Interface2String(vendorListValue["vendorStoreID"])
|
vendorStoreID := vendorListValue.VendorStoreID
|
||||||
baseapi.SugarLogger.Debugf("StartOrEndOpStore storeID:%d vendorID:%d vendorStoreID:%s", storeID, vendorID, vendorStoreID)
|
baseapi.SugarLogger.Debugf("StartOrEndOpStore storeID:%d vendorID:%d vendorStoreID:%s", storeID, vendorID, vendorStoreID)
|
||||||
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler)
|
||||||
storeSkuNameList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, nil)
|
storeSkuNameList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, nil)
|
||||||
@@ -244,24 +243,23 @@ func StartOrEndOpStoreEx(ctx *jxcontext.Context, isStart bool, startTime, endTim
|
|||||||
baseapi.SugarLogger.Errorf("StartOrEndOpStore GetStoreSkusFullInfo error:%v storeID:%d vendorID:%d vendorStoreID:%s", err, storeID, vendorID, vendorStoreID)
|
baseapi.SugarLogger.Errorf("StartOrEndOpStore GetStoreSkusFullInfo error:%v storeID:%d vendorID:%d vendorStoreID:%s", err, storeID, vendorID, vendorStoreID)
|
||||||
} else {
|
} else {
|
||||||
SetSkuStock(isStart, storeSkuNameList)
|
SetSkuStock(isStart, storeSkuNameList)
|
||||||
SetSpecialSkuStatus(ctx, storeID, vendorID, vendorStoreID, storeSkuNameList)
|
SetSpecialSkuStatus(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, storeSkuNameList)
|
||||||
storeSkuList := putils.StoreSkuFullList2Bare(storeSkuNameList)
|
storeSkuList := putils.StoreSkuFullList2Bare(storeSkuNameList)
|
||||||
if vendorID == model.VendorIDMTWM {
|
if vendorID == model.VendorIDMTWM {
|
||||||
storeSkuList = GetFilterStoreSkuList(storeSkuList)
|
storeSkuList = GetFilterStoreSkuList(storeSkuList)
|
||||||
}
|
}
|
||||||
if len(storeSkuList) > 0 {
|
if len(storeSkuList) > 0 {
|
||||||
if !isStart {
|
if !isStart {
|
||||||
AddOrDelExtraStoreOptime(ctx, vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, false)
|
AddOrDelExtraStoreOptime(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
|
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
|
||||||
// TODO vendorOrgCode
|
_, err = singleStoreHandler.UpdateStoreSkusStock(ctx, vendorListValue.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList)
|
||||||
_, err = singleStoreHandler.UpdateStoreSkusStock(ctx, "", storeID, vendorStoreID, batchedStoreSkuList)
|
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}, ctx, task, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true)
|
}, ctx, task, storeSkuList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), true)
|
||||||
|
|
||||||
if isStart {
|
if isStart {
|
||||||
AddOrDelExtraStoreOptime(ctx, vendorID, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true)
|
AddOrDelExtraStoreOptime(ctx, vendorID, vendorListValue.VendorOrgCode, storeID, vendorStoreID, &storeListValue.Store, startOpStoreTime, endOpStoreTime, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -341,8 +339,8 @@ func InitEx() {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
for _, storeInfo := range storeList {
|
for _, storeInfo := range storeList {
|
||||||
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
||||||
startOpStoreTime := int16(utils.MustInterface2Int64(vendorStoreInfo["fakeOpenStart"]))
|
startOpStoreTime := vendorStoreInfo.FakeOpenStart
|
||||||
endOpStoreTime := int16(utils.MustInterface2Int64(vendorStoreInfo["fakeOpenStop"]))
|
endOpStoreTime := vendorStoreInfo.FakeOpenStop
|
||||||
if startOpStoreTime == 0 || endOpStoreTime == 0 {
|
if startOpStoreTime == 0 || endOpStoreTime == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -263,8 +263,8 @@ func ScoreStoreOpenTime(storeInfo *cms.StoreExt) {
|
|||||||
finalScore := 0
|
finalScore := 0
|
||||||
if isStoreOpen {
|
if isStoreOpen {
|
||||||
for _, storeMap := range storeInfo.StoreMaps {
|
for _, storeMap := range storeInfo.StoreMaps {
|
||||||
isSyncStoreSku := int(utils.MustInterface2Int64(storeMap["isSync"]))
|
isSyncStoreSku := storeMap.IsSync
|
||||||
vendorStoreStatus := int(utils.MustInterface2Int64(storeMap["status"]))
|
vendorStoreStatus := storeMap.Status
|
||||||
isVendorStoreOpen := vendorStoreStatus == model.StoreStatusOpened
|
isVendorStoreOpen := vendorStoreStatus == model.StoreStatusOpened
|
||||||
opTimeList := storeInfo.GetOpTimeList()
|
opTimeList := storeInfo.GetOpTimeList()
|
||||||
if len(opTimeList) > 0 && isStoreOpen && isVendorStoreOpen && isSyncStoreSku != 0 {
|
if len(opTimeList) > 0 && isStoreOpen && isVendorStoreOpen && isSyncStoreSku != 0 {
|
||||||
@@ -428,8 +428,8 @@ func ScoreFullVendor(storeInfo *cms.StoreExt) {
|
|||||||
isStoreOpen := storeStatus == model.StoreStatusOpened
|
isStoreOpen := storeStatus == model.StoreStatusOpened
|
||||||
count := 0
|
count := 0
|
||||||
for _, storeMap := range storeInfo.StoreMaps {
|
for _, storeMap := range storeInfo.StoreMaps {
|
||||||
isSyncStoreSku := int(utils.MustInterface2Int64(storeMap["isSync"]))
|
isSyncStoreSku := storeMap.IsSync
|
||||||
vendorStoreStatus := int(utils.MustInterface2Int64(storeMap["status"]))
|
vendorStoreStatus := storeMap.Status
|
||||||
isVendorStoreOpen := vendorStoreStatus == model.StoreStatusOpened
|
isVendorStoreOpen := vendorStoreStatus == model.StoreStatusOpened
|
||||||
opTimeList := storeInfo.GetOpTimeList()
|
opTimeList := storeInfo.GetOpTimeList()
|
||||||
if len(opTimeList) > 0 && isStoreOpen && isVendorStoreOpen && isSyncStoreSku != 0 {
|
if len(opTimeList) > 0 && isStoreOpen && isVendorStoreOpen && isSyncStoreSku != 0 {
|
||||||
@@ -569,9 +569,9 @@ func GetFilterStoreListEx(storeList []*cms.StoreExt, storeIDMap map[int]int) (ou
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var tempStoreMaps []map[string]interface{}
|
var tempStoreMaps []*model.StoreMap
|
||||||
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
for _, vendorStoreInfo := range storeInfo.StoreMaps {
|
||||||
vendorID := int(utils.MustInterface2Int64(vendorStoreInfo["vendorID"]))
|
vendorID := vendorStoreInfo.VendorID
|
||||||
if _, ok := fullVendorList[vendorID]; !ok {
|
if _, ok := fullVendorList[vendorID]; !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
|
|||||||
sql += `
|
sql += `
|
||||||
LEFT JOIN store_map t3 ON t3.store_id = t1.store_id AND t3.vendor_id = t2.vendor_id AND t3.deleted_at = ?
|
LEFT JOIN store_map t3 ON t3.store_id = t1.store_id AND t3.vendor_id = t2.vendor_id AND t3.deleted_at = ?
|
||||||
JOIN sku t4 ON t4.id = t1.sku_id`
|
JOIN sku t4 ON t4.id = t1.sku_id`
|
||||||
|
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||||
if globals.IsUseThingMap {
|
if globals.IsUseThingMap {
|
||||||
sql += `
|
sql += `
|
||||||
LEFT JOIN thing_map t4m ON t4m.thing_id = t4.id AND t4m.thing_type = ? AND t4m.vendor_id = t2.vendor_id AND t4m.vendor_org_code = t3.vendor_org_code AND t4m.deleted_at = ?`
|
LEFT JOIN thing_map t4m ON t4m.thing_id = t4.id AND t4m.thing_type = ? AND t4m.vendor_id = t2.vendor_id AND t4m.vendor_org_code = t3.vendor_org_code AND t4m.deleted_at = ?`
|
||||||
@@ -128,7 +129,6 @@ func GetActStoreSkuVendorList(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
|
|||||||
WHERE t1.act_id = ?
|
WHERE t1.act_id = ?
|
||||||
`
|
`
|
||||||
sqlParams = append(sqlParams,
|
sqlParams = append(sqlParams,
|
||||||
utils.DefaultTimeValue,
|
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
actID,
|
actID,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -44,3 +44,10 @@ func TestUpdateActStatusByTime(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetActStoreSkuVendorList(t *testing.T) {
|
||||||
|
_, _, err := GetActStoreSkuVendorList(GetDB(), 18440, nil, nil, nil, "", 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -172,15 +172,14 @@ type IMultipleStoresHandler interface {
|
|||||||
UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error)
|
UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error)
|
||||||
DeleteSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error)
|
DeleteSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error)
|
||||||
|
|
||||||
ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error)
|
// ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error)
|
||||||
CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
||||||
UpdateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
UpdateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
||||||
DeleteSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
DeleteSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error)
|
||||||
|
|
||||||
// RefreshAllSkusID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error)
|
// RefreshAllSkusID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error)
|
||||||
|
|
||||||
// TODO 此接口需要添加vendorOrgCode
|
GetSkus(ctx *jxcontext.Context, vendorOrgCode string, skuID int, vendorSkuID string) (skuNameList []*SkuNameInfo, err error)
|
||||||
GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID, skuName string) (skuNameList []*SkuNameInfo, err error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ISingleStoreHandler interface {
|
type ISingleStoreHandler interface {
|
||||||
|
|||||||
@@ -41,7 +41,11 @@ func TestListOrders(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetSelfTakeCode(t *testing.T) {
|
func TestGetSelfTakeCode(t *testing.T) {
|
||||||
selfTakeCode, err := CurPurchaseHandler.GetSelfTakeCode(jxcontext.AdminCtx, "921160248000222")
|
order, err := partner.CurOrderManager.LoadOrder("921160248000222", model.VendorIDJD)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
selfTakeCode, err := CurPurchaseHandler.GetSelfTakeCode(jxcontext.AdminCtx, order)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err.Error())
|
t.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,8 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -180,77 +177,77 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
// func (p *PurchaseHandler) ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
jdSkuID := utils.Str2Int64(vendorSkuID)
|
// jdSkuID := utils.Str2Int64(vendorSkuID)
|
||||||
a := getAPI(vendorOrgCode)
|
// a := getAPI(vendorOrgCode)
|
||||||
skuList, _, err := a.QuerySkuInfos(&jdapi.QuerySkuParam{
|
// skuList, _, err := a.QuerySkuInfos(&jdapi.QuerySkuParam{
|
||||||
SkuID: jdSkuID,
|
// SkuID: jdSkuID,
|
||||||
})
|
// })
|
||||||
if err == nil {
|
// if err == nil {
|
||||||
if len(skuList) >= 1 {
|
// if len(skuList) >= 1 {
|
||||||
skuNameExt = &model.SkuNameExt{}
|
// skuNameExt = &model.SkuNameExt{}
|
||||||
if imgList, err2 := a.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
// if imgList, err2 := a.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
||||||
SkuIDs: []int64{jdSkuID},
|
// SkuIDs: []int64{jdSkuID},
|
||||||
}); err2 == nil && len(imgList) > 0 {
|
// }); err2 == nil && len(imgList) > 0 {
|
||||||
skuNameExt.Img = imgList[0].SourceImgURL
|
// skuNameExt.Img = imgList[0].SourceImgURL
|
||||||
}
|
// }
|
||||||
sku := skuList[0]
|
// sku := skuList[0]
|
||||||
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(sku.SkuName)
|
// prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(sku.SkuName)
|
||||||
if name == "" {
|
// if name == "" {
|
||||||
name = sku.SkuName
|
// name = sku.SkuName
|
||||||
unit = "份"
|
// unit = "份"
|
||||||
specUnit = "g"
|
// specUnit = "g"
|
||||||
}
|
// }
|
||||||
skuNameExt.Prefix = prefix
|
// skuNameExt.Prefix = prefix
|
||||||
skuNameExt.Name = name
|
// skuNameExt.Name = name
|
||||||
skuNameExt.Unit = unit
|
// skuNameExt.Unit = unit
|
||||||
skuNameExt.Price = sku.SkuPrice
|
// skuNameExt.Price = sku.SkuPrice
|
||||||
skuNameExt.Skus = []*model.SkuWithVendor{
|
// skuNameExt.Skus = []*model.SkuWithVendor{
|
||||||
&model.SkuWithVendor{
|
// &model.SkuWithVendor{
|
||||||
Sku: &model.Sku{
|
// Sku: &model.Sku{
|
||||||
SpecQuality: specQuality,
|
// SpecQuality: specQuality,
|
||||||
SpecUnit: specUnit,
|
// SpecUnit: specUnit,
|
||||||
Weight: jxutils.FloatWeight2Int(float32(sku.Weight)),
|
// Weight: jxutils.FloatWeight2Int(float32(sku.Weight)),
|
||||||
JdID: sku.SkuID,
|
// JdID: sku.SkuID,
|
||||||
Status: jdStatus2jxStatus(sku.FixedStatus),
|
// Status: jdStatus2jxStatus(sku.FixedStatus),
|
||||||
Comment: comment,
|
// Comment: comment,
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
}
|
// }
|
||||||
skuNameExt.Skus[0].ID = int(utils.Str2Int64(sku.OutSkuID))
|
// skuNameExt.Skus[0].ID = int(utils.Str2Int64(sku.OutSkuID))
|
||||||
|
|
||||||
db := dao.GetDB()
|
// db := dao.GetDB()
|
||||||
shopCategories := sku.ShopCategories
|
// shopCategories := sku.ShopCategories
|
||||||
if len(shopCategories) > 0 {
|
// if len(shopCategories) > 0 {
|
||||||
skuCat := &model.SkuCategory{}
|
// skuCat := &model.SkuCategory{}
|
||||||
skuCat.JdID = shopCategories[0]
|
// skuCat.JdID = shopCategories[0]
|
||||||
if dao.GetEntity(db, skuCat, "JdID") == nil {
|
// if dao.GetEntity(db, skuCat, "JdID") == nil {
|
||||||
skuNameExt.CategoryID = skuCat.ID
|
// skuNameExt.CategoryID = skuCat.ID
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
sellCities := sku.SellCities
|
// sellCities := sku.SellCities
|
||||||
for _, v := range sellCities {
|
// for _, v := range sellCities {
|
||||||
if v == 0 {
|
// if v == 0 {
|
||||||
skuNameExt.IsGlobal = 1
|
// skuNameExt.IsGlobal = 1
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if len(sellCities) == 0 || skuNameExt.IsGlobal == 1 {
|
// if len(sellCities) == 0 || skuNameExt.IsGlobal == 1 {
|
||||||
skuNameExt.IsGlobal = 1
|
// skuNameExt.IsGlobal = 1
|
||||||
} else {
|
// } else {
|
||||||
var places []*model.Place
|
// var places []*model.Place
|
||||||
if err = dao.GetRows(db, &places, "SELECT * FROM place WHERE jd_code IN ("+dao.GenQuestionMarks(len(sellCities))+") AND level = 2", sellCities); err == nil {
|
// if err = dao.GetRows(db, &places, "SELECT * FROM place WHERE jd_code IN ("+dao.GenQuestionMarks(len(sellCities))+") AND level = 2", sellCities); err == nil {
|
||||||
skuNameExt.Places = make([]int, len(places))
|
// skuNameExt.Places = make([]int, len(places))
|
||||||
for k, v := range places {
|
// for k, v := range places {
|
||||||
skuNameExt.Places[k] = v.Code
|
// skuNameExt.Places[k] = v.Code
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
err = partner.ErrCanNotFindItem
|
// err = partner.ErrCanNotFindItem
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return skuNameExt, err
|
// return skuNameExt, err
|
||||||
}
|
// }
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) {
|
func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) {
|
||||||
return p.cuSku(db, sku, func(skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) {
|
return p.cuSku(db, sku, func(skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) {
|
||||||
@@ -493,127 +490,3 @@ func composeSkuSpec(specQuality float32, specUnit, unit string) string {
|
|||||||
}
|
}
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID, skuName string) (skuNameList []*partner.SkuNameInfo, err error) {
|
|
||||||
param := &jdapi.QuerySkuParam{
|
|
||||||
SkuID: utils.Str2Int64WithDefault(vendorSkuID, 0),
|
|
||||||
SkuName: skuName,
|
|
||||||
IsFilterDel: jdapi.IsFilterDelTrue,
|
|
||||||
PageNo: 1,
|
|
||||||
PageSize: jdapi.MaxSkuIDsCount4QueryListBySkuIds, // 为了同时取图,这个值不要大于jdapi.MaxSkuIDsCount4QueryListBySkuIds
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
skuList, _, err2 := getAPI("").QuerySkuInfos(param)
|
|
||||||
if err = err2; err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if len(skuList) > 0 {
|
|
||||||
batchSkuNameList := make([]*partner.SkuNameInfo, len(skuList))
|
|
||||||
for k, v := range skuList {
|
|
||||||
batchSkuNameList[k] = vendorSku2Jx(v)
|
|
||||||
}
|
|
||||||
setSkuNameListPic(batchSkuNameList)
|
|
||||||
skuNameList = append(skuNameList, batchSkuNameList...)
|
|
||||||
}
|
|
||||||
if len(skuList) < param.PageSize {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
param.PageNo++
|
|
||||||
}
|
|
||||||
return skuNameList, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInfo {
|
|
||||||
jdSkuIDs := make([]int64, len(skuNameList))
|
|
||||||
for k, v := range skuNameList {
|
|
||||||
jdSkuIDs[k] = utils.Str2Int64(v.SkuList[0].VendorSkuID)
|
|
||||||
}
|
|
||||||
|
|
||||||
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
|
||||||
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
|
||||||
SkuIDs: jdSkuIDs,
|
|
||||||
}); err2 == nil {
|
|
||||||
for _, v := range imgList {
|
|
||||||
if v.ImgType == jdapi.ImgTypeMain {
|
|
||||||
imgResult := imgMap[v.SkuID]
|
|
||||||
if imgResult == nil || imgResult.IsMain < v.IsMain {
|
|
||||||
imgMap[v.SkuID] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 使用扒页面方式获取商品图片
|
|
||||||
if false {
|
|
||||||
var leftJdSkuIDs []int64
|
|
||||||
for _, v := range jdSkuIDs {
|
|
||||||
if imgMap[v] == nil {
|
|
||||||
leftJdSkuIDs = append(leftJdSkuIDs, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
|
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
||||||
jdSkuID := batchItemList[0].(int64)
|
|
||||||
imgList, err := getAPI("").GetSkuPageImageInfo(jdSkuID)
|
|
||||||
if err == nil && len(imgList) > 0 {
|
|
||||||
retVal = [][]string{
|
|
||||||
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return retVal, err
|
|
||||||
}, leftJdSkuIDs)
|
|
||||||
task.Run()
|
|
||||||
if resultList, err := task.GetResult(0); err == nil {
|
|
||||||
for _, v := range resultList {
|
|
||||||
strList := v.([]string)
|
|
||||||
imgMap[utils.Str2Int64(strList[0])] = &jdapi.ImgHandleQueryResult{
|
|
||||||
SourceImgURL: strList[1],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置商品图片
|
|
||||||
for _, v := range skuNameList {
|
|
||||||
if imgResult := imgMap[utils.Str2Int64(v.SkuList[0].VendorSkuID)]; imgResult != nil {
|
|
||||||
v.PictureList = []string{imgResult.SourceImgURL}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return skuNameList
|
|
||||||
}
|
|
||||||
|
|
||||||
func vendorSku2Jx(vendorSku *jdapi.SkuMain) (skuName *partner.SkuNameInfo) {
|
|
||||||
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(vendorSku.SkuName)
|
|
||||||
weight := int(vendorSku.Weight * 1000)
|
|
||||||
if weight <= 0 {
|
|
||||||
weight = jxutils.FormatSkuWeight(specQuality, specUnit)
|
|
||||||
}
|
|
||||||
skuID := int(utils.Str2Int64WithDefault(vendorSku.OutSkuID, 0))
|
|
||||||
vendorSkuID := utils.Int64ToStr(vendorSku.SkuID)
|
|
||||||
skuName = &partner.SkuNameInfo{
|
|
||||||
NameID: skuID,
|
|
||||||
VendorNameID: vendorSkuID,
|
|
||||||
VendorCatIDList: []string{utils.Int64ToStr(vendorSku.CategoryID)},
|
|
||||||
|
|
||||||
Prefix: prefix,
|
|
||||||
Name: name,
|
|
||||||
Unit: unit,
|
|
||||||
SkuList: []*partner.SkuInfo{
|
|
||||||
&partner.SkuInfo{
|
|
||||||
StoreSkuInfo: partner.StoreSkuInfo{
|
|
||||||
VendorSkuID: vendorSkuID,
|
|
||||||
SkuID: skuID,
|
|
||||||
|
|
||||||
VendorPrice: int64(vendorSku.SkuPrice),
|
|
||||||
Status: jdStatus2jxStatus(vendorSku.FixedStatus),
|
|
||||||
},
|
|
||||||
SkuName: vendorSku.SkuName,
|
|
||||||
Comment: comment,
|
|
||||||
SpecQuality: float64(specQuality),
|
|
||||||
SpecUnit: specUnit,
|
|
||||||
Weight: weight,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return skuName
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
@@ -199,6 +200,129 @@ func (p *PurchaseHandler) DeleteSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSy
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, skuID int, vendorSkuID string) (skuNameList []*partner.SkuNameInfo, err error) {
|
||||||
|
param := &jdapi.QuerySkuParam{
|
||||||
|
SkuID: utils.Str2Int64WithDefault(vendorSkuID, 0),
|
||||||
|
IsFilterDel: jdapi.IsFilterDelTrue,
|
||||||
|
PageNo: 1,
|
||||||
|
PageSize: jdapi.MaxSkuIDsCount4QueryListBySkuIds, // 为了同时取图,这个值不要大于jdapi.MaxSkuIDsCount4QueryListBySkuIds
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
skuList, _, err2 := getAPI(vendorOrgCode).QuerySkuInfos(param)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if len(skuList) > 0 {
|
||||||
|
batchSkuNameList := make([]*partner.SkuNameInfo, len(skuList))
|
||||||
|
for k, v := range skuList {
|
||||||
|
batchSkuNameList[k] = vendorSku2Jx(v)
|
||||||
|
}
|
||||||
|
setSkuNameListPic(batchSkuNameList)
|
||||||
|
skuNameList = append(skuNameList, batchSkuNameList...)
|
||||||
|
}
|
||||||
|
if len(skuList) < param.PageSize {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
param.PageNo++
|
||||||
|
}
|
||||||
|
return skuNameList, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInfo {
|
||||||
|
jdSkuIDs := make([]int64, len(skuNameList))
|
||||||
|
for k, v := range skuNameList {
|
||||||
|
jdSkuIDs[k] = utils.Str2Int64(v.SkuList[0].VendorSkuID)
|
||||||
|
}
|
||||||
|
|
||||||
|
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
||||||
|
if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
||||||
|
SkuIDs: jdSkuIDs,
|
||||||
|
}); err2 == nil {
|
||||||
|
for _, v := range imgList {
|
||||||
|
if v.ImgType == jdapi.ImgTypeMain {
|
||||||
|
imgResult := imgMap[v.SkuID]
|
||||||
|
if imgResult == nil || imgResult.IsMain < v.IsMain {
|
||||||
|
imgMap[v.SkuID] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用扒页面方式获取商品图片
|
||||||
|
if false {
|
||||||
|
var leftJdSkuIDs []int64
|
||||||
|
for _, v := range jdSkuIDs {
|
||||||
|
if imgMap[v] == nil {
|
||||||
|
leftJdSkuIDs = append(leftJdSkuIDs, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
jdSkuID := batchItemList[0].(int64)
|
||||||
|
imgList, err := getAPI("").GetSkuPageImageInfo(jdSkuID)
|
||||||
|
if err == nil && len(imgList) > 0 {
|
||||||
|
retVal = [][]string{
|
||||||
|
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal, err
|
||||||
|
}, leftJdSkuIDs)
|
||||||
|
task.Run()
|
||||||
|
if resultList, err := task.GetResult(0); err == nil {
|
||||||
|
for _, v := range resultList {
|
||||||
|
strList := v.([]string)
|
||||||
|
imgMap[utils.Str2Int64(strList[0])] = &jdapi.ImgHandleQueryResult{
|
||||||
|
SourceImgURL: strList[1],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置商品图片
|
||||||
|
for _, v := range skuNameList {
|
||||||
|
if imgResult := imgMap[utils.Str2Int64(v.SkuList[0].VendorSkuID)]; imgResult != nil {
|
||||||
|
v.PictureList = []string{imgResult.SourceImgURL}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return skuNameList
|
||||||
|
}
|
||||||
|
|
||||||
|
func vendorSku2Jx(vendorSku *jdapi.SkuMain) (skuName *partner.SkuNameInfo) {
|
||||||
|
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(vendorSku.SkuName)
|
||||||
|
weight := int(vendorSku.Weight * 1000)
|
||||||
|
if weight <= 0 {
|
||||||
|
weight = jxutils.FormatSkuWeight(specQuality, specUnit)
|
||||||
|
}
|
||||||
|
skuID := int(utils.Str2Int64WithDefault(vendorSku.OutSkuID, 0))
|
||||||
|
vendorSkuID := utils.Int64ToStr(vendorSku.SkuID)
|
||||||
|
skuName = &partner.SkuNameInfo{
|
||||||
|
NameID: skuID,
|
||||||
|
VendorNameID: vendorSkuID,
|
||||||
|
VendorCatIDList: []string{utils.Int64ToStr(vendorSku.CategoryID)},
|
||||||
|
|
||||||
|
Prefix: prefix,
|
||||||
|
Name: name,
|
||||||
|
Unit: unit,
|
||||||
|
SkuList: []*partner.SkuInfo{
|
||||||
|
&partner.SkuInfo{
|
||||||
|
StoreSkuInfo: partner.StoreSkuInfo{
|
||||||
|
VendorSkuID: vendorSkuID,
|
||||||
|
SkuID: skuID,
|
||||||
|
|
||||||
|
VendorPrice: int64(vendorSku.SkuPrice),
|
||||||
|
Status: jdStatus2jxStatus(vendorSku.FixedStatus),
|
||||||
|
},
|
||||||
|
SkuName: vendorSku.SkuName,
|
||||||
|
Comment: comment,
|
||||||
|
SpecQuality: float64(specQuality),
|
||||||
|
SpecUnit: specUnit,
|
||||||
|
Weight: weight,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return skuName
|
||||||
|
}
|
||||||
|
|
||||||
func jdStatus2jxStatus(jdStatus int) (jxStatus int) {
|
func jdStatus2jxStatus(jdStatus int) (jxStatus int) {
|
||||||
switch jdStatus {
|
switch jdStatus {
|
||||||
case jdapi.SkuFixedStatusOnline:
|
case jdapi.SkuFixedStatusOnline:
|
||||||
|
|||||||
@@ -45,17 +45,17 @@ func TestGetAllCategories(t *testing.T) {
|
|||||||
t.Log(utils.Format4Output(result, false))
|
t.Log(utils.Format4Output(result, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestReadSku(t *testing.T) {
|
// func TestReadSku(t *testing.T) {
|
||||||
skuName, err := CurPurchaseHandler.ReadSku(jxcontext.AdminCtx, "", "2005582952")
|
// skuName, err := CurPurchaseHandler.ReadSku(jxcontext.AdminCtx, "", "2005582952")
|
||||||
t.Log(utils.Format4Output(skuName, false))
|
// t.Log(utils.Format4Output(skuName, false))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
t.Fatal(err.Error())
|
// t.Fatal(err.Error())
|
||||||
}
|
// }
|
||||||
if skuName.Name != "味事达酱香鲜特级酿造酱油" || skuName.Skus[0].SpecUnit != "ml" {
|
// if skuName.Name != "味事达酱香鲜特级酿造酱油" || skuName.Skus[0].SpecUnit != "ml" {
|
||||||
t.Fatal("ReadSku return data wrong")
|
// t.Fatal("ReadSku return data wrong")
|
||||||
t.Log(string(utils.MustMarshal(skuName)))
|
// t.Log(string(utils.MustMarshal(skuName)))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
func TestGetVendorCategories(t *testing.T) {
|
func TestGetVendorCategories(t *testing.T) {
|
||||||
catList, err := CurPurchaseHandler.GetVendorCategories(jxcontext.AdminCtx)
|
catList, err := CurPurchaseHandler.GetVendorCategories(jxcontext.AdminCtx)
|
||||||
@@ -66,7 +66,7 @@ func TestGetVendorCategories(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetSkus(t *testing.T) {
|
func TestGetSkus(t *testing.T) {
|
||||||
skuNameList, err := CurPurchaseHandler.GetSkus(jxcontext.AdminCtx, 0, "2023747677", "")
|
skuNameList, err := CurPurchaseHandler.GetSkus(jxcontext.AdminCtx, "", 0, "2023747677")
|
||||||
t.Log(utils.Format4Output(skuNameList, false))
|
t.Log(utils.Format4Output(skuNameList, false))
|
||||||
t.Log(len(skuNameList))
|
t.Log(len(skuNameList))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func TestGetStoreSkusBareInfo(t *testing.T) {
|
|||||||
// for i := 0; i < 30-1; i++ {
|
// for i := 0; i < 30-1; i++ {
|
||||||
// list = append(list, list[0])
|
// list = append(list, list[0])
|
||||||
// }
|
// }
|
||||||
skuNameList, err := CurPurchaseHandler.GetSkus(jxcontext.AdminCtx, 0, "", "")
|
skuNameList, err := CurPurchaseHandler.GetSkus(jxcontext.AdminCtx, "", 0, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
// func (p *PurchaseHandler) ReadSku(ctx *jxcontext.Context, vendorOrgCode, vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
return skuNameExt, err
|
// return skuNameExt, err
|
||||||
}
|
// }
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) {
|
func (p *PurchaseHandler) UpdateSku(db *dao.DaoDB, sku *model.Sku, userName string) (err error) {
|
||||||
return err
|
return err
|
||||||
@@ -77,6 +77,6 @@ func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCat
|
|||||||
return vendorCats, err
|
return vendorCats, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID, skuName string) (skuNameList []*partner.SkuNameInfo, err error) {
|
func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, skuID int, vendorSkuID string) (skuNameList []*partner.SkuNameInfo, err error) {
|
||||||
return skuNameList, err
|
return skuNameList, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ dingdingAppKey = "ding7iu9cptairtcls0c"
|
|||||||
dingdingSecret = "LWrZAFeqUfuVv7n_tc8vPpCAx6PT4CwManx2XCVhJOqGsx2L5XCDuX1sAN_JtvsI"
|
dingdingSecret = "LWrZAFeqUfuVv7n_tc8vPpCAx6PT4CwManx2XCVhJOqGsx2L5XCDuX1sAN_JtvsI"
|
||||||
|
|
||||||
dingdingCallbackURL = "http://callback.jxc4.com/dingding/msg"
|
dingdingCallbackURL = "http://callback.jxc4.com/dingding/msg"
|
||||||
useThingMap = true
|
|
||||||
|
|
||||||
[jxgy]
|
[jxgy]
|
||||||
httpport = 8088
|
httpport = 8088
|
||||||
@@ -234,7 +233,6 @@ getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken"
|
|||||||
getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken"
|
getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken"
|
||||||
|
|
||||||
storeName = "京西果园"
|
storeName = "京西果园"
|
||||||
useThingMap = true
|
|
||||||
|
|
||||||
[test]
|
[test]
|
||||||
jdOrgCode = "82029"
|
jdOrgCode = "82029"
|
||||||
@@ -296,8 +294,6 @@ enableEbaiStoreWrite = true
|
|||||||
enableMtwmStoreWrite = true
|
enableMtwmStoreWrite = true
|
||||||
enableWscStoreWrite = false
|
enableWscStoreWrite = false
|
||||||
|
|
||||||
useThingMap = true
|
|
||||||
|
|
||||||
[beta]
|
[beta]
|
||||||
enableStoreWrite = false
|
enableStoreWrite = false
|
||||||
enableJdStoreWrite = false
|
enableJdStoreWrite = false
|
||||||
@@ -336,4 +332,3 @@ getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken"
|
|||||||
getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken"
|
getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken"
|
||||||
|
|
||||||
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"
|
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"
|
||||||
useThingMap = true
|
|
||||||
|
|||||||
@@ -291,21 +291,21 @@ func (c *SkuController) DeleteSkuNamePlace() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 远程查询厂商SKU信息
|
// // @Title 远程查询厂商SKU信息
|
||||||
// @Description 远程查询厂商SKU信息,这个是实时调用API远程查询(不推荐使用)
|
// // @Description 远程查询厂商SKU信息,这个是实时调用API远程查询(不推荐使用)
|
||||||
// @Param token header string true "认证token"
|
// // @Param token header string true "认证token"
|
||||||
// @Param vendorSkuID query string true "sku ID"
|
// // @Param vendorSkuID query string true "sku ID"
|
||||||
// @Param vendorID query int true "门店所属的厂商ID"
|
// // @Param vendorID query int true "门店所属的厂商ID"
|
||||||
// @Param vendorOrgCode query string false "厂商内组织代码"
|
// // @Param vendorOrgCode query string false "厂商内组织代码"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// // @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// // @Failure 200 {object} controllers.CallResult
|
||||||
// @router /GetVendorSku [get]
|
// // @router /GetVendorSku [get]
|
||||||
func (c *SkuController) GetVendorSku() {
|
// func (c *SkuController) GetVendorSku() {
|
||||||
c.callGetVendorSku(func(params *tSkuGetVendorSkuParams) (retVal interface{}, errCode string, err error) {
|
// c.callGetVendorSku(func(params *tSkuGetVendorSkuParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = cms.GetVendorSku(params.Ctx, params.VendorID, params.VendorOrgCode, params.VendorSkuID)
|
// retVal, err = cms.GetVendorSku(params.Ctx, params.VendorID, params.VendorOrgCode, params.VendorSkuID)
|
||||||
return retVal, "", err
|
// return retVal, "", err
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|
||||||
// @Title 同步商家SKU
|
// @Title 同步商家SKU
|
||||||
// @Description 同步商家SKU
|
// @Description 同步商家SKU
|
||||||
|
|||||||
@@ -1206,15 +1206,6 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
|
||||||
beego.ControllerComments{
|
|
||||||
Method: "GetVendorSku",
|
|
||||||
Router: `/GetVendorSku`,
|
|
||||||
AllowHTTPMethods: []string{"get"},
|
|
||||||
MethodParams: param.Make(),
|
|
||||||
Filters: nil,
|
|
||||||
Params: nil})
|
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "ReorderCategories",
|
Method: "ReorderCategories",
|
||||||
|
|||||||
Reference in New Issue
Block a user