feat: add product price range filter
This commit is contained in:
@@ -55,6 +55,24 @@ func (s *sSysProduct) List(ctx context.Context, in *sysin.ProductListInp) (list
|
||||
if in.CategoryId > 0 {
|
||||
mod = mod.Where(col("p", pc.CategoryId), in.CategoryId)
|
||||
}
|
||||
var minAmount, maxAmount int64
|
||||
if in.PriceMin != "" {
|
||||
minAmount, err = parseCents(in.PriceMin)
|
||||
if err != nil {
|
||||
return nil, 0, gerror.New("最低价格格式不正确")
|
||||
}
|
||||
mod = mod.WhereGTE(col("p", pc.PriceAmount), minAmount)
|
||||
}
|
||||
if in.PriceMax != "" {
|
||||
maxAmount, err = parseCents(in.PriceMax)
|
||||
if err != nil {
|
||||
return nil, 0, gerror.New("最高价格格式不正确")
|
||||
}
|
||||
mod = mod.WhereLTE(col("p", pc.PriceAmount), maxAmount)
|
||||
}
|
||||
if in.PriceMin != "" && in.PriceMax != "" && minAmount > maxAmount {
|
||||
return nil, 0, gerror.New("最低价格不能高于最高价格")
|
||||
}
|
||||
if in.PublishStatus > 0 {
|
||||
mod = mod.Where(col("p", pc.PublishStatus), in.PublishStatus)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user