获取某商品各平台价

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