- RefreshStoresSkuByVendor
This commit is contained in:
@@ -619,3 +619,7 @@ func formatName(name string) string {
|
||||
func jxCatSeq2Ebai(seq int) int {
|
||||
return 10000 - seq
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package elm
|
||||
import (
|
||||
"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"
|
||||
)
|
||||
|
||||
func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync bool) (hint string, err error) {
|
||||
@@ -24,3 +25,7 @@ func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask t
|
||||
func (p *PurchaseHandler) DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
@@ -281,3 +281,79 @@ func constrainPrice(price int) int {
|
||||
}
|
||||
return price
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||
db := dao.GetDB()
|
||||
skuList, err := dao.GetSkus(db, nil, nil, []int{model.SkuStatusNormal}, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var skuInfoList []*jdapi.BaseStockCenterRequest
|
||||
skuMap := make(map[int64]int)
|
||||
for _, sku := range skuList {
|
||||
if !jxutils.IsFakeID(sku.JdID) {
|
||||
skuInfoList = append(skuInfoList, &jdapi.BaseStockCenterRequest{
|
||||
SkuId: sku.JdID,
|
||||
})
|
||||
skuMap[sku.JdID] = sku.ID
|
||||
}
|
||||
}
|
||||
for _, storeID := range storeIDs {
|
||||
storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJD)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, sku := range skuInfoList {
|
||||
sku.StationNo = storeDetail.VendorStoreID
|
||||
}
|
||||
task := tasksch.NewParallelTask("jd 获取京东门店商品信息", tasksch.NewParallelConfig().SetBatchSize(jdapi.MaxStoreSkuBatchSize), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
batchSkuInfoList := make([]*jdapi.BaseStockCenterRequest, len(batchItemList))
|
||||
batchSkuList := make([]int64, len(batchItemList))
|
||||
for k, v := range batchItemList {
|
||||
batchSkuInfoList[k] = v.(*jdapi.BaseStockCenterRequest)
|
||||
batchSkuList[k] = batchSkuInfoList[k].SkuId
|
||||
}
|
||||
stockInfo, err := api.JdAPI.QueryOpenUseable(batchSkuInfoList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
priceInfo, err := api.JdAPI.GetStationInfoList(storeDetail.VendorStoreID, batchSkuList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var batchStoreSkuList []*model.StoreSkuBind
|
||||
batchStoreSkuMap := make(map[int64]*model.StoreSkuBind)
|
||||
for _, v := range stockInfo {
|
||||
if v.UsableQty > 0 {
|
||||
batchSku := &model.StoreSkuBind{
|
||||
StoreID: storeID,
|
||||
SkuID: skuMap[v.SkuID],
|
||||
}
|
||||
if v.Vendibility == 0 {
|
||||
batchSku.Status = model.SkuStatusNormal
|
||||
} else {
|
||||
batchSku.Status = model.SkuStatusDontSale
|
||||
}
|
||||
batchStoreSkuMap[v.SkuID] = batchSku
|
||||
batchStoreSkuList = append(batchStoreSkuList, batchSku)
|
||||
}
|
||||
}
|
||||
for _, v := range priceInfo {
|
||||
if storeSku := batchStoreSkuMap[v.SkuID]; storeSku != nil {
|
||||
storeSku.Price = int(v.Price)
|
||||
}
|
||||
}
|
||||
return batchStoreSkuList, err
|
||||
}, skuInfoList)
|
||||
tasksch.AddChild(parentTask, task).Run()
|
||||
result, err := task.GetResult(0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, v := range result {
|
||||
storeSkuList = append(storeSkuList, v.(*model.StoreSkuBind))
|
||||
}
|
||||
}
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
@@ -497,3 +497,7 @@ func (p *PurchaseHandler) DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTa
|
||||
}
|
||||
return rootTask.ID, err
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
@@ -318,3 +318,7 @@ func composeFakeDelName(name string) string {
|
||||
// func ComposeJXVendorSkuIDFromGoodsAndSkuID(goodsID, skuID int64) (vendorSkuID string) {
|
||||
// return utils.Int64ToStr(skuID) + "," + utils.Int64ToStr(goodsID)
|
||||
// }
|
||||
|
||||
func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) {
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user