获取某商品各平台价

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,8 +2525,7 @@ 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
@@ -2536,38 +2533,55 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int,
SkuID: skuID, SkuID: skuID,
} }
inStoreSkuList = append(inStoreSkuList, inStoreSku) inStoreSkuList = append(inStoreSkuList, inStoreSku)
db := dao.GetDB() if partner.IsMultiStore(vendorID) {
storeDetail, err = dao.GetStoreDetailByVendorStoreID(db, vendorStoreID, vendorID) multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler)
storeDetail, err = multiHandler.ReadStore(ctx, "", vendorStoreID)
if err != nil { if err != nil {
return retVal, err return retVal, err
} }
} else {
singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler)
storeDetail, err = singleHandler.ReadStore(ctx, "", vendorStoreID)
if err != nil {
return retVal, err
}
}
outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList) outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList)
if err != nil { if err != nil {
return retVal, err return retVal, err
} }
if len(outStoreSkuList) > 0 { skuNameList, err := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil)
if storeDetail != nil {
skuNameList, err := dao.GetSkus(db, []int{outStoreSkuList[0].SkuID}, nil, nil, nil)
if err != nil { if err != nil {
return retVal, err return retVal, err
} }
if storeDetail != nil {
if len(skuNameList) > 0 { if len(skuNameList) > 0 {
if len(outStoreSkuList) > 0 {
data := DataVendorStoreSkuPrice{ data := DataVendorStoreSkuPrice{
StoreID: storeDetail.ID, StoreID: vendorStoreID,
StoreName: storeDetail.Name, StoreName: storeDetail.Name,
SkuID: outStoreSkuList[0].SkuID, SkuID: skuID,
SkuNameID: outStoreSkuList[0].NameID,
SkuName: skuNameList[0].Name, SkuName: skuNameList[0].Name,
VendorPrice: outStoreSkuList[0].VendorPrice, VendorPrice: utils.Float64ToStr(utils.Str2Float64(utils.Int64ToStr(outStoreSkuList[0].VendorPrice)) / 100),
}
retVal = []DataVendorStoreSkuPrice{data}
} else {
data := DataVendorStoreSkuPrice{
StoreID: vendorStoreID,
StoreName: storeDetail.Name,
SkuID: skuID,
SkuName: skuNameList[0].Name,
VendorPrice: "",
} }
retVal = []DataVendorStoreSkuPrice{data} retVal = []DataVendorStoreSkuPrice{data}
} }
} }
} }
return retVal, err return retVal, err
}, vendorStoreIDs) }
tasksch.HandleTask(task, nil, true).Run() taskParallel := tasksch.NewParallelTask("获取各平台所有门店某商品价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, vendorStoreIDs)
storeSkuList, _ := task.GetResult(0) 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))