diff --git a/internal/logic/bundleLogic.go b/internal/logic/bundleLogic.go index e5f81e1..2aba609 100644 --- a/internal/logic/bundleLogic.go +++ b/internal/logic/bundleLogic.go @@ -336,9 +336,21 @@ func HandleShelf(req *bundle.HandShelfRequest) (res *bundle.CommonResponse, err if req.ShelfStatus != 1 && req.ShelfStatus != 2 { return res, errors.New("状态值无效") } + detail, err := dao.GetBundleDetailByUuid(req.Uuid) + if err != nil { + return res, errors.New("获取套餐信息失败") + } + if detail.ShelfStatus == req.ShelfStatus { + if detail.ShelfStatus == 1 { + return res, errors.New("套餐已上架,请勿重复操作") + } + if detail.ShelfStatus == 2 { + return res, errors.New("套餐已下架,请勿重复操作") + } + } bundleDetailLangs, err := dao.GetBundleLangsByUuid(req.Uuid) if err != nil { - return res, errors.New("查询套餐失败") + return res, errors.New("获取套餐信息失败") } var langToPriceType = make(map[string]int64) for _, bundleLang := range bundleDetailLangs {