shen лет назад: 4
Родитель
Сommit
692dc90653
1 измененных файлов с 18 добавлено и 10 удалено
  1. 18 10
      go/gopath/src/fohow.com/apps/models/product_model/product.go

+ 18 - 10
go/gopath/src/fohow.com/apps/models/product_model/product.go

@@ -129,8 +129,7 @@ func GetLatest(page, perPage, recommend, priceSort, saleSort int64, ptype string
 			return ret
 		}
 	}
-	priceSql := "1"
-	saleSql := "1"
+	var priceSql, saleSql string
 	if priceSort == int64(1) {
 		//降序
 		priceSql = "-price"
@@ -149,10 +148,15 @@ func GetLatest(page, perPage, recommend, priceSort, saleSort int64, ptype string
 		priceSql = "-recommend"
 	}
 	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 {
 		beego.BeeLogger.Debug("GetLatest err=%s", err)
 	}
@@ -230,16 +234,20 @@ func GetProductsByCatId(cId, page, perPage, priceSort, saleSort int64, words str
 
 	o := orm.NewOrm()
 	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 {
 		qs = qs.Filter("category_id", cId)
 	}
 	if len(words) > 0 {
 		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 {
 		beego.BeeLogger.Debug("GetProductsByCatId err=%s", err)
 	}