feat: add the query for space's name.

This commit is contained in:
lishuang
2023-08-13 01:45:19 +08:00
parent f5704f470a
commit c7219a7516
2 changed files with 12 additions and 7 deletions
+2 -1
View File
@@ -138,6 +138,7 @@ func (this *SpaceController) Page(writer http.ResponseWriter, request *http.Requ
pageSize := util.ExtractRequestOptionalInt(request, "pageSize", 20)
orderCreateTime := util.ExtractRequestOptionalString(request, "orderCreateTime", "")
spaceType := util.ExtractRequestOptionalString(request, "type", "")
name := util.ExtractRequestOptionalString(request, "name", "")
user := this.checkUser(request)
@@ -155,7 +156,7 @@ func (this *SpaceController) Page(writer http.ResponseWriter, request *http.Requ
}
pager = this.spaceDao.SelfPage(page, pageSize, user.Uuid, spaceType, sortArray)
} else if user.Role == USER_ROLE_ADMINISTRATOR {
pager = this.spaceDao.Page(page, pageSize, spaceType, sortArray)
pager = this.spaceDao.Page(page, pageSize, spaceType, name, sortArray)
}
return this.Success(pager)
+10 -6
View File
@@ -100,19 +100,23 @@ func (this *SpaceDao) SelfPage(page int, pageSize int, userUuid string, spaceTyp
}
func (this *SpaceDao) Page(page int, pageSize int, spaceType string, sortArray []builder.OrderPair) *Pager {
count, spaces := this.PlainPage(page, pageSize, spaceType, sortArray)
func (this *SpaceDao) Page(page int, pageSize int, spaceType string, name string, sortArray []builder.OrderPair) *Pager {
count, spaces := this.PlainPage(page, pageSize, spaceType, name, sortArray)
pager := NewPager(page, pageSize, count, spaces)
return pager
}
func (this *SpaceDao) PlainPage(page int, pageSize int, spaceType string, sortArray []builder.OrderPair) (int, []*Space) {
func (this *SpaceDao) PlainPage(page int, pageSize int, spaceType string, name string, sortArray []builder.OrderPair) (int, []*Space) {
var wp = &builder.WherePair{}
if spaceType != "" {
wp = &builder.WherePair{Query: "type = ?", Args: []interface{}{spaceType}}
wp = wp.And(&builder.WherePair{Query: "type = ?", Args: []interface{}{spaceType}})
}
if name != "" {
wp = wp.And(&builder.WherePair{Query: "name LIKE ?", Args: []interface{}{"%" + name + "%"}})
}
var conditionDB *gorm.DB
@@ -166,12 +170,12 @@ func (this *SpaceDao) PageHandle(fun func(space *Space)) {
Value: DIRECTION_ASC,
},
}
count, _ := this.PlainPage(0, pageSize, "", sortArray)
count, _ := this.PlainPage(0, pageSize, "", "", sortArray)
if count > 0 {
var totalPages = int(math.Ceil(float64(count) / float64(pageSize)))
var page int
for page = 0; page < totalPages; page++ {
_, spaces := this.PlainPage(0, pageSize, "", sortArray)
_, spaces := this.PlainPage(0, pageSize, "", "", sortArray)
for _, space := range spaces {
fun(space)
}