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) }