同步修改

This commit is contained in:
Rosy-zhudan
2019-08-01 17:05:09 +08:00
15 changed files with 260 additions and 228 deletions

View File

@@ -636,12 +636,12 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
dao.Commit(db)
globals.SugarLogger.Debugf("UpdateStore track:%s, before call SyncStore", ctx.GetTrackInfo())
_, err = CurVendorSync.SyncStore(ctx, db, -1, store.ID, false, userName)
if err2 := updateCourierStores(ctx, storeID); err2 != nil && err == nil {
err = err2
}
if valid["tel1"] != nil {
BindMobile2Store(ctx, utils.Interface2String(valid["tel1"]), storeID)
}
if syncStatus&model.SyncFlagStoreAddress != 0 && valid["tel1"] != nil || valid["payeeName"] != nil {
updateCourierStores(ctx, storeID)
}
}
} else {
dao.Commit(db)

View File

@@ -60,9 +60,10 @@ type StoreSkuExt struct {
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"`
MtwmSyncStatus int8 `orm:"default(2)" json:"mtwmSyncStatus"`
WscSyncStatus int8 `orm:"default(2)" json:"wscSyncStatus"`
EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"`
MtwmSyncStatus int8 `orm:"default(2)" json:"mtwmSyncStatus"`
WscSyncStatus int8 `orm:"default(2)" json:"wscSyncStatus"`
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
ActPrice int `json:"actPrice"`
EarningPrice int `json:"earningPrice"`
@@ -385,7 +386,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at,
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status bind_status,
t4.ebai_id, t4.mtwm_id, t4.wsc_id, t4.wsc_id2,
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.wsc_sync_status
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.wsc_sync_status, t4.auto_sale_at
` + sql
var tmpList []*tGetStoresSkusInfo
beginTime := time.Now()
@@ -1241,6 +1242,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
// setStoreSkuBindStatus(skuBind, model.SyncFlagModifiedMask)
dao.WrapUpdateULEntity(skuBind, userName)
skuBind.AutoSaleAt = utils.DefaultTimeValue
if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil {
dao.Rollback(db)
return nil, err
@@ -1318,10 +1320,10 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask,
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
}
// if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
// autoSaleTime = utils.DefaultTimeValue
// }
// kvs["AutoSaleAt"] = autoSaleTime
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
autoSaleTime = utils.DefaultTimeValue
}
kvs["AutoSaleAt"] = autoSaleTime
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
dao.Rollback(db)
return nil, err
@@ -2178,35 +2180,35 @@ func GetMissingStoreSkuFromOrder(ctx *jxcontext.Context, fromTime time.Time) (mi
}
func AutoSaleStoreSku(ctx *jxcontext.Context, storeIDs []int) (err error) {
// db := dao.GetDB()
// storeSkuList, err := dao.GetAutoSaleStoreSku(db, storeIDs)
// if err != nil {
// return err
// }
// storeSkuMap := make(map[int][]*model.StoreSkuBind)
// for _, v := range storeSkuList {
// storeSkuMap[v.StoreID] = append(storeSkuMap[v.StoreID], v)
// }
// now := time.Now()
// for storeID, storeSkuList := range storeSkuMap {
// var skuIDs []int
// for _, storeSku := range storeSkuList {
// if now.Sub(storeSku.AutoSaleAt) > 0 {
// storeSku.AutoSaleAt = utils.DefaultTimeValue
// if storeSku.Status != model.SkuStatusNormal {
// storeSku.Status = model.SkuStatusNormal
// skuIDs = append(skuIDs, storeSku.SkuID)
// }
// if _, err = dao.UpdateEntity(db, storeSku, "AutoSaleAt", model.FieldStatus); err != nil {
// return err
// }
// }
// }
// if len(skuIDs) > 0 {
// if _, err = CurVendorSync.SyncStoresSkus(ctx, db, nil, []int{storeID}, skuIDs, false, true, true); err != nil {
// return err
// }
// }
// }
db := dao.GetDB()
storeSkuList, err := dao.GetAutoSaleStoreSku(db, storeIDs)
if err != nil {
return err
}
storeSkuMap := make(map[int][]*model.StoreSkuBind)
for _, v := range storeSkuList {
storeSkuMap[v.StoreID] = append(storeSkuMap[v.StoreID], v)
}
now := time.Now()
for storeID, storeSkuList := range storeSkuMap {
var skuIDs []int
for _, storeSku := range storeSkuList {
if now.Sub(storeSku.AutoSaleAt) > 0 {
storeSku.AutoSaleAt = utils.DefaultTimeValue
if storeSku.Status != model.SkuStatusNormal {
storeSku.Status = model.SkuStatusNormal
skuIDs = append(skuIDs, storeSku.SkuID)
}
if _, err = dao.UpdateEntity(db, storeSku, "AutoSaleAt", model.FieldStatus); err != nil {
return err
}
}
}
if len(skuIDs) > 0 {
if _, err = CurVendorSync.SyncStoresSkus(ctx, db, nil, []int{storeID}, skuIDs, false, true, true); err != nil {
return err
}
}
}
return err
}

View File

@@ -6,28 +6,4 @@ import (
func TestCheckSkuDiffBetweenJxAndVendor(t *testing.T) {
CheckSkuDiffBetweenJxAndVendor()
}
func TestTestExcel(t *testing.T) {
data1 := []DiffData{
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
}
data2 := []DiffData{
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
}
data3 := []DiffData{
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
DiffData{"1", "1211", "aaa", "apple", "banna", "1", "0"},
}
data := map[int][]DiffData{
0: data1,
1: data2,
3: data3,
}
WriteToExcel(data)
}
}

View File

@@ -4,7 +4,6 @@ import (
"errors"
"fmt"
"reflect"
"strings"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -421,19 +420,19 @@ func (v *VendorSync) SyncStoresSkus(ctx *jxcontext.Context, db *dao.DaoDB, vendo
return nil, partner.AddVendorInfo2Err(err, loopMapInfo.VendorID)
}, isContinueWhenError)
if task != nil {
if vendorErr := partner.IsErrChangePriceFailed(task.GetOriginalErr()); vendorErr != nil {
platformList := make([]string, len(task.GetDetailErrList()))
for k, v := range task.GetDetailErrList() {
if vendorErr := partner.IsErrVendorError(v); vendorErr != nil {
platformList[k] = model.VendorChineseNames[vendorErr.VendorID()]
} else {
platformList[k] = "未知"
}
}
err = fmt.Errorf("同步价格失败\n失败平台%s", strings.Join(platformList, ","))
} else {
err = makeSyncError(err)
}
// if vendorErr := partner.IsErrChangePriceFailed(task.GetOriginalErr()); vendorErr != nil {
// platformList := make([]string, len(task.GetDetailErrList()))
// for k, v := range task.GetDetailErrList() {
// if vendorErr := partner.IsErrVendorError(v); vendorErr != nil {
// platformList[k] = model.VendorChineseNames[vendorErr.VendorID()]
// } else {
// platformList[k] = "未知"
// }
// }
// err = fmt.Errorf("同步价格失败\n失败平台%s", strings.Join(platformList, ","))
// } else {
// }
err = makeSyncError(err)
}
return hint, err
}