优化速度
This commit is contained in:
@@ -1049,51 +1049,53 @@ func SortCategorySku(ctx *jxcontext.Context, catID int, skuIDList []int) (err er
|
|||||||
userName := ctx.GetUserName()
|
userName := ctx.GetUserName()
|
||||||
var skuList []*model.Sku
|
var skuList []*model.Sku
|
||||||
if skuList, err = dao.GetSkuByCats(db, []int{catID}); err == nil && len(skuList) > 0 {
|
if skuList, err = dao.GetSkuByCats(db, []int{catID}); err == nil && len(skuList) > 0 {
|
||||||
if len(skuList) == len(skuIDList) {
|
if len(skuList) != len(skuIDList) {
|
||||||
skuIDMap := make(map[int]int)
|
return errors.New("商品数量不匹配!")
|
||||||
for index, id := range skuIDList {
|
}
|
||||||
skuIDMap[id] = index + 1
|
skuIDMap := make(map[int]int)
|
||||||
|
for index, id := range skuIDList {
|
||||||
|
skuIDMap[id] = index + 1
|
||||||
|
}
|
||||||
|
for _, value := range skuList {
|
||||||
|
if _, ok := skuIDMap[value.ID]; !ok {
|
||||||
|
return errors.New("商品数据不匹配!")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, value := range skuList {
|
dao.Begin(db)
|
||||||
if _, ok := skuIDMap[value.ID]; !ok {
|
defer func() {
|
||||||
err = errors.New("商品数据不匹配!")
|
if r := recover(); r != nil || err != nil {
|
||||||
break
|
dao.Rollback(db)
|
||||||
|
if r != nil {
|
||||||
|
panic(r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
dao.Begin(db)
|
nameIDList := []int{}
|
||||||
defer func() {
|
for _, value := range skuList {
|
||||||
if r := recover(); r != nil || err != nil {
|
seq := skuIDMap[value.ID]
|
||||||
dao.Rollback(db)
|
kvs := map[string]interface{} {
|
||||||
if r != nil {
|
model.FieldSkuSeq: seq,
|
||||||
panic(r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
for _, value := range skuList {
|
|
||||||
seq := skuIDMap[value.ID]
|
|
||||||
kvs := map[string]interface{} {
|
|
||||||
model.FieldSkuSeq: seq,
|
|
||||||
}
|
|
||||||
dao.UpdateEntityLogically(db, value, kvs, userName, nil)
|
|
||||||
|
|
||||||
sku := &model.Sku{}
|
|
||||||
sku.ID = value.ID
|
|
||||||
dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, ctx.GetUserName(), nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask)
|
|
||||||
|
|
||||||
nameID := value.NameID
|
|
||||||
skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID})
|
|
||||||
if err = err2; err == nil && len(skuIDs) > 0 {
|
|
||||||
_, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask)
|
|
||||||
}
|
|
||||||
if err == nil {
|
|
||||||
dao.Commit(db)
|
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
dao.UpdateEntityLogically(db, value, kvs, userName, nil)
|
||||||
|
|
||||||
|
sku := &model.Sku{}
|
||||||
|
sku.ID = value.ID
|
||||||
|
dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, ctx.GetUserName(), nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask)
|
||||||
|
|
||||||
|
nameID := value.NameID
|
||||||
|
nameIDList = append(nameIDList, nameID)
|
||||||
|
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
|
||||||
|
}
|
||||||
|
|
||||||
|
skuIDs, err2 := dao.GetSkuIDByNames(db, nameIDList)
|
||||||
|
if err = err2; err == nil && len(skuIDs) > 0 {
|
||||||
|
_, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
dao.Commit(db)
|
||||||
} else {
|
} else {
|
||||||
err = errors.New("商品数量不匹配!")
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user