- 检查活动价格合法性

This commit is contained in:
gazebo
2019-07-26 15:51:28 +08:00
parent 92fad81a29
commit 216175c95b

View File

@@ -146,7 +146,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
actSkuMap.ActualActPrice = 1
}
}
if actSkuMap.ActualActPrice >= actSkuMap.VendorPrice {
if err2 := checkDiscountValidation(act.Type, int(actSkuMap.ActualActPrice*100/actSkuMap.VendorPrice)); err2 != nil {
wrongSkuList = append(wrongSkuList, v)
} else {
dao.WrapAddIDCULDEntity(actSkuMap, ctx.GetUserName())
@@ -265,6 +265,15 @@ 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 >= 100) {
err = fmt.Errorf("%s活动折扣必须大于:%d, 且必须有折扣", model.ActTypeName[actType], minDiscount4SkuDirectDown)
} else if actType == model.ActSkuSecKill && pricePercentage >= maxDiscount4SkuSecKill {
err = fmt.Errorf("%s活动折扣必须小于:%d", model.ActTypeName[actType], maxDiscount4SkuSecKill)
}
return err
}
func checkActValidation(act *model.Act, vendorIDs []int) (err error) {
var errList []error
if utils.IsTimeZero(act.BeginAt) || utils.IsTimeZero(act.EndAt) {
@@ -278,17 +287,10 @@ func checkActValidation(act *model.Act, vendorIDs []int) (err error) {
if act.Type == model.ActSkuDirectDown || act.Type == model.ActSkuSecKill {
if act.PricePercentage == 0 {
errList = append(errList, fmt.Errorf("活动必须指定价格折扣"))
}
if act.Type == model.ActSkuDirectDown && (act.PricePercentage <= minDiscount4SkuDirectDown || act.PricePercentage >= 100) {
errList = append(errList, fmt.Errorf("%s活动折扣必须大于:%d, 且必须有折扣", model.ActTypeName[act.Type], minDiscount4SkuDirectDown))
}
if act.Type == model.ActSkuSecKill {
if vendorIDMap[model.VendorIDMTWM] == 1 {
errList = append(errList, fmt.Errorf("平台%s暂不支持%s活动", model.VendorChineseNames[model.VendorIDMTWM], model.ActTypeName[act.Type]))
}
if act.PricePercentage >= maxDiscount4SkuSecKill {
errList = append(errList, fmt.Errorf("%s活动折扣必须小于:%d", model.ActTypeName[act.Type], maxDiscount4SkuSecKill))
}
} else if err = checkDiscountValidation(act.Type, act.PricePercentage); err != nil {
errList = append(errList, err)
} else if act.Type == model.ActSkuSecKill && vendorIDMap[model.VendorIDMTWM] == 1 {
errList = append(errList, err)
}
} else if act.Type == model.ActSkuFake {