|
|
|
|
@ -56,27 +56,13 @@ func CreateRoom(ctx *gin.Context) {
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func RoomList(ctx *gin.Context) {
|
|
|
|
|
func RoomHotList(ctx *gin.Context) {
|
|
|
|
|
page, pageSize, err := GetPageAndPageSize(ctx)
|
|
|
|
|
if err != nil {
|
|
|
|
|
ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorResp(err))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
resp := make([]*model.RoomListResp, 0, pageSize)
|
|
|
|
|
|
|
|
|
|
var desc = ctx.DefaultQuery("sort", "desc") == "desc"
|
|
|
|
|
|
|
|
|
|
// search mode, all, name, creator
|
|
|
|
|
var search = ctx.DefaultQuery("search", "all")
|
|
|
|
|
|
|
|
|
|
scopes := []func(db *gorm.DB) *gorm.DB{
|
|
|
|
|
db.Paginate(page, pageSize),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total := 0
|
|
|
|
|
|
|
|
|
|
switch ctx.DefaultQuery("order", "peopleNum") {
|
|
|
|
|
case "peopleNum":
|
|
|
|
|
r := op.GetAllRoomsInCacheWithoutHidden()
|
|
|
|
|
rs := vec.New[*model.RoomListResp](vec.WithCmpLess[*model.RoomListResp](func(v1, v2 *model.RoomListResp) bool {
|
|
|
|
|
return v1.PeopleNum < v2.PeopleNum
|
|
|
|
|
@ -93,12 +79,43 @@ func RoomList(ctx *gin.Context) {
|
|
|
|
|
CreatedAt: v.Room.CreatedAt.UnixMilli(),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.SortStable()
|
|
|
|
|
if desc {
|
|
|
|
|
if ctx.DefaultQuery("sort", "desc") == "desc" {
|
|
|
|
|
rs.Reverse()
|
|
|
|
|
}
|
|
|
|
|
total = rs.Len()
|
|
|
|
|
resp = utils.GetPageItems(rs.Slice(), page, pageSize)
|
|
|
|
|
|
|
|
|
|
ctx.JSON(http.StatusOK, model.NewApiDataResp(gin.H{
|
|
|
|
|
"total": rs.Len(),
|
|
|
|
|
"list": utils.GetPageItems(rs.Slice(), page, pageSize),
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func RoomList(ctx *gin.Context) {
|
|
|
|
|
order := ctx.Query("order")
|
|
|
|
|
if order == "" {
|
|
|
|
|
ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("order is required"))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
page, pageSize, err := GetPageAndPageSize(ctx)
|
|
|
|
|
if err != nil {
|
|
|
|
|
ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorResp(err))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
resp := make([]*model.RoomListResp, 0, pageSize)
|
|
|
|
|
|
|
|
|
|
var desc = ctx.DefaultQuery("sort", "desc") == "desc"
|
|
|
|
|
|
|
|
|
|
// search mode, all, name, creator
|
|
|
|
|
var search = ctx.DefaultQuery("search", "all")
|
|
|
|
|
|
|
|
|
|
scopes := []func(db *gorm.DB) *gorm.DB{
|
|
|
|
|
db.Paginate(page, pageSize),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total := 0
|
|
|
|
|
|
|
|
|
|
switch order {
|
|
|
|
|
case "createdAt":
|
|
|
|
|
if desc {
|
|
|
|
|
scopes = append(scopes, db.OrderByCreatedAtDesc)
|
|
|
|
|
|