|
|
|
@ -261,3 +261,64 @@ func SetRoomSetting(ctx *gin.Context) {
|
|
|
|
|
|
|
|
|
|
ctx.Status(http.StatusNoContent)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// func RoomUsers(ctx *gin.Context) {
|
|
|
|
|
// room := ctx.MustGet("room").(*op.Room)
|
|
|
|
|
// page, pageSize, err := GetPageAndPageSize(ctx)
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorResp(err))
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// var desc = ctx.DefaultQuery("sort", "desc") == "desc"
|
|
|
|
|
|
|
|
|
|
// scopes := []func(db *gorm.DB) *gorm.DB{}
|
|
|
|
|
// roomUserRelationScopes := []func(db *gorm.DB) *gorm.DB{}
|
|
|
|
|
|
|
|
|
|
// switch ctx.DefaultQuery("status", "active") {
|
|
|
|
|
// case "pending":
|
|
|
|
|
// roomUserRelationScopes = append(roomUserRelationScopes, db.WhereRoomUserStatus(dbModel.RoomUserStatusPending))
|
|
|
|
|
// case "banned":
|
|
|
|
|
// roomUserRelationScopes = append(roomUserRelationScopes, db.WhereRoomUserStatus(dbModel.RoomUserStatusBanned))
|
|
|
|
|
// case "active":
|
|
|
|
|
// roomUserRelationScopes = append(roomUserRelationScopes, db.WhereRoomUserStatus(dbModel.RoomUserStatusActive))
|
|
|
|
|
// default:
|
|
|
|
|
// ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support role"))
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// switch ctx.DefaultQuery("order", "name") {
|
|
|
|
|
// case "join":
|
|
|
|
|
// if desc {
|
|
|
|
|
// roomUserRelationScopes = append(roomUserRelationScopes, db.OrderByCreatedAtDesc)
|
|
|
|
|
// } else {
|
|
|
|
|
// roomUserRelationScopes = append(roomUserRelationScopes, db.OrderByCreatedAtAsc)
|
|
|
|
|
// }
|
|
|
|
|
// case "name":
|
|
|
|
|
// if desc {
|
|
|
|
|
// scopes = append(scopes, db.OrderByDesc("username"))
|
|
|
|
|
// } else {
|
|
|
|
|
// scopes = append(scopes, db.OrderByAsc("username"))
|
|
|
|
|
// }
|
|
|
|
|
// default:
|
|
|
|
|
// ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support order"))
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if keyword := ctx.Query("keyword"); keyword != "" {
|
|
|
|
|
// // search mode, all, name, id
|
|
|
|
|
// switch ctx.DefaultQuery("search", "all") {
|
|
|
|
|
// case "all":
|
|
|
|
|
// scopes = append(scopes, db.WhereUsernameLikeOrIDIn(keyword, db.GerUsersIDByIDLike(keyword)))
|
|
|
|
|
// case "name":
|
|
|
|
|
// scopes = append(scopes, db.WhereUsernameLike(keyword))
|
|
|
|
|
// case "id":
|
|
|
|
|
// scopes = append(scopes, db.WhereIDIn(db.GerUsersIDByIDLike(keyword)))
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// ctx.JSON(http.StatusOK, model.NewApiDataResp(gin.H{
|
|
|
|
|
// "total": db.GetAllRoomUsersCount(room.ID, roomUserRelationScopes, scopes...),
|
|
|
|
|
// "list": genUserListResp(db.GetAllRoomUsers(room.ID, roomUserRelationScopes, append(scopes, db.Paginate(page, pageSize))...)),
|
|
|
|
|
// }))
|
|
|
|
|
// }
|
|
|
|
|