This commit is contained in:
苏尹岚
2021-03-30 17:39:07 +08:00
parent b9f7d7f53a
commit 0dd7235485
49 changed files with 579 additions and 582 deletions

View File

@@ -169,24 +169,24 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string
}
cat.Seq = maxSeq.MaxSeq + 1
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, cat); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if cat.IsExdSpec == model.NO {
if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory, model.SyncFlagNewMask, false); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
outCat = cat
_, err = CurVendorSync.SyncCategory(ctx, nil, cat.ID, false, userName)
@@ -230,24 +230,24 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i
}
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if num, err = dao.UpdateEntityLogically(db, cat, valid, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if cat.IsExdSpec == model.NO {
if err = OnUpdateThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
SetStoreCategorySyncStatus2(db, nil, []int{categoryID}, model.SyncFlagModifiedMask)
var skuIDs []int
@@ -326,16 +326,16 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int,
catsMap[cat.ID] = cat
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
for k, v := range categoryIDs {
if catsMap[v] == nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return fmt.Errorf("分类:%d不在%d分类下", v, parentID)
}
if isExd {
@@ -345,17 +345,17 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int,
}
catsMap[v].LastOperator = ctx.GetUserName()
if _, err = dao.UpdateEntity(db, catsMap[v]); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
if catsMap[v].IsExdSpec == model.NO {
if err = OnUpdateThing(ctx, db, nil, int64(catsMap[v].ID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
SetStoreCategorySyncStatus2(db, nil, categoryIDs, model.SyncFlagModifiedMask)
if err == nil {
_, err = CurVendorSync.SyncReorderCategories(ctx, db, parentID, false, userName)
@@ -390,29 +390,29 @@ func DeleteCategory(ctx *jxcontext.Context, categoryID int, userName string) (nu
} else if countInfos[2].Ct != 0 {
return 0, errors.New("还有商品类别使用此类别,不能删除")
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = DeleteCategoryMap(ctx, db, categoryID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if err = OnDeleteThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if num, err = dao.DeleteEntityLogically(db, cat, map[string]interface{}{
// model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
model.FieldStatus: 0,
}, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
_, err = CurVendorSync.SyncCategory(ctx, db, cat.ID, false, userName)
}
return num, err
@@ -636,23 +636,23 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric
offset = jxutils.FormalizePageOffset(offset)
sqlParams = append(sqlParams, pageSize, offset)
skuNamesInfo = &SkuNamesInfo{}
dao.Begin(db) // todo 这里用事务的原因是SQL_CALC_FOUND_ROWS会出错
txDB , _ := dao.Begin(db) // todo 这里用事务的原因是SQL_CALC_FOUND_ROWS会出错
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.GetRows(db, &skuNamesInfo.SkuNames, sqlData, sqlParams...); err == nil {
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
dao.Commit(db)
dao.Commit(db, txDB)
// var skuIDs []int
for _, skuName := range skuNamesInfo.SkuNames {
skuName.FullName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, "", "", 0, "", 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd)
// if skuName.SkusStr != "" {
// if err = utils.UnmarshalUseNumber([]byte(skuName.SkusStr), &skuName.Skus); err != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
// return nil, err
// }
// for _, v := range skuName.Skus {
@@ -661,7 +661,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric
// }
// if skuName.PlacesStr != "" {
// if err = utils.UnmarshalUseNumber([]byte(skuName.PlacesStr), &skuName.Places); err != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
// return nil, err
// }
// }
@@ -732,7 +732,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric
}
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
return skuNamesInfo, err
}
@@ -857,20 +857,20 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
}
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
dao.WrapAddIDCULDEntity(&skuNameExt.SkuName, userName)
if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if err = OnCreateThing(ctx, db, nil, int64(skuNameExt.SkuName.ID), model.ThingTypeSkuName, model.SyncFlagNewMask, false); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
for _, v := range skuNameExt.Skus {
@@ -884,12 +884,12 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
}
sku.LadderBoxNum = 1
if err = dao.CreateEntity(db, sku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if sku.EclpID == "" {
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
@@ -900,11 +900,11 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
placeBind.NameID = skuNameExt.ID
placeBind.PlaceCode = placeCode
if err = dao.CreateEntity(db, placeBind); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
tmpInfo, err := GetSkuNames(ctx, "", false, false, utils.Params2Map("nameID", skuNameExt.SkuName.ID), 0, 1)
if err != nil {
@@ -978,28 +978,28 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
if payload["eclpID"] != nil {
eclpID = payload["eclpID"].(string)
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
// valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask | skuName.JdSyncStatus
if num, err = dao.UpdateEntityLogically(db, skuName, valid, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if !isExd && eclpID == "" {
if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil {
if places, ok := payload["places"].([]interface{}); ok {
if _, err = dao.DeleteSkuNamePlace(db, nameID, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
for _, placeCode := range places {
@@ -1010,7 +1010,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
placeBind.NameID = nameID
err = dao.CreateEntity(db, placeBind)
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, errors.New("地点代码非法")
}
}
@@ -1024,12 +1024,12 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
sku.LastOperator = userName
sku.UpdatedAt = time.Now()
if _, err = dao.UpdateEntity(db, sku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if sku.ExdSkuID == "" && sku.EclpID == "" {
if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
@@ -1037,22 +1037,22 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
}
skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID})
if err = err2; err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if len(skuIDs) > 0 {
if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if valid["jdsStockSwitch"] != nil {
if _, err = SetStoreSkuSyncStatus2(db, []int{model.JdShopMainStoreID}, []int{model.VendorIDJDShop}, skuIDs, model.SyncFlagSaleMask); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
errList := errlist.New()
errList.AddErr(err)
@@ -1144,20 +1144,20 @@ func SetStoreSkuSyncStatus2(db *dao.DaoDB, storeIDs []int, vendorIDs, skuIDs []i
func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int64, err error) {
db := dao.GetDB()
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err := dao.DeleteSkuNamePlace(db, nameID, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if _, err = DeleteStoreSku(ctx, db, nameID, 0); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
@@ -1166,21 +1166,21 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int
for _, v := range skuList {
sku := &v.Sku
if err = OnDeleteThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if _, err = dao.DeleteEntityLogically(db, sku, map[string]interface{}{
// model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
model.FieldStatus: model.SkuStatusDeleted,
}, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
}
if err = OnDeleteThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
@@ -1190,10 +1190,10 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int
// model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
model.FieldStatus: model.SkuStatusDeleted,
}, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
if len(skuList) > 0 {
_, err = CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, false, userName)
@@ -1223,22 +1223,22 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
sku.LadderBoxPrice = 10
}
sku.LadderBoxNum = 1
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, sku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
dao.Commit(db)
dao.Commit(db, txDB)
result, err2 := GetSkuNames(ctx, "", false, false, utils.Params2Map("skuID", sku.ID), 0, 0)
if err = err2; err == nil {
@@ -1292,10 +1292,10 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
valid := dao.StrictMakeMapByStructObject(payload, sku, userName)
if len(valid) > 0 {
// globals.SugarLogger.Debug(utils.Format4Output(valid, false))
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -1305,7 +1305,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
}
// valid[model.FieldJdSyncStatus] = maskValue | sku.JdSyncStatus
if num, err = dao.UpdateEntityLogically(db, sku, valid, userName, nil); err != nil || num == 0 {
dao.Rollback(db)
dao.Rollback(db, txDB)
if err == nil {
err = ErrEntityNotExist
}
@@ -1318,7 +1318,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
t1.spec_unit = t2.spec_unit
WHERE t1.deleted_at = ? AND t2.id = ? AND t1.unit <> ?
`, utils.DefaultTimeValue, skuID, model.SpecialUnit); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if err == nil {
err = ErrEntityNotExist
}
@@ -1326,11 +1326,11 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
}
if sku.ExdSkuID == "" && sku.EclpID == "" {
if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil {
if maskValue&model.SyncFlagSpecMask != 0 {
@@ -1372,17 +1372,17 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price))
storeSku.LastOperator = ctx.GetUserName()
storeSku.UpdatedAt = time.Now()
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
}
}()
dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice", "LastOperator")
dao.Commit(db)
dao.Commit(db, txDB)
return retVal, err
}, list)
tasksch.HandleTask(task, nil, true).Run()
@@ -1392,20 +1392,20 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
func DeleteSku(ctx *jxcontext.Context, skuID int, userName string) (num int64, err error) {
db := dao.GetDB()
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = DeleteStoreSku(ctx, db, 0, skuID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if err = OnDeleteThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
sku := &model.Sku{}
@@ -1414,10 +1414,10 @@ func DeleteSku(ctx *jxcontext.Context, skuID int, userName string) (num int64, e
model.FieldStatus: model.SkuStatusDeleted,
// model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
}, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
if num == 1 {
_, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName)
}
@@ -1474,22 +1474,22 @@ func AddSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName str
}
dao.WrapAddIDCULEntity(placeBind, userName)
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, placeBind); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
dao.Commit(db)
dao.Commit(db, txDB)
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
return placeBind, err
@@ -1501,25 +1501,25 @@ func DeleteSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName
placeBind.NameID = nameID
placeBind.PlaceCode = placeCode
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if num, err = dao.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err != nil || num == 0 {
dao.Rollback(db)
dao.Rollback(db, txDB)
if err == nil {
err = ErrEntityNotExist
}
return 0, err
}
if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
return num, err
@@ -1550,10 +1550,10 @@ func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err e
}
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -1572,13 +1572,13 @@ func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err e
//_, err = CurVendorSync.SyncSkus(ctx, db, nameIDList, []int{}, false, false, userName)
if err == nil && len(nameIDList) > 0 {
dao.Commit(db)
dao.Commit(db, txDB)
skuIDs, err2 := dao.GetSkuIDByNames(db, nameIDList)
if err = err2; err == nil && len(skuIDs) > 0 {
_, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask)
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
}
return err
@@ -1718,15 +1718,15 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, imgWaterMark
skuName.ID = nameID
skuName.LastOperator = ctx.GetLoginID()
skuName.UpdatedAt = time.Now()
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
_, err = dao.UpdateEntity(db, skuName, "ImgWatermark", "ExVendorID", "ExPrefix", "ExPrefixBegin", "ExPrefixEnd", "LastOperator", "UpdatedAt")
dao.Commit(db)
dao.Commit(db, txDB)
}
}
}
@@ -2689,25 +2689,25 @@ func AddVendorCategoryMap(ctx *jxcontext.Context, vendorCategoryMap *model.Vendo
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorCategoryMap.VendorID, vendorCategoryMap.VendorOrgCode, model.VendorOrgTypePlatform)
vendorCategoryMap.VendorCategoryName = strings.Trim(vendorCategoryMap.VendorCategoryName, " ")
dao.WrapAddIDCULDEntity(vendorCategoryMap, ctx.GetUserName())
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, vendorCategoryMap); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
//如果传了京西绑定要去thingmap里改同步标志
if vendorCategoryMap.CategoryID != 0 {
if err = OnCreateThing(ctx, db, vendorOrgCodes, int64(vendorCategoryMap.CategoryID), model.ThingTypeCategory, model.SyncFlagNewMask, true); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
result = vendorCategoryMap
if vendorCategoryMap.CategoryID != 0 {
SyncCategories(ctx, nil, []int{vendorCategoryMap.VendorID}, []string{vendorCategoryMap.VendorOrgCode}, []int{vendorCategoryMap.CategoryID}, true)
@@ -2800,22 +2800,22 @@ func UpdateVendorCategoryMap(ctx *jxcontext.Context, ID int, vendorCategoryMap *
}
}
vendorOrgCodes, err := dao.GetVendorOrgCode(db, vendorCategoryMap2.VendorID, vendorCategoryMap2.VendorOrgCode, model.VendorOrgTypePlatform)
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if num, err = dao.UpdateEntityLogically(db, vendorCategoryMap2, valid, ctx.GetUserName(), nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if err = OnUpdateThing(ctx, db, vendorOrgCodes, int64(vendorCategoryID), model.ThingTypeCategory); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
SyncCategories(ctx, nil, []int{vendorCategoryMap.VendorID}, []string{vendorCategoryMap.VendorOrgCode}, []int{vendorCategoryID}, true)
return num, err
}
@@ -2834,26 +2834,26 @@ func ReorderVendorCategories(ctx *jxcontext.Context, parentID, vendorID int, ven
for _, cat := range vendorCatsMap {
catsMap[cat.CategoryID] = cat
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
for k, v := range categoryIDs {
if catsMap[v] == nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return fmt.Errorf("分类:%d不在%d分类下", v, parentID)
}
catsMap[v].VendorCategorySeq = k
catsMap[v].LastOperator = ctx.GetUserName()
if _, err = dao.UpdateEntity(db, catsMap[v]); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
err = SyncReorderCategories2(ctx, parentID, vendorID, vendorOrgCode)
return err
}
@@ -2871,10 +2871,10 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
if vendorCatMap, _ := dao.GetVendorCategoryMap(db, -1, 0, vendorID, vendorOrgCode, 0); len(vendorCatMap) > 0 {
return fmt.Errorf("该账号下已有分类,请在这里修改!")
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -2885,7 +2885,7 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
vendorID, vendorOrgCode,
}
if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
sql2 := `
@@ -2903,10 +2903,10 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
storeID,
}
if _, err = dao.ExecuteSQL(db, sql2, sqlParams2); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
dao.Commit(db)
dao.Commit(db, txDB)
catList, _ := dao.GetSkuCategoryWithVendor(db, []int{vendorID}, []string{vendorOrgCode}, -1, nil, false)
for _, v := range storeCats {
if len(catList) > 0 {