瀏覽代碼

移动端查询分类时,过滤掉被禁用的分类

xyxie 11 月之前
父節點
當前提交
94d821660c
共有 3 個文件被更改,包括 58 次插入35 次删除
  1. 15 23
      controllers/classify.go
  2. 28 12
      models/classify.go
  3. 15 0
      utils/common.go

+ 15 - 23
controllers/classify.go

@@ -3,7 +3,6 @@ package controllers
 import (
 	"eta/eta_mobile/models"
 	"eta/eta_mobile/utils"
-	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // 分类
@@ -26,28 +25,22 @@ func (this *ClassifyController) ListClassify() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	pageSize, _ := this.GetInt("PageSize")
-	currentIndex, _ := this.GetInt("CurrentIndex")
+
 	keyWord := this.GetString("KeyWord")
 	companyType := this.GetString("CompanyType")
 	hideDayWeek, _ := this.GetInt("HideDayWeek")
 
-	var startSize int
-	if pageSize <= 0 {
-		pageSize = utils.PageSize20
+	reqEnabled, _ := this.GetInt("Enabled", -1)
+	// 商家不隐藏晨周报
+	if utils.BusinessCode != utils.BusinessCodeRelease {
+		hideDayWeek = 0
 	}
-	if currentIndex <= 0 {
-		currentIndex = 1
+	enabled := -1
+	if reqEnabled == 1 {
+		enabled = reqEnabled
 	}
 
-	startSize = utils.StartIndex(currentIndex, pageSize)
-	list, err := models.GetClassifyList(startSize, pageSize, keyWord, companyType, hideDayWeek)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
-	}
-	total, err := models.GetClassifyListCount(keyWord, companyType, hideDayWeek)
+	list, err := models.GetClassifyList(keyWord, companyType, hideDayWeek, enabled)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -61,8 +54,7 @@ func (this *ClassifyController) ListClassify() {
 	parentIdLen := len(parentIds)
 	if parentIdLen == 0 {
 		resp := &models.ClassifyListResp{
-			List:   list,
-			Paging: paging.GetPaging(currentIndex, pageSize, 0),
+			List: list,
 		}
 		br.Data = resp
 		br.Ret = 200
@@ -91,7 +83,7 @@ func (this *ClassifyController) ListClassify() {
 	}
 
 	// 获取子分类
-	children, e := models.GetClassifyChildByParentIds(parentIds, keyWord)
+	children, e := models.GetClassifyChildByParentIds(parentIds, keyWord, enabled)
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取子分类失败"
@@ -124,13 +116,15 @@ func (this *ClassifyController) ListClassify() {
 	// 二级分类
 	childrenMap := make(map[int][]*models.ClassifyItem, 0)
 	for i := range children {
+
 		if childrenMap[children[i].ParentId] == nil {
 			childrenMap[children[i].ParentId] = make([]*models.ClassifyItem, 0)
 		}
-		childrenMap[children[i].ParentId] = append(childrenMap[children[i].ParentId], &models.ClassifyItem{
+		tmp := &models.ClassifyItem{
 			Classify:       *children[i],
 			ClassifyMenuId: relateMap[children[i].Id],
-		})
+		}
+		childrenMap[children[i].ParentId] = append(childrenMap[children[i].ParentId], tmp)
 	}
 
 	// 一级分类
@@ -139,10 +133,8 @@ func (this *ClassifyController) ListClassify() {
 		list[i].Child = childrenMap[list[i].Id]
 	}
 
-	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp := new(models.ClassifyListResp)
 	resp.List = list
-	resp.Paging = page
 	br.Data = resp
 	br.Ret = 200
 	br.Success = true

+ 28 - 12
models/classify.go

@@ -207,7 +207,7 @@ type ClassifyPermissionListResp struct {
 }
 
 // 获取分类列表
-func GetClassifyList(startSize, pageSize int, keyWord, companyType string, hideDayWeek int) (items []*ClassifyList, err error) {
+func GetClassifyList(keyWord, companyType string, hideDayWeek, enabled int) (items []*ClassifyList, err error) {
 	sql := ``
 	companyTypeSqlStr := ``
 	if companyType == "ficc" {
@@ -215,26 +215,33 @@ func GetClassifyList(startSize, pageSize int, keyWord, companyType string, hideD
 	} else if companyType == "权益" {
 		companyTypeSqlStr = " AND (id = 40 or parent_id = 40)  "
 	}
+	if enabled == 1 {
+		companyTypeSqlStr += ` AND enabled = 1 `
+	}
+	pars := make([]interface{}, 0)
 	if keyWord != "" {
 		sql = `SELECT * FROM (
                    SELECT * FROM classify
-                   WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE '%` + keyWord + `%'
+                   WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE ?
                    UNION
                    SELECT * FROM classify
-                   WHERE id IN(SELECT parent_id FROM classify
-                   WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE '%` + keyWord + `%')
+                   WHERE id IN( SELECT parent_id FROM classify
+                   WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE ? )
                    )AS t
-                   ORDER BY sort ASC,create_time ASC
-                   LIMIT ?,? `
+                   ORDER BY sort ASC,create_time ASC`
+		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
 	} else {
 		sql = `SELECT * FROM classify WHERE parent_id=0 ` + companyTypeSqlStr
 		if hideDayWeek == 1 {
 			sql += ` AND classify_name <> '晨报' AND classify_name <> '周报' `
 		}
-		sql += ` ORDER BY sort ASC, create_time ASC LIMIT ?,? `
+
+		sql += ` ORDER BY sort ASC, create_time ASC`
 	}
+	pars = append(pars)
+
 	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, pars...).QueryRows(&items)
 	return
 }
 
@@ -302,19 +309,28 @@ func GetClassifyChild(parentId int, keyWord string) (items []*Classify, err erro
 	return
 }
 
-func GetClassifyChildByParentIds(parentId []int, keyWord string) (items []*Classify, err error) {
+func GetClassifyChildByParentIds(parentId []int, keyWord string, enabled int) (items []*Classify, err error) {
 	parentIdLen := len(parentId)
 	if parentIdLen == 0 {
 		return
 	}
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ``
+	pars := make([]interface{}, 0)
+	pars = append(pars, parentId)
 	if keyWord != "" {
-		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) AND classify_name LIKE '%` + keyWord + `%' ORDER BY create_time ASC `
+		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) AND classify_name LIKE ? `
+		pars = append(pars, utils.GetLikeKeyword(keyWord))
 	} else {
-		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) ORDER BY create_time ASC `
+		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) `
 	}
-	_, err = o.Raw(sql, parentId).QueryRows(&items)
+
+	if enabled == 1 {
+		sql += ` AND enabled=1 `
+	}
+	sql += ` ORDER BY create_time ASC `
+	_, err = o.Raw(sql, pars...).QueryRows(&items)
+
 	return
 }
 

+ 15 - 0
utils/common.go

@@ -2050,3 +2050,18 @@ func GetColorMap() map[int]string {
 
 	return colorMap
 }
+
+func GetLikeKeywordPars(pars []interface{}, keyword string, num int) (newPars []interface{}) {
+	newPars = pars
+	if newPars == nil {
+		newPars = make([]interface{}, 0)
+	}
+	for i := 1; i <= num; i++ {
+		newPars = append(newPars, `%`+keyword+`%`)
+	}
+	return
+}
+
+func GetLikeKeyword(keyword string) string {
+	return `%` + keyword + `%`
+}