获取某商品各平台价
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user