Files
huangguo_server/web/api/userctrl/login.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

61 lines
2.2 KiB
Go

package userctrl
import (
"time"
"91porn-server/common"
"91porn-server/common/pageopt"
"91porn-server/common/stderr"
"91porn-server/models/commod"
"91porn-server/web/service/userser"
"github.com/gin-gonic/gin"
)
// LoginList doc
// @Summary 获取用户登陆列表
// @Description 获取用户登陆列表
// @Tags web-用户管理
// @Accept mpfd,json
// @Produce json,html
// @Param pageNumber query integer true "当前页"
// @Param pageSize query integer true "每页条数"
// @Param uid query integer false "过滤条件-用户ID"
// @Param startTime query integer false "过滤条件-开始时间"
// @Param endTime query integer false "过滤条件-结束时间"
// @Success 200 {string} user "{"msg": "操作成功", "date": { "total":10, "list":[] }}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /web/user/login/list [get]
func LoginList(c *gin.Context) {
type Query struct {
UID *uint64 `form:"uid" json:"uid" bson:"uid,omitempty"` //用户ID
StartTime time.Time `form:"startTime" json:"startTime,omitempty" binding:""` //开始时间
EndTime time.Time `form:"endTime" json:"endTime,omitempty" binding:""` //结束时间
}
var arg struct {
commod.Page
Query
}
if err := c.ShouldBind(&arg); err != nil {
common.ServeJSON(c, stderr.ErrParamError, "web user LoginList arg error "+err.Error())
return
}
skip := int64((arg.PageNumber - 1) * arg.PageSize)
limit := int64(arg.PageSize)
endTime := time.Now()
startTime := endTime.AddDate(0, -1, 0)
if !arg.EndTime.IsZero() {
startTime = arg.StartTime
endTime = arg.EndTime
}
page, err := userser.LoginInfoPages(skip, limit,
pageopt.CreatedAtGTEAndLTMatch{GTE: &startTime, LT: &endTime},
pageopt.UIDMatch{UID: arg.UID},
)
if err != nil {
common.ServeJSON(c, stderr.Failure, "web user LoginList error: "+err.Error())
return
}
common.ServeJSON(c, stderr.Success, page)
}