- no platform dependency in sync.go

This commit is contained in:
gazebo
2018-10-11 22:17:20 +08:00
parent 02b97909bc
commit 6133998e54
17 changed files with 152 additions and 52 deletions

View File

@@ -6,6 +6,7 @@ import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
"git.rosy.net.cn/jx-callback/business/jxutils"
"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/dao"
@@ -46,6 +47,7 @@ func Init() {
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
err = v.LoopMultiStoresVendors(db, "SyncCategory", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
var cats []*model.SkuCategory
cond := make(map[string]interface{})
if categoryID > 0 {
@@ -56,17 +58,18 @@ func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, u
task := tasksch.RunTask("", false, nil, len(cats), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
for _, v := range batchItemList {
cat := v.(*model.SkuCategory)
updateFields := []string{multiStoresHandler.GetFieldSyncStatusName()}
if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 { //删除
updateFields := []string{syncStatusFieldName}
syncStatus := jxutils.GetObjFieldByName(cat, syncStatusFieldName).(int8)
if (syncStatus & model.SyncFlagDeletedMask) != 0 { //删除
err = multiStoresHandler.DeleteCategory(db, cat, userName)
} else if (cat.JdSyncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
} else if (syncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
err = multiStoresHandler.CreateCategory(db, cat, userName)
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
} else if (cat.JdSyncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
} else if (syncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
err = multiStoresHandler.UpdateCategory(db, cat, userName)
}
if err == nil {
cat.JdSyncStatus = 0
jxutils.SetObjFieldByName(cat, syncStatusFieldName, int8(0))
_, err = dao.UpdateEntity(db, cat, updateFields...)
} else {
break
@@ -116,6 +119,7 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, isForce:%t, userName:%s", nameID, skuID, isForce, userName)
err = v.LoopMultiStoresVendors(db, "SyncSku", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
var skuList []*model.Sku
cond := make(map[string]interface{})
if nameID != -1 {
@@ -130,18 +134,19 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
task := tasksch.RunTask("SyncSku", false, nil, len(skuList), 1, userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
for _, v := range batchItemList {
sku := v.(*model.Sku)
if (skuID == -1 || skuID == sku.ID) && (isForce || sku.JdSyncStatus != 0) {
updateFields := []string{multiStoresHandler.GetFieldSyncStatusName()}
if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
if (skuID == -1 || skuID == sku.ID) && (isForce || syncStatus != 0) {
updateFields := []string{syncStatusFieldName}
if syncStatus&model.SyncFlagDeletedMask != 0 { // 删除
err = multiStoresHandler.DeleteSku(db, sku, userName)
} else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 新增
} else if syncStatus&model.SyncFlagNewMask != 0 { // 新增
err = multiStoresHandler.CreateSku(db, sku, userName)
updateFields = append(updateFields, multiStoresHandler.GetFieldIDName())
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
} else if syncStatus&model.SyncFlagModifiedMask != 0 { // 修改
err = multiStoresHandler.UpdateSku(db, sku, userName)
}
if err == nil {
sku.JdSyncStatus = 0
jxutils.SetObjFieldByName(sku, syncStatusFieldName, int8(0))
dao.UpdateEntity(db, sku, updateFields...)
} else {
break