package admin import ( "chatplus/core" "chatplus/handler" "chatplus/store/model" "chatplus/store/vo" "chatplus/utils" "chatplus/utils/resp" "github.com/gin-gonic/gin" "gorm.io/gorm" ) type UserHandler struct { handler.BaseHandler db *gorm.DB } func NewUserHandler(app *core.AppServer, db *gorm.DB) *UserHandler { h := UserHandler{db: db} h.App = app return &h } // List 用户列表 func (h *UserHandler) List(c *gin.Context) { page := h.GetInt(c, "page", 1) pageSize := h.GetInt(c, "page_size", 20) offset := (page - 1) * pageSize var items []model.User var users = make([]vo.User, 0) var total int64 h.db.Model(&model.User{}).Count(&total) res := h.db.Offset(offset).Limit(pageSize).Find(&items) if res.Error == nil { for _, item := range items { var user vo.User err := utils.CopyObject(item, &user) if err == nil { user.Id = item.Id user.CreatedAt = item.CreatedAt.Unix() user.UpdatedAt = item.UpdatedAt.Unix() users = append(users, user) } else { logger.Error(err) } } } pageVo := vo.NewPage(total, page, pageSize, users) resp.SUCCESS(c, pageVo) }