门店禁止自我关联

This commit is contained in:
gazebo
2020-02-05 12:03:13 +08:00
parent a600391ca1
commit 5a0a56e9b1

View File

@@ -783,10 +783,8 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
if err != nil { if err != nil {
return 0, err return 0, err
} }
if linkStoreID != 0 { if err = checkStoreHaveLinkedStore(storeID, linkStoreID); err != nil {
if err = checkStoreHaveLinkedStore(storeID); err != nil { return 0, err
return 0, err
}
} }
valid["linkStoreID"] = linkStoreID valid["linkStoreID"] = linkStoreID
// globals.SugarLogger.Debug(linkStoreID) // globals.SugarLogger.Debug(linkStoreID)
@@ -1012,15 +1010,21 @@ func EnableHaveRestStores(ctx *jxcontext.Context, isAsync, isContinueWhenError b
return hint, err return hint, err
} }
func checkStoreHaveLinkedStore(storeID int) (err error) { func checkStoreHaveLinkedStore(storeID, linkStoreID int) (err error) {
storeList, err := dao.GetStoreLinkStores(dao.GetDB(), storeID) if linkStoreID != 0 {
if err == nil { if storeID == linkStoreID {
if len(storeList) > 0 { err = fmt.Errorf("不能自我关联")
var storeInfo []string } else {
for _, v := range storeList { storeList, err2 := dao.GetStoreLinkStores(dao.GetDB(), storeID)
storeInfo = append(storeInfo, utils.Int2Str(v.ID)) if err = err2; err == nil {
if len(storeList) > 0 {
var storeInfo []string
for _, v := range storeList {
storeInfo = append(storeInfo, utils.Int2Str(v.ID))
}
err = fmt.Errorf("门店%d已经被其它门店(%s)关联,不能再关联至其它门店", storeID, strings.Join(storeInfo, ","))
}
} }
err = fmt.Errorf("门店%d已经被其它门店(%s)关联,不能再关联至其它门店", storeID, strings.Join(storeInfo, ","))
} }
} }
return err return err
@@ -1045,10 +1049,8 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i
if err != nil { if err != nil {
return 0, err return 0, err
} }
if realLinkStoreID != 0 { if err = checkStoreHaveLinkedStore(storeExt.ID, realLinkStoreID); err != nil {
if err = checkStoreHaveLinkedStore(storeExt.ID); err != nil { return 0, err
return 0, err
}
} }
storeExt.LinkStoreID = realLinkStoreID storeExt.LinkStoreID = realLinkStoreID