aa
This commit is contained in:
@@ -177,7 +177,7 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if cat.IsExdSpec == model.NO {
|
if cat.IsExdSpec == model.NO {
|
||||||
if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory, model.SyncFlagNewMask); err != nil {
|
if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory, model.SyncFlagNewMask, false); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -884,7 +884,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err = OnCreateThing(ctx, db, nil, int64(skuNameExt.SkuName.ID), model.ThingTypeSkuName, model.SyncFlagNewMask); err != nil {
|
if err = OnCreateThing(ctx, db, nil, int64(skuNameExt.SkuName.ID), model.ThingTypeSkuName, model.SyncFlagNewMask, false); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -903,7 +903,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if sku.EclpID == "" {
|
if sku.EclpID == "" {
|
||||||
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0); err != nil {
|
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1249,7 +1249,7 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0); err != nil {
|
if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku, 0, false); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -2761,6 +2761,7 @@ func AddVendorCategoryMap(ctx *jxcontext.Context, vendorCategoryMap *model.Vendo
|
|||||||
return nil, fmt.Errorf("已存在绑定的京西分类,分类名:[%v]", storeCatMaps[0].VendorCategoryName)
|
return nil, fmt.Errorf("已存在绑定的京西分类,分类名:[%v]", storeCatMaps[0].VendorCategoryName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorCategoryMap.VendorID, vendorCategoryMap.VendorOrgCode, model.VendorOrgTypePlatform)
|
||||||
vendorCategoryMap.VendorCategoryName = strings.Trim(vendorCategoryMap.VendorCategoryName, " ")
|
vendorCategoryMap.VendorCategoryName = strings.Trim(vendorCategoryMap.VendorCategoryName, " ")
|
||||||
dao.WrapAddIDCULDEntity(vendorCategoryMap, ctx.GetUserName())
|
dao.WrapAddIDCULDEntity(vendorCategoryMap, ctx.GetUserName())
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
@@ -2774,6 +2775,13 @@ func AddVendorCategoryMap(ctx *jxcontext.Context, vendorCategoryMap *model.Vendo
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
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)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
result = vendorCategoryMap
|
result = vendorCategoryMap
|
||||||
if vendorCategoryMap.CategoryID != 0 {
|
if vendorCategoryMap.CategoryID != 0 {
|
||||||
@@ -2910,6 +2918,7 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
|
|||||||
if len(storeCats) == 0 {
|
if len(storeCats) == 0 {
|
||||||
return fmt.Errorf("未查询到该门店有门店分类,请重新选择! [%v]", storeID)
|
return fmt.Errorf("未查询到该门店有门店分类,请重新选择! [%v]", storeID)
|
||||||
}
|
}
|
||||||
|
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorID, vendorOrgCode, model.VendorOrgTypePlatform)
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
@@ -2947,12 +2956,7 @@ func LoadStoreVendorCategories(ctx *jxcontext.Context, vendorOrgCode string, ven
|
|||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
for _, v := range storeCats {
|
for _, v := range storeCats {
|
||||||
OnUpdateThing(ctx, db, []*MultiStoreVendorInfo{
|
OnUpdateThing(ctx, db, vendorOrgCodes, int64(v.CategoryID), model.ThingTypeCategory)
|
||||||
&MultiStoreVendorInfo{
|
|
||||||
VendorID: vendorID,
|
|
||||||
OrgCode: vendorOrgCode,
|
|
||||||
},
|
|
||||||
}, int64(v.CategoryID), model.ThingTypeCategory)
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1245,6 +1245,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
list1, _ := dao.GetStoresMapList(db, []int{model.VendorIDJD}, []int{storeID}, nil, model.StoreStatusAll, 1, "", "", "")
|
list1, _ := dao.GetStoresMapList(db, []int{model.VendorIDJD}, []int{storeID}, nil, model.StoreStatusAll, 1, "", "", "")
|
||||||
//表示这个门店绑定了京东
|
//表示这个门店绑定了京东
|
||||||
if len(list1) > 0 {
|
if len(list1) > 0 {
|
||||||
|
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, model.VendorIDJD, list1[0].VendorOrgCode, model.VendorOrgTypePlatform)
|
||||||
//thingmap里肯定存在,再判断有没有同步上去
|
//thingmap里肯定存在,再判断有没有同步上去
|
||||||
thingMaps, _ := dao.GetThingMapList(db, model.ThingTypeSku, []int{model.VendorIDJD}, []int{v.RealSkuID}, []string{list1[0].VendorOrgCode})
|
thingMaps, _ := dao.GetThingMapList(db, model.ThingTypeSku, []int{model.VendorIDJD}, []int{v.RealSkuID}, []string{list1[0].VendorOrgCode})
|
||||||
if len(thingMaps) > 0 {
|
if len(thingMaps) > 0 {
|
||||||
@@ -1254,24 +1255,14 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
if !model.IsSyncStatusNew(thingMaps[0].SyncStatus) {
|
if !model.IsSyncStatusNew(thingMaps[0].SyncStatus) {
|
||||||
isSyncSkus = true
|
isSyncSkus = true
|
||||||
appCodeList = append(appCodeList, list1[0].VendorOrgCode)
|
appCodeList = append(appCodeList, list1[0].VendorOrgCode)
|
||||||
OnCreateThing(ctx, db, []*MultiStoreVendorInfo{
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.RealSkuID), model.ThingTypeSku, model.SyncFlagNewMask, false)
|
||||||
&MultiStoreVendorInfo{
|
|
||||||
VendorID: model.VendorIDJD,
|
|
||||||
OrgCode: list1[0].VendorOrgCode,
|
|
||||||
},
|
|
||||||
}, int64(v.RealSkuID), model.ThingTypeSku, model.SyncFlagNewMask)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//万一不存在
|
//万一不存在
|
||||||
isSyncSkus = true
|
isSyncSkus = true
|
||||||
appCodeList = append(appCodeList, list1[0].VendorOrgCode)
|
appCodeList = append(appCodeList, list1[0].VendorOrgCode)
|
||||||
OnCreateThing(ctx, db, []*MultiStoreVendorInfo{
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.RealSkuID), model.ThingTypeSku, model.SyncFlagNewMask, false)
|
||||||
&MultiStoreVendorInfo{
|
|
||||||
VendorID: model.VendorIDJD,
|
|
||||||
OrgCode: list1[0].VendorOrgCode,
|
|
||||||
},
|
|
||||||
}, int64(v.RealSkuID), model.ThingTypeSku, model.SyncFlagNewMask)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -264,12 +264,12 @@ func getThingMap(db *dao.DaoDB, thingMap *model.ThingMap) (err error) {
|
|||||||
return dao.GetEntity(db, thingMap, "ThingID", "ThingType", "VendorID", "VendorOrgCode", model.FieldDeletedAt)
|
return dao.GetEntity(db, thingMap, "ThingID", "ThingType", "VendorID", "VendorOrgCode", model.FieldDeletedAt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func OnCreateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*MultiStoreVendorInfo, thingID int64, thingType, syncFlag int8) (err error) {
|
func OnCreateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*model.VendorOrgCode, thingID int64, thingType, syncFlag int8, vendorFlag bool) (err error) {
|
||||||
if thingType == model.ThingTypeSkuName {
|
if thingType == model.ThingTypeSkuName {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if len(vendorInfoList) == 0 {
|
if len(vendorInfoList) == 0 {
|
||||||
vendorInfoList = getMultiStoreVendorInfoList()
|
vendorInfoList, err = dao.GetVendorOrgCode(db, model.VendorIDJD, "", model.VendorOrgTypePlatform)
|
||||||
}
|
}
|
||||||
errList := errlist.New()
|
errList := errlist.New()
|
||||||
for _, v := range vendorInfoList {
|
for _, v := range vendorInfoList {
|
||||||
@@ -277,9 +277,14 @@ func OnCreateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*Mult
|
|||||||
ThingID: thingID,
|
ThingID: thingID,
|
||||||
ThingType: thingType,
|
ThingType: thingType,
|
||||||
VendorID: v.VendorID,
|
VendorID: v.VendorID,
|
||||||
VendorOrgCode: v.OrgCode,
|
VendorOrgCode: v.VendorOrgCode,
|
||||||
SyncStatus: syncFlag,
|
|
||||||
}
|
}
|
||||||
|
if thingType == model.ThingTypeCategory && !vendorFlag {
|
||||||
|
if v.IsJxCat == model.YES {
|
||||||
|
syncFlag = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
thingMap.SyncStatus = syncFlag
|
||||||
dao.WrapAddIDCULDEntity(thingMap, ctx.GetUserName())
|
dao.WrapAddIDCULDEntity(thingMap, ctx.GetUserName())
|
||||||
if err2 := dao.CreateEntity(db, thingMap); err2 != nil {
|
if err2 := dao.CreateEntity(db, thingMap); err2 != nil {
|
||||||
if dao.IsDuplicateError(err2) {
|
if dao.IsDuplicateError(err2) {
|
||||||
@@ -294,12 +299,12 @@ func OnCreateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*Mult
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func onUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*MultiStoreVendorInfo, thingID int64, thingType int8, syncStatus int8) (err error) {
|
func onUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*model.VendorOrgCode, thingID int64, thingType int8, syncStatus int8) (err error) {
|
||||||
if thingType == model.ThingTypeSkuName {
|
if thingType == model.ThingTypeSkuName {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if len(vendorInfoList) == 0 {
|
if len(vendorInfoList) == 0 {
|
||||||
vendorInfoList = getMultiStoreVendorInfoList()
|
vendorInfoList, err = dao.GetVendorOrgCode(db, model.VendorIDJD, "", model.VendorOrgTypePlatform)
|
||||||
}
|
}
|
||||||
errList := errlist.New()
|
errList := errlist.New()
|
||||||
for _, v := range vendorInfoList {
|
for _, v := range vendorInfoList {
|
||||||
@@ -307,7 +312,7 @@ func onUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*Mult
|
|||||||
ThingID: thingID,
|
ThingID: thingID,
|
||||||
ThingType: thingType,
|
ThingType: thingType,
|
||||||
VendorID: v.VendorID,
|
VendorID: v.VendorID,
|
||||||
VendorOrgCode: v.OrgCode,
|
VendorOrgCode: v.VendorOrgCode,
|
||||||
}
|
}
|
||||||
thingMap.DeletedAt = utils.DefaultTimeValue
|
thingMap.DeletedAt = utils.DefaultTimeValue
|
||||||
if err2 := getThingMap(db, thingMap); err2 == nil {
|
if err2 := getThingMap(db, thingMap); err2 == nil {
|
||||||
@@ -325,7 +330,7 @@ func onUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*Mult
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func OnUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*MultiStoreVendorInfo, thingID int64, thingType int8) (err error) {
|
func OnUpdateThing(ctx *jxcontext.Context, db *dao.DaoDB, vendorInfoList []*model.VendorOrgCode, thingID int64, thingType int8) (err error) {
|
||||||
return onUpdateThing(ctx, db, vendorInfoList, thingID, thingType, model.SyncFlagModifiedMask)
|
return onUpdateThing(ctx, db, vendorInfoList, thingID, thingType, model.SyncFlagModifiedMask)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -451,12 +456,7 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
|
|||||||
return "", fmt.Errorf("平台:%s不支持此操作", model.VendorChineseNames[vendorID])
|
return "", fmt.Errorf("平台:%s不支持此操作", model.VendorChineseNames[vendorID])
|
||||||
}
|
}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
vendorInfo := []*MultiStoreVendorInfo{
|
vendorOrgCodes, _ := dao.GetVendorOrgCode(db, vendorID, vendorOrgCode, model.VendorOrgTypePlatform)
|
||||||
&MultiStoreVendorInfo{
|
|
||||||
VendorID: vendorID,
|
|
||||||
OrgCode: vendorOrgCode,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
var sku2Delete []*partner.StoreSkuInfo
|
var sku2Delete []*partner.StoreSkuInfo
|
||||||
var cat2Delete []*partner.BareCategoryInfo
|
var cat2Delete []*partner.BareCategoryInfo
|
||||||
task := tasksch.NewParallelTask(fmt.Sprintf("平台:%s,账号:%s上的商品与商家分类", model.VendorChineseNames[vendorID], vendorOrgCode),
|
task := tasksch.NewParallelTask(fmt.Sprintf("平台:%s,账号:%s上的商品与商家分类", model.VendorChineseNames[vendorID], vendorOrgCode),
|
||||||
@@ -518,17 +518,17 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
|
|||||||
if !model.IsSyncStatusDelete(v.SkuSyncStatus) {
|
if !model.IsSyncStatusDelete(v.SkuSyncStatus) {
|
||||||
if remoteSkuMap[v.VendorSkuID] == 0 {
|
if remoteSkuMap[v.VendorSkuID] == 0 {
|
||||||
if !model.IsSyncStatusNew(v.SkuSyncStatus) {
|
if !model.IsSyncStatusNew(v.SkuSyncStatus) {
|
||||||
OnCreateThing(ctx, db, vendorInfo, int64(v.SkuID), model.ThingTypeSku, getSyncFlag(v.SkuID))
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.SkuID), model.ThingTypeSku, getSyncFlag(v.SkuID), false)
|
||||||
}
|
}
|
||||||
} else if isForceUpdate {
|
} else if isForceUpdate {
|
||||||
OnUpdateThing(ctx, db, vendorInfo, int64(v.SkuID), model.ThingTypeSku)
|
OnUpdateThing(ctx, db, vendorOrgCodes, int64(v.SkuID), model.ThingTypeSku)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//表示根据某门店的门店商品同步京东商品库中,这个门店关注并可售了这个商品,插到thingmap里同步标志是待创建(SyncFlagNewMask)才会创建
|
//表示根据某门店的门店商品同步京东商品库中,这个门店关注并可售了这个商品,插到thingmap里同步标志是待创建(SyncFlagNewMask)才会创建
|
||||||
//若该门店没关注可售,那插到thingmap里的话就该同步标志为0,就不会创建
|
//若该门店没关注可售,那插到thingmap里的话就该同步标志为0,就不会创建
|
||||||
//getSyncFlag
|
//getSyncFlag
|
||||||
OnCreateThing(ctx, db, vendorInfo, int64(v.SkuID), model.ThingTypeSku, getSyncFlag(v.SkuID))
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.SkuID), model.ThingTypeSku, getSyncFlag(v.SkuID), false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -567,14 +567,14 @@ func amendAndPruneVendorStuff(ctx *jxcontext.Context, parentTask tasksch.ITask,
|
|||||||
if !model.IsSyncStatusDelete(v.CatSyncStatus) {
|
if !model.IsSyncStatusDelete(v.CatSyncStatus) {
|
||||||
if remoteCatMap[v.VendorCatID] == 0 {
|
if remoteCatMap[v.VendorCatID] == 0 {
|
||||||
if !model.IsSyncStatusNew(v.CatSyncStatus) {
|
if !model.IsSyncStatusNew(v.CatSyncStatus) {
|
||||||
OnCreateThing(ctx, db, vendorInfo, int64(v.ID), model.ThingTypeCategory, model.SyncFlagNewMask)
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.ID), model.ThingTypeCategory, model.SyncFlagNewMask, false)
|
||||||
}
|
}
|
||||||
} else if isForceUpdate && !model.IsSyncStatusUpdate(v.CatSyncStatus) {
|
} else if isForceUpdate && !model.IsSyncStatusUpdate(v.CatSyncStatus) {
|
||||||
OnUpdateThing(ctx, db, vendorInfo, int64(v.ID), model.ThingTypeCategory)
|
OnUpdateThing(ctx, db, vendorOrgCodes, int64(v.ID), model.ThingTypeCategory)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
OnCreateThing(ctx, db, vendorInfo, int64(v.ID), model.ThingTypeCategory, model.SyncFlagNewMask)
|
OnCreateThing(ctx, db, vendorOrgCodes, int64(v.ID), model.ThingTypeCategory, model.SyncFlagNewMask, false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -790,6 +790,7 @@ func GetStoreCategoryMap(db *DaoDB, parentID, level, storeID, categoryID int) (s
|
|||||||
sql += " AND a.category_id = ?"
|
sql += " AND a.category_id = ?"
|
||||||
sqlParams = append(sqlParams, categoryID)
|
sqlParams = append(sqlParams, categoryID)
|
||||||
}
|
}
|
||||||
|
sql += " AND ORDER BY a.level, a.store_category_seq"
|
||||||
err = GetRows(db, &storeCatMaps, sql, sqlParams)
|
err = GetRows(db, &storeCatMaps, sql, sqlParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user