- sync.
This commit is contained in:
@@ -43,6 +43,7 @@ func InitServiceInfo(version, buildDate, gitCommit string) {
|
|||||||
"bankName": model.BankName,
|
"bankName": model.BankName,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SkuNamesInfo struct {
|
type SkuNamesInfo struct {
|
||||||
@@ -89,7 +90,9 @@ func ReorderCategories(parentID int, categoryIDs []int, userName string) (err er
|
|||||||
}
|
}
|
||||||
// todo 这里应该也需要先置标记
|
// todo 这里应该也需要先置标记
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).ReorderCategories(parentCat, userName)
|
if handler := GetPurchaseHandler(model.VendorIDJD); handler != nil {
|
||||||
|
err = handler.(partner.IMultipleStoresHandler).ReorderCategories(parentCat, userName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -481,9 +484,8 @@ func DeleteSkuNamePlace(nameID, placeCode int, userName string) (num int64, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetVendorSku(vendorID int, vendorSkuID string) (skuNameInfo *model.SkuNameExt, err error) {
|
func GetVendorSku(vendorID int, vendorSkuID string) (skuNameInfo *model.SkuNameExt, err error) {
|
||||||
handler := GetPurchaseHandler(vendorID)
|
if handler := GetPurchaseHandler(vendorID); handler != nil {
|
||||||
if handler != nil {
|
return handler.(partner.IMultipleStoresHandler).ReadSku(vendorSkuID)
|
||||||
return handler.ReadSku(vendorSkuID)
|
|
||||||
}
|
}
|
||||||
return nil, ErrCanNotVendor
|
return nil, ErrCanNotFindVendor
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ type StoresInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrMissingInput = errors.New("没有有效的输入参数")
|
ErrMissingInput = errors.New("没有有效的输入参数")
|
||||||
ErrCanNotVendor = errors.New("vendorID参数不合法")
|
ErrCanNotFindVendor = errors.New("vendorID参数不合法")
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetPlaces(parentCode int, vendorID int, includeDisabled bool) ([]*model.Place, error) {
|
func GetPlaces(parentCode int, vendorID int, includeDisabled bool) ([]*model.Place, error) {
|
||||||
@@ -97,7 +97,7 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i
|
|||||||
|
|
||||||
if params["storeID"] != nil {
|
if params["storeID"] != nil {
|
||||||
sqlWhere += " AND t1.id = ?"
|
sqlWhere += " AND t1.id = ?"
|
||||||
sqlParams = append(sqlParams, params["id"].(int))
|
sqlParams = append(sqlParams, params["storeID"].(int))
|
||||||
}
|
}
|
||||||
if params["name"] != nil {
|
if params["name"] != nil {
|
||||||
sqlWhere += " AND t1.name LIKE ?"
|
sqlWhere += " AND t1.name LIKE ?"
|
||||||
@@ -195,8 +195,7 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetVendorStore(vendorStoreID string, vendorID int) (retVal *StoreExt, err error) {
|
func GetVendorStore(vendorStoreID string, vendorID int) (retVal *StoreExt, err error) {
|
||||||
handler := GetPurchaseHandler(vendorID)
|
if handler := GetPurchaseHandler(vendorID); handler != nil {
|
||||||
if handler != nil {
|
|
||||||
result, err2 := handler.ReadStore(vendorStoreID)
|
result, err2 := handler.ReadStore(vendorStoreID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
retVal = &StoreExt{
|
retVal = &StoreExt{
|
||||||
@@ -213,7 +212,7 @@ func GetVendorStore(vendorStoreID string, vendorID int) (retVal *StoreExt, err e
|
|||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return nil, ErrCanNotVendor
|
return nil, ErrCanNotFindVendor
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateStore(storeID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
func UpdateStore(storeID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
||||||
@@ -254,18 +253,22 @@ func GetStoreVendorMaps(db *dao.DaoDB, storeID int, vendorID int) (storeMaps []*
|
|||||||
}
|
}
|
||||||
|
|
||||||
func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.StoreMap, userName string) (outStoreMap *model.StoreMap, err error) {
|
func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.StoreMap, userName string) (outStoreMap *model.StoreMap, err error) {
|
||||||
store, err := GetPurchaseHandler(storeMap.VendorID).ReadStore(storeMap.VendorStoreID)
|
if handler := GetPurchaseHandler(storeMap.VendorID); handler != nil {
|
||||||
if err == nil {
|
store, err := handler.ReadStore(storeMap.VendorStoreID)
|
||||||
dao.WrapAddIDCULEntity(storeMap, userName)
|
if err == nil {
|
||||||
storeMap.StoreID = storeID
|
dao.WrapAddIDCULEntity(storeMap, userName)
|
||||||
storeMap.VendorID = vendorID
|
storeMap.StoreID = storeID
|
||||||
storeMap.DeliveryType = store.DeliveryType
|
storeMap.VendorID = vendorID
|
||||||
storeMap.Status = store.Status
|
storeMap.DeliveryType = store.DeliveryType
|
||||||
storeMap.SyncStatus = model.SyncFlagModifiedMask // 新增绑定门店是修改的概念
|
storeMap.Status = store.Status
|
||||||
if err = dao.CreateEntity(db, storeMap); err == nil {
|
storeMap.SyncStatus = model.SyncFlagModifiedMask // 新增绑定门店是修改的概念
|
||||||
outStoreMap = storeMap
|
if err = dao.CreateEntity(db, storeMap); err == nil {
|
||||||
err = CurVendorSync.SyncStore(db, storeMap.VendorID, store, true, userName)
|
outStoreMap = storeMap
|
||||||
|
err = CurVendorSync.SyncStore(db, storeMap.VendorID, store, true, userName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
err = ErrCanNotFindVendor
|
||||||
}
|
}
|
||||||
return outStoreMap, err
|
return outStoreMap, err
|
||||||
}
|
}
|
||||||
@@ -283,9 +286,13 @@ func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[stri
|
|||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
}
|
}
|
||||||
if vendorStoreID := utils.Interface2String(payload["vendorStoreID"]); vendorStoreID != "" {
|
if vendorStoreID := utils.Interface2String(payload["vendorStoreID"]); vendorStoreID != "" {
|
||||||
jdStore, err2 := GetPurchaseHandler(vendorID).ReadStore(vendorStoreID)
|
if handler := GetPurchaseHandler(vendorID); handler != nil {
|
||||||
if err = err2; err == nil {
|
jdStore, err2 := handler.ReadStore(vendorStoreID)
|
||||||
payload["deliveryType"] = jdStore.DeliveryType
|
if err = err2; err == nil {
|
||||||
|
payload["deliveryType"] = jdStore.DeliveryType
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = ErrCanNotFindVendor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
@@ -3,46 +3,75 @@ package cms
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
type VendorSync struct {
|
type VendorSync struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
MultiStoresVendorHandlers []partner.IMultipleStoresHandler
|
||||||
|
SingleStoreVendorIDs []int
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
||||||
ErrEntityNotExist = errors.New("找不到相应实体")
|
ErrEntityNotExist = errors.New("找不到相应实体")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func Init() {
|
||||||
|
for k, v := range basesch.FixedBaseScheduler.PurchasePlatformHandlers {
|
||||||
|
if multiHandler, ok := v.(partner.IMultipleStoresHandler); ok {
|
||||||
|
MultiStoresVendorHandlers = append(MultiStoresVendorHandlers, multiHandler)
|
||||||
|
} else if _, ok := v.(partner.ISingleStoreHandler); ok {
|
||||||
|
SingleStoreVendorIDs = append(SingleStoreVendorIDs, k)
|
||||||
|
} else {
|
||||||
|
panic("delivery platform type is wrong!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
|
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
|
||||||
if db == nil {
|
if db == nil {
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
}
|
}
|
||||||
var cats []*model.SkuCategory
|
// v.LoopSingleStoreVendors(db, "SyncCategory", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
cond := make(map[string]interface{})
|
// storeMap := batchItemList[0].(*model.StoreMap)
|
||||||
if categoryID > 0 {
|
// handler := GetPurchaseHandler(storeMap.VendorID).(partner.ISingleStoreHandler)
|
||||||
cond[model.FieldID] = categoryID
|
// return nil, nil
|
||||||
}
|
// })
|
||||||
if err = dao.GetEntities(db, &cats, cond, true); err == nil {
|
|
||||||
for _, cat := range cats {
|
err = v.LoopMultiStoresVendors(db, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 { //删除
|
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).DeleteCategory(cat, userName)
|
var cats []*model.SkuCategory
|
||||||
} else if (cat.JdSyncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
|
cond := make(map[string]interface{})
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).CreateCategory(cat, userName)
|
if categoryID > 0 {
|
||||||
} else if (cat.JdSyncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
|
cond[model.FieldID] = categoryID
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).UpdateCategory(cat, userName)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
cat.JdSyncStatus = 0
|
|
||||||
_, err = dao.UpdateEntity(db, cat, model.FieldJdSyncStatus)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if err = dao.GetEntities(db, &cats, cond, true); err == nil {
|
||||||
|
tasksch.RunTask("", func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
|
cat := batchItemList[0].(*model.SkuCategory)
|
||||||
|
if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 { //删除
|
||||||
|
err = multiStoresHandler.DeleteCategory(cat, userName)
|
||||||
|
} else if (cat.JdSyncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
|
||||||
|
err = multiStoresHandler.CreateCategory(cat, userName)
|
||||||
|
} else if (cat.JdSyncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
|
||||||
|
err = multiStoresHandler.UpdateCategory(cat, userName)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
cat.JdSyncStatus = 0
|
||||||
|
_, err = dao.UpdateEntity(db, cat, model.FieldJdSyncStatus)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, nil, len(cats), 1, "", cats)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,17 +79,18 @@ func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID int, store *model.Store,
|
|||||||
if db == nil {
|
if db == nil {
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
}
|
}
|
||||||
storeMapList, err := v.GetStoreMapInfo(db, store.ID)
|
err = v.LoopStoreMap(db, store.ID, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
if err == nil {
|
storeMap := batchItemList[0].(*model.StoreMap)
|
||||||
for _, storeMap := range storeMapList {
|
if (vendorID == -1 || vendorID == storeMap.VendorID) && (isForce || storeMap.SyncStatus != 0) {
|
||||||
if (vendorID == -1 || vendorID == storeMap.VendorID) && (isForce || storeMap.SyncStatus != 0) { // 对于门店,当前只有修改标记
|
if handler := GetPurchaseHandler(storeMap.VendorID); handler != nil {
|
||||||
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(store.ID); err == nil {
|
if err = handler.UpdateStore(store.ID); err == nil {
|
||||||
storeMap.SyncStatus = 0
|
storeMap.SyncStatus = 0
|
||||||
dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
return nil, err
|
||||||
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,60 +98,81 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
|
|||||||
if db == nil {
|
if db == nil {
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
}
|
}
|
||||||
var skuList []*model.Sku
|
// v.LoopSingleStoreVendors(db, "SyncSku", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
cond := make(map[string]interface{})
|
// storeMap := batchItemList[0].(*model.StoreMap)
|
||||||
if nameID != -1 {
|
// handler := GetPurchaseHandler(storeMap.VendorID).(partner.ISingleStoreHandler)
|
||||||
cond[model.FieldNameID] = nameID
|
// return nil, nil
|
||||||
}
|
// })
|
||||||
if skuID != -1 {
|
globals.SugarLogger.Debug("SyncSku1")
|
||||||
cond[model.FieldID] = skuID
|
err = v.LoopMultiStoresVendors(db, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
}
|
globals.SugarLogger.Debug("SyncSku2")
|
||||||
if err = dao.GetEntities(db, &skuList, cond, true); err == nil {
|
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
|
||||||
for _, sku := range skuList {
|
var skuList []*model.Sku
|
||||||
if (skuID == -1 || skuID == sku.ID) && (isForce || sku.JdSyncStatus != 0) {
|
cond := make(map[string]interface{})
|
||||||
updateFields := []string{model.FieldJdSyncStatus}
|
if nameID != -1 {
|
||||||
if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
cond[model.FieldNameID] = nameID
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).CreateSku(sku, userName)
|
|
||||||
updateFields = append(updateFields, model.FieldJdID)
|
|
||||||
} else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 新增
|
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).DeleteSku(sku, userName)
|
|
||||||
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
|
||||||
err = GetPurchaseHandler(model.VendorIDJD).UpdateSku(sku, userName)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
sku.JdSyncStatus = 0
|
|
||||||
dao.UpdateEntity(db, sku, updateFields...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if skuID != -1 {
|
||||||
|
cond[model.FieldID] = skuID
|
||||||
|
}
|
||||||
|
if err = dao.GetEntities(db, &skuList, cond, true); err == nil {
|
||||||
|
tasksch.RunTask("", func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
|
sku := batchItemList[0].(*model.Sku)
|
||||||
|
globals.SugarLogger.Debug("fuck:", sku)
|
||||||
|
if (skuID == -1 || skuID == sku.ID) && (isForce || sku.JdSyncStatus != 0) {
|
||||||
|
updateFields := []string{model.FieldJdSyncStatus}
|
||||||
|
if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
|
err = multiStoresHandler.CreateSku(sku, userName)
|
||||||
|
updateFields = append(updateFields, model.FieldJdID)
|
||||||
|
} else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 新增
|
||||||
|
err = multiStoresHandler.DeleteSku(sku, userName)
|
||||||
|
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
||||||
|
err = multiStoresHandler.UpdateSku(sku, userName)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
sku.JdSyncStatus = 0
|
||||||
|
dao.UpdateEntity(db, sku, updateFields...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, nil, len(skuList), 1, "", skuList)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncStoreSku(db *dao.DaoDB, storeID int, skuIDs []int, isForce bool, userName string) (err error) {
|
func (v *VendorSync) SyncStoreSku(db *dao.DaoDB, storeID int, skuIDs []int, isForce bool, userName string) (err error) {
|
||||||
storeMapList, err := v.GetStoreMapInfo(db, storeID)
|
|
||||||
var skuNamesInfo *StoreSkuNamesInfo
|
return err
|
||||||
if skuNamesInfo, err = GetStoreSkus(storeID, "", utils.Params2Map("skuID", skuIDs), 0, 10000); err == nil {
|
}
|
||||||
if skuNamesInfo.TotalCount != len(skuNamesInfo.SkuNames) {
|
|
||||||
panic("too many skus!")
|
func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, storeID int, handler tasksch.WorkFunc) (err error) {
|
||||||
}
|
storeMaps, err := GetStoreVendorMaps(db, storeID, -1)
|
||||||
for _, storeMap := range storeMapList {
|
if err == nil {
|
||||||
switch storeMap.VendorID {
|
task := tasksch.RunTask("", handler, nil, len(storeMaps), 1, "", storeMaps)
|
||||||
case model.VendorIDJD:
|
_, err = task.GetResult(0)
|
||||||
err = v.SyncStoreSku2JD(db, skuNamesInfo.SkuNames, isForce, userName)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncStoreSku2JD(db *dao.DaoDB, skuInfoList []*StoreSkuNameExt, isForce bool, userName string) (err error) {
|
func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, handler tasksch.WorkFunc) (err error) {
|
||||||
// for _, skuInfo := range skuInfoList {
|
task := tasksch.RunTask("", handler, nil, len(MultiStoresVendorHandlers), 1, "", MultiStoresVendorHandlers)
|
||||||
|
_, err = task.GetResult(0)
|
||||||
// }
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) GetStoreMapInfo(db *dao.DaoDB, storeID int) (storeMapList []*model.StoreMap, err error) {
|
func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) {
|
||||||
return storeMapList, dao.GetEntities(db, &storeMapList, utils.Params2Map(model.FieldStoreID, storeID), true)
|
var storeMaps []*model.StoreMap
|
||||||
|
if err = dao.GetRows(db, &storeMaps, `
|
||||||
|
SELECT *
|
||||||
|
FROM store_map
|
||||||
|
WHERE vendor_id IN (`+dao.GenQuestionMarks(len(SingleStoreVendorIDs))+")", SingleStoreVendorIDs); err == nil {
|
||||||
|
parellelCount := len(storeMaps)
|
||||||
|
if parellelCount > 20 {
|
||||||
|
parellelCount = 20
|
||||||
|
}
|
||||||
|
tasksch.RunManagedTask(taskName, handler, nil, parellelCount, 1, userName, storeMaps)
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,24 +68,31 @@ type IPurchasePlatformHandler interface {
|
|||||||
// OpenStore(vendorStoreID string, userName string) error
|
// OpenStore(vendorStoreID string, userName string) error
|
||||||
// CloseStore(vendorStoreID, closeNotice, userName string) error
|
// CloseStore(vendorStoreID, closeNotice, userName string) error
|
||||||
|
|
||||||
// Sku
|
SyncStoreSku(storeID int, skuIDs []int) (err error)
|
||||||
CreateCategory(cat *model.SkuCategory, userName string) (err error)
|
}
|
||||||
ReadCategory(vendorCatID string) (cat *model.SkuCategory, err error)
|
|
||||||
|
type IMultipleStoresHandler interface {
|
||||||
ReadCategories() (cats []*model.SkuCategory, err error)
|
ReadCategories() (cats []*model.SkuCategory, err error)
|
||||||
|
// ReadCategory(vendorCatID string) (cat *model.SkuCategory, err error)
|
||||||
|
|
||||||
|
CreateCategory(cat *model.SkuCategory, userName string) (err error)
|
||||||
UpdateCategory(cat *model.SkuCategory, userName string) error
|
UpdateCategory(cat *model.SkuCategory, userName string) error
|
||||||
DeleteCategory(cat *model.SkuCategory, userName string) error
|
DeleteCategory(cat *model.SkuCategory, userName string) error
|
||||||
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
||||||
|
|
||||||
|
// sku
|
||||||
CreateSku(sku *model.Sku, userName string) (err error)
|
CreateSku(sku *model.Sku, userName string) (err error)
|
||||||
ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error)
|
ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error)
|
||||||
UpdateSku(sku *model.Sku, userName string) (err error)
|
UpdateSku(sku *model.Sku, userName string) (err error)
|
||||||
DeleteSku(sku *model.Sku, userName string) (err error)
|
DeleteSku(sku *model.Sku, userName string) (err error)
|
||||||
|
}
|
||||||
|
|
||||||
//store sku
|
type ISingleStoreHandler interface {
|
||||||
// CreateStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
SyncCategories(catIDs []int) (err error)
|
||||||
// ReadStoreSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error)
|
ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error)
|
||||||
// UpdateStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
|
||||||
// DeleteStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
SyncSkus(skuIDs []int) (err error)
|
||||||
|
ReadStoreSku(storeID, skuID int) (skuNameExt *model.SkuNameExt, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IDeliveryPlatformHandler interface {
|
type IDeliveryPlatformHandler interface {
|
||||||
|
|||||||
@@ -1,43 +1 @@
|
|||||||
package elm
|
package elm
|
||||||
|
|
||||||
import "git.rosy.net.cn/jx-callback/business/model"
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateCategory(cat *model.SkuCategory, userName string) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadCategory(vendorCatID string) (cat *model.SkuCategory, err error) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadCategories() (cats []*model.SkuCategory, err error) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateCategory(cat *model.SkuCategory, userName string) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteCategory(cat *model.SkuCategory, userName string) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReorderCategories(parentCat *model.SkuCategory, userName string) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateSku(sku *model.Sku, userName string) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteSku(sku *model.Sku, userName string) (err error) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
20
business/partner/purchase/elm/store_sku.go
Normal file
20
business/partner/purchase/elm/store_sku.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package elm
|
||||||
|
|
||||||
|
import "git.rosy.net.cn/jx-callback/business/model"
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) SyncStoreSku(storeID int, skuIDs []int) (err error) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (p *PurchaseHandler) SyncCategories(catIDs []int) (err error) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (p *PurchaseHandler) ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) SyncSkus(skuIDs []int) (err error) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (p *PurchaseHandler) ReadStoreSku(storeID, skuID int) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
@@ -1 +1,5 @@
|
|||||||
package jd
|
package jd
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) SyncStoreSku(storeID int, skuIDs []int) (err error) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user