获取某商品各平台价

This commit is contained in:
苏尹岚
2019-12-20 08:39:23 +08:00
parent 7f88bad413
commit 5438e90021

View File

@@ -126,12 +126,11 @@ type SheetParam struct {
} }
type DataVendorStoreSkuPrice struct { type DataVendorStoreSkuPrice struct {
StoreID int `json:"门店ID"` StoreID string `json:"门店ID"`
StoreName string `json:"门店名"` StoreName string `json:"门店名"`
SkuID int `json:"商品ID"` SkuID int `json:"商品ID"`
SkuNameID int `json:"商品NameID"`
SkuName string `json:"商品名"` SkuName string `json:"商品名"`
VendorPrice int64 `json:"平台价"` VendorPrice string `json:"平台价"`
} }
type DataSuccess struct { type DataSuccess struct {
@@ -173,7 +172,6 @@ var (
"门店ID", "门店ID",
"门店名", "门店名",
"商品ID", "商品ID",
"商品NameID",
"商品名", "商品名",
"平台价", "平台价",
} }
@@ -2527,47 +2525,63 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int,
for _, v := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { for _, v := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) {
vendorStoreIDs, err2 := handlerStore.GetAllStoresVendorID(ctx, v) vendorStoreIDs, err2 := handlerStore.GetAllStoresVendorID(ctx, v)
err = err2 err = err2
task := tasksch.NewParallelTask("获取各平台所有门店某商品价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorStoreID := batchItemList[0].(string)
vendorStoreID := batchItemList[0].(string) var inStoreSkuList []*partner.StoreSkuInfo
var inStoreSkuList []*partner.StoreSkuInfo var storeDetail *dao.StoreDetail
var storeDetail *dao.StoreDetail inStoreSku := &partner.StoreSkuInfo{
inStoreSku := &partner.StoreSkuInfo{ SkuID: skuID,
SkuID: skuID, }
} inStoreSkuList = append(inStoreSkuList, inStoreSku)
inStoreSkuList = append(inStoreSkuList, inStoreSku) if partner.IsMultiStore(vendorID) {
db := dao.GetDB() multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler)
storeDetail, err = dao.GetStoreDetailByVendorStoreID(db, vendorStoreID, vendorID) storeDetail, err = multiHandler.ReadStore(ctx, "", vendorStoreID)
if err != nil { if err != nil {
return retVal, err return retVal, err
} }
outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList) } else {
singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler)
storeDetail, err = singleHandler.ReadStore(ctx, "", vendorStoreID)
if err != nil { if err != nil {
return retVal, err return retVal, err
} }
if len(outStoreSkuList) > 0 { }
if storeDetail != nil { outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList)
skuNameList, err := dao.GetSkus(db, []int{outStoreSkuList[0].SkuID}, nil, nil, nil) if err != nil {
if err != nil { return retVal, err
return retVal, err }
skuNameList, err := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil)
if err != nil {
return retVal, err
}
if storeDetail != nil {
if len(skuNameList) > 0 {
if len(outStoreSkuList) > 0 {
data := DataVendorStoreSkuPrice{
StoreID: vendorStoreID,
StoreName: storeDetail.Name,
SkuID: skuID,
SkuName: skuNameList[0].Name,
VendorPrice: utils.Float64ToStr(utils.Str2Float64(utils.Int64ToStr(outStoreSkuList[0].VendorPrice)) / 100),
} }
if len(skuNameList) > 0 { retVal = []DataVendorStoreSkuPrice{data}
data := DataVendorStoreSkuPrice{ } else {
StoreID: storeDetail.ID, data := DataVendorStoreSkuPrice{
StoreName: storeDetail.Name, StoreID: vendorStoreID,
SkuID: outStoreSkuList[0].SkuID, StoreName: storeDetail.Name,
SkuNameID: outStoreSkuList[0].NameID, SkuID: skuID,
SkuName: skuNameList[0].Name, SkuName: skuNameList[0].Name,
VendorPrice: outStoreSkuList[0].VendorPrice, VendorPrice: "",
}
retVal = []DataVendorStoreSkuPrice{data}
} }
retVal = []DataVendorStoreSkuPrice{data}
} }
} }
return retVal, err }
}, vendorStoreIDs) return retVal, err
tasksch.HandleTask(task, nil, true).Run() }
storeSkuList, _ := task.GetResult(0) taskParallel := tasksch.NewParallelTask("获取各平台所有门店某商品价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, vendorStoreIDs)
tasksch.HandleTask(taskParallel, task, true).Run()
storeSkuList, _ := taskParallel.GetResult(0)
for _, v := range storeSkuList { for _, v := range storeSkuList {
if vendorID == model.VendorIDJD { if vendorID == model.VendorIDJD {
storeSkuListJD = append(storeSkuListJD, v.(DataVendorStoreSkuPrice)) storeSkuListJD = append(storeSkuListJD, v.(DataVendorStoreSkuPrice))