- bug fix for many sync operation.
This commit is contained in:
@@ -59,7 +59,7 @@ func AddCategory(cat *model.SkuCategory, userName string) (outCat *model.SkuCate
|
|||||||
}
|
}
|
||||||
if err = dao.CreateEntity(nil, cat); err == nil {
|
if err = dao.CreateEntity(nil, cat); err == nil {
|
||||||
outCat = cat
|
outCat = cat
|
||||||
err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName)
|
_, err = CurVendorSync.SyncCategory(nil, cat.ID, false, userName)
|
||||||
}
|
}
|
||||||
return outCat, err
|
return outCat, err
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ func UpdateCategory(categoryID int, payload map[string]interface{}, userName str
|
|||||||
if len(valid) > 0 {
|
if len(valid) > 0 {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
|
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
|
||||||
err = CurVendorSync.SyncCategory(db, categoryID, false, userName)
|
_, err = CurVendorSync.SyncCategory(db, categoryID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
@@ -105,7 +105,7 @@ func ReorderCategories(parentID int, categoryIDs []int, userName string) (err er
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = CurVendorSync.SyncReorderCategories(db, parentID, false, userName)
|
_, err = CurVendorSync.SyncReorderCategories(db, parentID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,7 +138,7 @@ func DeleteCategory(categoryID int, userName string) (num int64, err error) {
|
|||||||
return 0, errors.New("还有商品类别使用此类别,不能删除")
|
return 0, errors.New("还有商品类别使用此类别,不能删除")
|
||||||
}
|
}
|
||||||
if num, err = dao.DeleteEntityLogically(db, cat, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask), userName, nil); err == nil && num == 1 {
|
if num, err = dao.DeleteEntityLogically(db, cat, utils.Params2Map(model.FieldJdSyncStatus, model.SyncFlagDeletedMask), userName, nil); err == nil && num == 1 {
|
||||||
err = CurVendorSync.SyncCategory(db, cat.ID, false, userName)
|
_, err = CurVendorSync.SyncCategory(db, cat.ID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
@@ -354,7 +354,7 @@ func AddSkuName(skuNameExt *model.SkuNameExt, userName string) (outSkuNameExt *m
|
|||||||
return nil, ErrEntityNotExist
|
return nil, ErrEntityNotExist
|
||||||
}
|
}
|
||||||
outSkuNameExt = tmpInfo.SkuNames[0]
|
outSkuNameExt = tmpInfo.SkuNames[0]
|
||||||
err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, -1, userName)
|
_, err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, -1, false, userName)
|
||||||
return outSkuNameExt, err
|
return outSkuNameExt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,7 +398,7 @@ func UpdateSkuName(nameID int, payload map[string]interface{}, userName string)
|
|||||||
}, model.FieldJdSyncStatus)
|
}, model.FieldJdSyncStatus)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
err2 = CurVendorSync.SyncSku(db, nameID, -1, userName)
|
_, err2 = CurVendorSync.SyncSku(db, nameID, -1, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -433,7 +433,7 @@ func DeleteSkuName(nameID int, userName string) (num int64, err error) {
|
|||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
if num2 > 0 {
|
if num2 > 0 {
|
||||||
err = CurVendorSync.SyncSku(db, skuName.ID, -1, userName)
|
_, err = CurVendorSync.SyncSku(db, skuName.ID, -1, false, userName)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
@@ -453,7 +453,7 @@ func AddSku(nameID int, sku *model.Sku, userName string) (outSkuNameExt *model.S
|
|||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if result.TotalCount == 1 {
|
if result.TotalCount == 1 {
|
||||||
outSkuNameExt = result.SkuNames[0]
|
outSkuNameExt = result.SkuNames[0]
|
||||||
err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, sku.ID, userName)
|
_, err = CurVendorSync.SyncSku(db, outSkuNameExt.SkuName.ID, sku.ID, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -470,7 +470,7 @@ func UpdateSku(skuID int, payload map[string]interface{}, userName string) (num
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
|
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
|
||||||
if num == 1 {
|
if num == 1 {
|
||||||
err = CurVendorSync.SyncSku(db, -1, sku.ID, userName)
|
_, err = CurVendorSync.SyncSku(db, -1, sku.ID, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -488,7 +488,7 @@ func DeleteSku(skuID int, userName string) (num int64, err error) {
|
|||||||
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
||||||
}, userName, nil); err == nil {
|
}, userName, nil); err == nil {
|
||||||
if num == 1 {
|
if num == 1 {
|
||||||
err = CurVendorSync.SyncSku(db, -1, sku.ID, userName)
|
_, err = CurVendorSync.SyncSku(db, -1, sku.ID, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -504,7 +504,7 @@ func AddSkuNamePlace(nameID, placeCode int, userName string) (outPlaceBind *mode
|
|||||||
}
|
}
|
||||||
dao.WrapAddIDCULEntity(placeBind, userName)
|
dao.WrapAddIDCULEntity(placeBind, userName)
|
||||||
if err = dao.CreateEntity(db, placeBind); err == nil {
|
if err = dao.CreateEntity(db, placeBind); err == nil {
|
||||||
err = CurVendorSync.SyncSku(db, nameID, -1, userName)
|
_, err = CurVendorSync.SyncSku(db, nameID, -1, false, userName)
|
||||||
}
|
}
|
||||||
return placeBind, err
|
return placeBind, err
|
||||||
}
|
}
|
||||||
@@ -516,7 +516,7 @@ func DeleteSkuNamePlace(nameID, placeCode int, userName string) (num int64, err
|
|||||||
placeBind.PlaceCode = placeCode
|
placeBind.PlaceCode = placeCode
|
||||||
if num, err = dao.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err == nil {
|
if num, err = dao.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err == nil {
|
||||||
if num == 1 {
|
if num == 1 {
|
||||||
err = CurVendorSync.SyncSku(db, nameID, -1, userName)
|
_, err = CurVendorSync.SyncSku(db, nameID, -1, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ func UpdateStore(storeID int, payload map[string]interface{}, userName string) (
|
|||||||
}, model.FieldSyncStatus)
|
}, model.FieldSyncStatus)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
err = CurVendorSync.SyncStore(db, -1, store.ID, false, userName)
|
_, err = CurVendorSync.SyncStore(db, -1, store.ID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -257,7 +257,7 @@ func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.Sto
|
|||||||
if err = dao.CreateEntity(db, storeMap); err == nil {
|
if err = dao.CreateEntity(db, storeMap); err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
outStoreMap = storeMap
|
outStoreMap = storeMap
|
||||||
err = CurVendorSync.SyncStore(db, storeMap.VendorID, storeID, true, userName)
|
_, err = CurVendorSync.SyncStore(db, storeMap.VendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
@@ -281,7 +281,7 @@ func DeleteStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, userName string)
|
|||||||
model.FieldStoreID: storeID,
|
model.FieldStoreID: storeID,
|
||||||
model.FieldVendorID: vendorID,
|
model.FieldVendorID: vendorID,
|
||||||
}); err == nil && num > 0 {
|
}); err == nil && num > 0 {
|
||||||
err = CurVendorSync.SyncStore(db, vendorID, storeID, true, userName)
|
_, err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
@@ -317,7 +317,7 @@ func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[stri
|
|||||||
}
|
}
|
||||||
if err == nil && num > 0 {
|
if err == nil && num > 0 {
|
||||||
if valid["status"] != nil {
|
if valid["status"] != nil {
|
||||||
err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
|
_, err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -398,7 +398,7 @@ func AddStoreCourierMap(db *dao.DaoDB, storeID, vendorID int, storeCourierMap *m
|
|||||||
if err = dao.CreateEntity(db, storeCourierMap); err == nil {
|
if err = dao.CreateEntity(db, storeCourierMap); err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
outStoreCourierMap = storeCourierMap
|
outStoreCourierMap = storeCourierMap
|
||||||
err = CurVendorSync.SyncStore(db, storeCourierMap.VendorID, storeID, true, userName)
|
_, err = CurVendorSync.SyncStore(db, storeCourierMap.VendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
@@ -420,7 +420,7 @@ func DeleteStoreCourierMap(db *dao.DaoDB, storeID, vendorID int, userName string
|
|||||||
model.FieldStoreID: storeID,
|
model.FieldStoreID: storeID,
|
||||||
model.FieldVendorID: vendorID,
|
model.FieldVendorID: vendorID,
|
||||||
}); err == nil && num > 0 {
|
}); err == nil && num > 0 {
|
||||||
err = CurVendorSync.SyncStore(db, vendorID, storeID, true, userName)
|
_, err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package cms
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
||||||
@@ -12,6 +13,7 @@ import (
|
|||||||
"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/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type VendorSync struct {
|
type VendorSync struct {
|
||||||
@@ -45,20 +47,27 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
|
apiMap := map[int]interface{}{
|
||||||
|
model.VendorIDJD: api.JdAPI,
|
||||||
|
model.VendorIDELM: api.ElmAPI,
|
||||||
|
model.VendorIDEBAI: api.EbaiAPI,
|
||||||
|
}
|
||||||
CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler)
|
CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler)
|
||||||
for k, v := range basesch.FixedBaseScheduler.PurchasePlatformHandlers {
|
for k, v := range basesch.FixedBaseScheduler.PurchasePlatformHandlers {
|
||||||
if multiHandler, ok := v.(partner.IMultipleStoresHandler); ok {
|
if !reflect.ValueOf(apiMap[k]).IsNil() {
|
||||||
CurVendorSync.MultiStoreVendorIDs = append(CurVendorSync.MultiStoreVendorIDs, k)
|
if multiHandler, ok := v.(partner.IMultipleStoresHandler); ok {
|
||||||
CurVendorSync.PurchaseHandlers[k] = &MultiStoreHandlerWrapper{
|
CurVendorSync.MultiStoreVendorIDs = append(CurVendorSync.MultiStoreVendorIDs, k)
|
||||||
IMultipleStoresHandler: multiHandler,
|
CurVendorSync.PurchaseHandlers[k] = &MultiStoreHandlerWrapper{
|
||||||
|
IMultipleStoresHandler: multiHandler,
|
||||||
|
}
|
||||||
|
} else if singleHandler, ok := v.(partner.ISingleStoreHandler); ok {
|
||||||
|
CurVendorSync.SingleStoreVendorIDs = append(CurVendorSync.SingleStoreVendorIDs, k)
|
||||||
|
CurVendorSync.PurchaseHandlers[k] = &SingleStoreHandlerWrapper{
|
||||||
|
ISingleStoreHandler: singleHandler,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
panic(fmt.Sprintf("platform:%d type is wrong!", k))
|
||||||
}
|
}
|
||||||
} else if singleHandler, ok := v.(partner.ISingleStoreHandler); ok {
|
|
||||||
CurVendorSync.SingleStoreVendorIDs = append(CurVendorSync.SingleStoreVendorIDs, k)
|
|
||||||
CurVendorSync.PurchaseHandlers[k] = &SingleStoreHandlerWrapper{
|
|
||||||
ISingleStoreHandler: singleHandler,
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
panic(fmt.Sprintf("platform:%d type is wrong!", k))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -111,48 +120,60 @@ func (v *VendorSync) GetSingleStoreHandler(vendorID int) partner.ISingleStoreHan
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
|
func (v *VendorSync) syncCategories(multiStoresHandler partner.IMultipleStoresHandler, db *dao.DaoDB, cats []*model.SkuCategory, userName string) (err error) {
|
||||||
err = v.LoopMultiStoresVendors(db, "SyncCategory", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
||||||
|
task := tasksch.RunTask("syncCategories", false, nil, len(cats), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
|
cat := batchItemList[0].(*model.SkuCategory)
|
||||||
|
updateFields := []string{syncStatusFieldName}
|
||||||
|
syncStatus := jxutils.GetObjFieldByName(cat, syncStatusFieldName).(int8)
|
||||||
|
if (syncStatus & model.SyncFlagDeletedMask) != 0 { //删除
|
||||||
|
err = multiStoresHandler.DeleteCategory(db, cat, userName)
|
||||||
|
} else if (syncStatus & model.SyncFlagNewMask) != 0 { // 新增
|
||||||
|
err = multiStoresHandler.CreateCategory(db, cat, userName)
|
||||||
|
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
|
||||||
|
} else if (syncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
|
||||||
|
err = multiStoresHandler.UpdateCategory(db, cat, userName)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
jxutils.SetObjFieldByName(cat, syncStatusFieldName, int8(0))
|
||||||
|
_, err = dao.UpdateEntity(db, cat, updateFields...)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, cats)
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||||
|
globals.SugarLogger.Debug(v.MultiStoreVendorIDs)
|
||||||
|
hint, err = v.LoopMultiStoresVendors(db, "SyncCategory", isAsync, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||||
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
|
||||||
var cats []*model.SkuCategory
|
var cats []*model.SkuCategory
|
||||||
cond := make(map[string]interface{})
|
cond := make(map[string]interface{})
|
||||||
if categoryID > 0 {
|
if categoryID > 0 {
|
||||||
cond[model.FieldID] = categoryID
|
cond[model.FieldID] = categoryID
|
||||||
|
} else {
|
||||||
|
cond[model.FieldLevel] = 1
|
||||||
}
|
}
|
||||||
err := dao.GetEntitiesByKV(db, &cats, cond, true)
|
err := dao.GetEntitiesByKV(db, &cats, cond, true)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
task := tasksch.RunTask("", false, nil, len(cats), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
err = v.syncCategories(multiStoresHandler, db, cats, userName)
|
||||||
for _, v := range batchItemList {
|
}
|
||||||
cat := v.(*model.SkuCategory)
|
if err != nil || categoryID > 0 {
|
||||||
updateFields := []string{syncStatusFieldName}
|
return nil, err
|
||||||
syncStatus := jxutils.GetObjFieldByName(cat, syncStatusFieldName).(int8)
|
}
|
||||||
if (syncStatus & model.SyncFlagDeletedMask) != 0 { //删除
|
cond[model.FieldLevel] = 2
|
||||||
err = multiStoresHandler.DeleteCategory(db, cat, userName)
|
err = dao.GetEntitiesByKV(db, &cats, cond, true)
|
||||||
} else if (syncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
|
if err == nil {
|
||||||
err = multiStoresHandler.CreateCategory(db, cat, userName)
|
err = v.syncCategories(multiStoresHandler, db, cats, userName)
|
||||||
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
|
|
||||||
} else if (syncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
|
|
||||||
err = multiStoresHandler.UpdateCategory(db, cat, userName)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
jxutils.SetObjFieldByName(cat, syncStatusFieldName, int8(0))
|
|
||||||
_, err = dao.UpdateEntity(db, cat, updateFields...)
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, cats)
|
|
||||||
_, err = task.GetResult(0)
|
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
|
func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||||
err = v.LoopMultiStoresVendors(db, "SyncReorderCategories", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
hint, err = v.LoopMultiStoresVendors(db, "SyncReorderCategories", isAsync, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||||
err2 := multiStoresHandler.ReorderCategories(db, categoryID, userName)
|
err2 := multiStoresHandler.ReorderCategories(db, categoryID, userName)
|
||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
@@ -162,14 +183,14 @@ func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isForc
|
|||||||
}
|
}
|
||||||
return nil, err2
|
return nil, err2
|
||||||
})
|
})
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isForce bool, userName string) (err error) {
|
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isAsync bool, userName string) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("SyncStore, storeID:%d", storeID)
|
globals.SugarLogger.Debugf("SyncStore, storeID:%d", storeID)
|
||||||
err = v.LoopStoreMap(db, "SyncStore", userName, storeID, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
hint, err = v.LoopStoreMap(db, "SyncStore", isAsync, userName, storeID, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
storeMap := batchItemList[0].(*model.StoreMap)
|
storeMap := batchItemList[0].(*model.StoreMap)
|
||||||
if (vendorID == -1 || vendorID == storeMap.VendorID) && (isForce || storeMap.SyncStatus != 0) {
|
if (vendorID == -1 || vendorID == storeMap.VendorID) && (storeMap.SyncStatus != 0) {
|
||||||
if handler := v.GetStoreHandler(storeMap.VendorID); handler != nil {
|
if handler := v.GetStoreHandler(storeMap.VendorID); handler != nil {
|
||||||
if err = handler.UpdateStore(db, storeID, userName); err == nil {
|
if err = handler.UpdateStore(db, storeID, userName); err == nil {
|
||||||
storeMap.SyncStatus = 0
|
storeMap.SyncStatus = 0
|
||||||
@@ -179,12 +200,12 @@ func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isForce boo
|
|||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, userName string) (err error) {
|
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isAsync bool, userName string) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
||||||
err = v.LoopMultiStoresVendors(db, "SyncSku", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
hint, err = v.LoopMultiStoresVendors(db, "SyncSku", isAsync, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||||
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
||||||
var skuList []*model.Sku
|
var skuList []*model.Sku
|
||||||
@@ -199,25 +220,21 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, userName string)
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
||||||
task := tasksch.RunTask("SyncSku", false, nil, len(skuList), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
task := tasksch.RunTask("SyncSku", false, nil, len(skuList), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
for _, v := range batchItemList {
|
sku := batchItemList[0].(*model.Sku)
|
||||||
sku := v.(*model.Sku)
|
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
||||||
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
||||||
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
updateFields := []string{syncStatusFieldName}
|
||||||
updateFields := []string{syncStatusFieldName}
|
if syncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
if syncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
err = multiStoresHandler.DeleteSku(db, sku, userName)
|
||||||
err = multiStoresHandler.DeleteSku(db, sku, userName)
|
} else if syncStatus&model.SyncFlagNewMask != 0 { // 新增
|
||||||
} else if syncStatus&model.SyncFlagNewMask != 0 { // 新增
|
err = multiStoresHandler.CreateSku(db, sku, userName)
|
||||||
err = multiStoresHandler.CreateSku(db, sku, userName)
|
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
|
||||||
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
|
} else if syncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
||||||
} else if syncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
err = multiStoresHandler.UpdateSku(db, sku, userName)
|
||||||
err = multiStoresHandler.UpdateSku(db, sku, userName)
|
}
|
||||||
}
|
if err == nil {
|
||||||
if err == nil {
|
jxutils.SetObjFieldByName(sku, syncStatusFieldName, int8(0))
|
||||||
jxutils.SetObjFieldByName(sku, syncStatusFieldName, int8(0))
|
dao.UpdateEntity(db, sku, updateFields...)
|
||||||
dao.UpdateEntity(db, sku, updateFields...)
|
|
||||||
} else {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -226,13 +243,13 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, userName string)
|
|||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
})
|
})
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
|
func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
|
||||||
globals.SugarLogger.Debug("SyncStoresSkus")
|
globals.SugarLogger.Debug("SyncStoresSkus")
|
||||||
hint, err = v.LoopStoreVendors(db, isAsync, vendorIDs, "SyncStoresSkus", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
hint, err = v.LoopStoreVendors(db, vendorIDs, "SyncStoresSkus", isAsync, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
handler := v.GetStoreHandler(batchItemList[0].(int))
|
handler := v.GetStoreHandler(batchItemList[0].(int))
|
||||||
_, err = handler.SyncStoresSkus(db, storeIDs, skuIDs, false, userName)
|
_, err = handler.SyncStoresSkus(db, storeIDs, skuIDs, false, userName)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -240,25 +257,31 @@ func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []i
|
|||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, taskName, userName string, storeID int, handler tasksch.WorkFunc) (err error) {
|
func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, taskName string, isAsync bool, userName string, storeID int, handler tasksch.WorkFunc) (hint string, err error) {
|
||||||
storeMaps, err := GetStoreVendorMaps(db, storeID, -1)
|
storeMaps, err := GetStoreVendorMaps(db, storeID, -1)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
task := tasksch.RunManagedTask(taskName, false, nil, len(storeMaps), 1, userName, handler, storeMaps)
|
task := tasksch.RunManagedTask(taskName, false, nil, len(storeMaps), 1, userName, handler, storeMaps)
|
||||||
_, err = task.GetResult(0)
|
hint = task.ID
|
||||||
|
if !isAsync {
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return makeSyncError(err)
|
return "", makeSyncError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) {
|
func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||||
if taskName == "" {
|
if taskName == "" {
|
||||||
taskName = "LoopMultiStoresVendors"
|
taskName = "LoopMultiStoresVendors"
|
||||||
}
|
}
|
||||||
task := tasksch.RunManagedTask(taskName, false, nil, len(v.MultiStoreVendorIDs), 1, userName, handler, v.MultiStoreVendorIDs)
|
task := tasksch.RunManagedTask(taskName, false, nil, len(v.MultiStoreVendorIDs), 1, userName, handler, v.MultiStoreVendorIDs)
|
||||||
_, err = task.GetResult(0)
|
hint = task.ID
|
||||||
return makeSyncError(err)
|
if !isAsync {
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
}
|
||||||
|
return "", makeSyncError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, isAsync bool, vendorIDs []int, taskName, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, vendorIDs []int, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||||
if taskName == "" {
|
if taskName == "" {
|
||||||
taskName = "LoopStoreVendors"
|
taskName = "LoopStoreVendors"
|
||||||
}
|
}
|
||||||
@@ -290,7 +313,7 @@ func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, isAsync bool, vendorIDs []i
|
|||||||
return "", makeSyncError(err)
|
return "", makeSyncError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) {
|
func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||||
if taskName == "" {
|
if taskName == "" {
|
||||||
taskName = "LoopSingleStoreVendors"
|
taskName = "LoopSingleStoreVendors"
|
||||||
}
|
}
|
||||||
@@ -304,9 +327,12 @@ func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName st
|
|||||||
parellelCount = 20
|
parellelCount = 20
|
||||||
}
|
}
|
||||||
task := tasksch.RunManagedTask(taskName, false, nil, parellelCount, 1, userName, handler, storeMaps)
|
task := tasksch.RunManagedTask(taskName, false, nil, parellelCount, 1, userName, handler, storeMaps)
|
||||||
_, err = task.GetResult(0)
|
hint = task.ID
|
||||||
|
if !isAsync {
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return makeSyncError(err)
|
return "", makeSyncError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err error) {
|
func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err error) {
|
||||||
@@ -330,7 +356,7 @@ func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err erro
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if err = dao.GetRows(db, &ids, sql, sqlParams); err == nil {
|
if err = dao.GetRows(db, &ids, sql, sqlParams); err == nil {
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(ids, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(ids, false))
|
||||||
err = v.LoopMultiStoresVendors(db, "RefreshSkuIDs", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
_, err = v.LoopMultiStoresVendors(db, "RefreshSkuIDs", false, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||||
err := multiStoresHandler.SyncSkusIDMap(db, ids, userName)
|
err := multiStoresHandler.SyncSkusIDMap(db, ids, userName)
|
||||||
globals.SugarLogger.Debug(err)
|
globals.SugarLogger.Debug(err)
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ const (
|
|||||||
FieldEbaiID = "EbaiID"
|
FieldEbaiID = "EbaiID"
|
||||||
|
|
||||||
FieldSkuID = "SkuID"
|
FieldSkuID = "SkuID"
|
||||||
|
FieldLevel = "Level"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelIDCUL struct {
|
type ModelIDCUL struct {
|
||||||
|
|||||||
@@ -32,10 +32,8 @@ type DeliveryHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.DadaAPI != nil {
|
curDeliveryHandler = new(DeliveryHandler)
|
||||||
curDeliveryHandler = new(DeliveryHandler)
|
scheduler.CurrentScheduler.RegisterDeliveryPlatform(curDeliveryHandler, true)
|
||||||
scheduler.CurrentScheduler.RegisterDeliveryPlatform(curDeliveryHandler, true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func OnWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaapi.CallbackResponse) {
|
func OnWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaapi.CallbackResponse) {
|
||||||
|
|||||||
@@ -34,10 +34,8 @@ type DeliveryHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.MtpsAPI != nil {
|
curDeliveryHandler = new(DeliveryHandler)
|
||||||
curDeliveryHandler = new(DeliveryHandler)
|
scheduler.CurrentScheduler.RegisterDeliveryPlatform(curDeliveryHandler, true)
|
||||||
scheduler.CurrentScheduler.RegisterDeliveryPlatform(curDeliveryHandler, true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *DeliveryHandler) GetVendorID() int {
|
func (c *DeliveryHandler) GetVendorID() int {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -16,10 +15,8 @@ type PurchaseHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.EbaiAPI != nil {
|
curPurchaseHandler = new(PurchaseHandler)
|
||||||
curPurchaseHandler = new(PurchaseHandler)
|
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
||||||
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func EbaiBusStatus2JxStatus(ebaiStatus int) int {
|
func EbaiBusStatus2JxStatus(ebaiStatus int) int {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -18,10 +17,8 @@ type PurchaseHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.ElmAPI != nil {
|
curPurchaseHandler = new(PurchaseHandler)
|
||||||
curPurchaseHandler = new(PurchaseHandler)
|
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
||||||
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetVendorID() int {
|
func (c *PurchaseHandler) GetVendorID() int {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -17,10 +16,8 @@ type PurchaseHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if api.JdAPI != nil {
|
curPurchaseHandler = new(PurchaseHandler)
|
||||||
curPurchaseHandler = new(PurchaseHandler)
|
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
||||||
scheduler.CurrentScheduler.RegisterPurchasePlatform(curPurchaseHandler)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetVendorID() int {
|
func (c *PurchaseHandler) GetVendorID() int {
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ const (
|
|||||||
|
|
||||||
type tSkuInfoExt struct {
|
type tSkuInfoExt struct {
|
||||||
model.SkuName
|
model.SkuName
|
||||||
Img string
|
|
||||||
JdID int64 `orm:"column(jd_id)"` // 商家类别
|
JdID int64 `orm:"column(jd_id)"` // 商家类别
|
||||||
JdCategoryID int `orm:"column(jd_category_id)"` // 到家类别
|
JdCategoryID int `orm:"column(jd_category_id)"` // 到家类别
|
||||||
SkuCatID int64 `orm:"column(sku_cat_id)"` // 商家特殊类别
|
SkuCatID int64 `orm:"column(sku_cat_id)"` // 商家特殊类别
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs [
|
|||||||
// globals.SugarLogger.Debug(sql, sqlParams)
|
// globals.SugarLogger.Debug(sql, sqlParams)
|
||||||
if err = dao.GetRows(db, &storeSkus, sql, sqlParams); err == nil {
|
if err = dao.GetRows(db, &storeSkus, sql, sqlParams); err == nil {
|
||||||
outStationNo := utils.Int2Str(storeID)
|
outStationNo := utils.Int2Str(storeID)
|
||||||
task := tasksch.RunTask("", false, nil, 0, MaxSkuBatchSize, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
task := tasksch.RunTask("SyncStoresSkus inner", false, nil, 0, MaxSkuBatchSize, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
var skuPriceInfoList []*jdapi.SkuPriceInfo
|
||||||
var skuVendibilityList []*jdapi.StockVendibility
|
var skuVendibilityList []*jdapi.StockVendibility
|
||||||
var skuStockList []*jdapi.SkuStock
|
var skuStockList []*jdapi.SkuStock
|
||||||
@@ -79,6 +79,7 @@ func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs [
|
|||||||
if storeSku.DeletedAt != utils.DefaultTimeValue {
|
if storeSku.DeletedAt != utils.DefaultTimeValue {
|
||||||
stock.StockQty = 0
|
stock.StockQty = 0
|
||||||
}
|
}
|
||||||
|
skuStockList = append(skuStockList, stock)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ disableEbai = true
|
|||||||
dbConnectStr = "root:WebServer@1@tcp(db1.int.jxc4.com:3306)/jxd_dev_2?charset=utf8mb4&loc=Local&parseTime=true"
|
dbConnectStr = "root:WebServer@1@tcp(db1.int.jxc4.com:3306)/jxd_dev_2?charset=utf8mb4&loc=Local&parseTime=true"
|
||||||
|
|
||||||
enableStore = true
|
enableStore = true
|
||||||
|
enableStoreWrite = true
|
||||||
|
|
||||||
[test]
|
[test]
|
||||||
freshFoodServerURL = "http://portal.alpha.int.jxc4.com"
|
freshFoodServerURL = "http://portal.alpha.int.jxc4.com"
|
||||||
|
|||||||
@@ -111,6 +111,22 @@ func (c *SkuController) DeleteCategory() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 同步商家SKU类别
|
||||||
|
// @Description 同步商家SKU类别
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param categoryID query int true "SKU类别ID, -1表示所有"
|
||||||
|
// @Param isAsync query bool false "是否异步"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /SyncCategory [put]
|
||||||
|
func (c *SkuController) SyncCategory() {
|
||||||
|
c.callSyncCategory(func(params *tSkuSyncCategoryParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
retVal, err = cms.CurVendorSync.SyncCategory(db, params.CategoryID, params.IsAsync, GetUserNameFromToken(params.Token))
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// @Title 得到商品信息
|
// @Title 得到商品信息
|
||||||
// @Description 得到商品信息,如下条件之间是与的关系
|
// @Description 得到商品信息,如下条件之间是与的关系
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
@@ -288,13 +304,14 @@ func (c *SkuController) GetVendorSku() {
|
|||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param nameID query int true "name ID, -1表示所有"
|
// @Param nameID query int true "name ID, -1表示所有"
|
||||||
// @Param skuID query int true "sku ID, -1表示所有"
|
// @Param skuID query int true "sku ID, -1表示所有"
|
||||||
|
// @Param isAsync query bool false "是否异步"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /SyncSkus [put]
|
// @router /SyncSku [put]
|
||||||
func (c *SkuController) SyncSkus() {
|
func (c *SkuController) SyncSku() {
|
||||||
c.callSyncSkus(func(params *tSkuSyncSkusParams) (retVal interface{}, errCode string, err error) {
|
c.callSyncSku(func(params *tSkuSyncSkuParams) (retVal interface{}, errCode string, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
err = cms.CurVendorSync.SyncSku(db, params.NameID, params.SkuID, GetUserNameFromToken(params.Token))
|
retVal, err = cms.CurVendorSync.SyncSku(db, params.NameID, params.SkuID, params.IsAsync, GetUserNameFromToken(params.Token))
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -26,9 +26,9 @@ var (
|
|||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
// globals.Init()
|
// globals.Init()
|
||||||
cms.InitServiceInfo(Version, BuildDate, GitCommit)
|
|
||||||
beegodb.Init()
|
beegodb.Init()
|
||||||
api.Init()
|
api.Init()
|
||||||
|
cms.InitServiceInfo(Version, BuildDate, GitCommit)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回true表示非运行服务
|
// 返回true表示非运行服务
|
||||||
|
|||||||
@@ -329,8 +329,16 @@ func init() {
|
|||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "SyncSkus",
|
Method: "SyncCategory",
|
||||||
Router: `/SyncSkus`,
|
Router: `/SyncCategory`,
|
||||||
|
AllowHTTPMethods: []string{"put"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "SyncSku",
|
||||||
|
Router: `/SyncSku`,
|
||||||
AllowHTTPMethods: []string{"put"},
|
AllowHTTPMethods: []string{"put"},
|
||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|||||||
Reference in New Issue
Block a user