diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index eef24edb7..85c1d6e6f 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -160,7 +160,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac if actSkuMap.ActualActPrice <= 0 { actSkuMap.ActualActPrice = 1 } - if err2 = checkDiscountValidation(act.Type, int(actSkuMap.ActualActPrice*100/actSkuMap.VendorPrice)); err2 != nil { + if err2 = checkDiscountValidation(act.Type, float64(actSkuMap.ActualActPrice)*100/float64(actSkuMap.VendorPrice)); err2 != nil { v.ErrMsg = err2.Error() v.ActualActPrice = actSkuMap.ActualActPrice wrongSkuList = append(wrongSkuList, v) @@ -280,14 +280,16 @@ func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actSto return err } -func checkDiscountValidation(actType int, pricePercentage int) (err error) { - if actType == model.ActSkuDirectDown && (pricePercentage < minDiscount4SkuDirectDown || pricePercentage > 99) { - if pricePercentage < minDiscount4SkuDirectDown { +func checkDiscountValidation(actType int, pricePercentage float64) (err error) { + pricePercentageMin := int(math.Floor(pricePercentage)) + pricePercentageMax := int(math.Ceil(pricePercentage)) + if actType == model.ActSkuDirectDown && (pricePercentageMin < minDiscount4SkuDirectDown || pricePercentageMax > 99) { + if pricePercentageMin < minDiscount4SkuDirectDown { err = fmt.Errorf("%s活动折扣必须大于:%d", model.ActTypeName[actType], minDiscount4SkuDirectDown) - } else if pricePercentage > 99 { + } else if pricePercentageMax > 99 { err = fmt.Errorf("%s活动必须有折扣", model.ActTypeName[actType]) } - } else if actType == model.ActSkuSecKill && pricePercentage > maxDiscount4SkuSecKill { + } else if actType == model.ActSkuSecKill && pricePercentageMax > maxDiscount4SkuSecKill { err = fmt.Errorf("%s活动折扣必须小于:%d", model.ActTypeName[actType], maxDiscount4SkuSecKill) } return err @@ -308,7 +310,7 @@ func checkActValidation(act *model.Act, vendorIDs []int) (err error) { if act.Type == model.ActSkuDirectDown || act.Type == model.ActSkuSecKill { if act.PricePercentage == 0 { errList.AddErr(fmt.Errorf("必须指定缺省活动折扣")) - } else if err = checkDiscountValidation(act.Type, act.PricePercentage); err != nil { + } else if err = checkDiscountValidation(act.Type, float64(act.PricePercentage)); err != nil { errList.AddErr(err) } else if act.Type == model.ActSkuSecKill && vendorIDMap[model.VendorIDMTWM] == 1 { errList.AddErr(fmt.Errorf("%s平台不支持%s活动", model.VendorChineseNames[model.VendorIDMTWM], model.ActTypeName[model.ActSkuSecKill]))