|
@@ -129,8 +129,7 @@ func GetLatest(page, perPage, recommend, priceSort, saleSort int64, ptype string
|
|
|
return ret
|
|
return ret
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- priceSql := "1"
|
|
|
|
|
- saleSql := "1"
|
|
|
|
|
|
|
+ var priceSql, saleSql string
|
|
|
if priceSort == int64(1) {
|
|
if priceSort == int64(1) {
|
|
|
//降序
|
|
//降序
|
|
|
priceSql = "-price"
|
|
priceSql = "-price"
|
|
@@ -149,10 +148,15 @@ func GetLatest(page, perPage, recommend, priceSort, saleSort int64, ptype string
|
|
|
priceSql = "-recommend"
|
|
priceSql = "-recommend"
|
|
|
}
|
|
}
|
|
|
o := orm.NewOrm()
|
|
o := orm.NewOrm()
|
|
|
- _, err := o.QueryTable(new(Product)).Filter("status", 1).Filter("recommend__gt", recommend).Filter("show_flag", true).Filter("ptype", ptype).
|
|
|
|
|
- OrderBy(saleSql, priceSql).
|
|
|
|
|
- Limit(perPage, (page-1)*perPage).
|
|
|
|
|
- All(&products)
|
|
|
|
|
|
|
+ qs := o.QueryTable(new(Product)).Filter("status", 1).Filter("recommend__gt", recommend).Filter("show_flag", true).Filter("ptype", ptype)
|
|
|
|
|
+ if len(priceSql) <= 0 {
|
|
|
|
|
+ qs.OrderBy(saleSql)
|
|
|
|
|
+ } else if len(saleSql) <= 0 {
|
|
|
|
|
+ qs.OrderBy(priceSql)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ qs.OrderBy(saleSql, priceSql)
|
|
|
|
|
+ }
|
|
|
|
|
+ _, err := qs.Limit(perPage, (page-1)*perPage).All(&products)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
beego.BeeLogger.Debug("GetLatest err=%s", err)
|
|
beego.BeeLogger.Debug("GetLatest err=%s", err)
|
|
|
}
|
|
}
|
|
@@ -230,16 +234,20 @@ func GetProductsByCatId(cId, page, perPage, priceSort, saleSort int64, words str
|
|
|
|
|
|
|
|
o := orm.NewOrm()
|
|
o := orm.NewOrm()
|
|
|
qs := o.QueryTable(new(Product)).Filter("status", 1).Filter("show_flag", true).Filter("ptype", TYPE_DIRECT_SALE)
|
|
qs := o.QueryTable(new(Product)).Filter("status", 1).Filter("show_flag", true).Filter("ptype", TYPE_DIRECT_SALE)
|
|
|
|
|
+ if len(priceSql) <= 0 {
|
|
|
|
|
+ qs.OrderBy(saleSql)
|
|
|
|
|
+ } else if len(saleSql) <= 0 {
|
|
|
|
|
+ qs.OrderBy(priceSql)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ qs.OrderBy(saleSql, priceSql)
|
|
|
|
|
+ }
|
|
|
if cId != 0 {
|
|
if cId != 0 {
|
|
|
qs = qs.Filter("category_id", cId)
|
|
qs = qs.Filter("category_id", cId)
|
|
|
}
|
|
}
|
|
|
if len(words) > 0 {
|
|
if len(words) > 0 {
|
|
|
qs = qs.Filter("key_words__icontains", words)
|
|
qs = qs.Filter("key_words__icontains", words)
|
|
|
}
|
|
}
|
|
|
- _, err := qs.
|
|
|
|
|
- OrderBy(saleSql).OrderBy(priceSql).
|
|
|
|
|
- Limit(perPage, (page-1)*perPage).
|
|
|
|
|
- All(&products)
|
|
|
|
|
|
|
+ _, err := qs.Limit(perPage, (page-1)*perPage).All(&products)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
beego.BeeLogger.Debug("GetProductsByCatId err=%s", err)
|
|
beego.BeeLogger.Debug("GetProductsByCatId err=%s", err)
|
|
|
}
|
|
}
|