From e63a30064bf3b690084d88283634071db785ae3b Mon Sep 17 00:00:00 2001 From: RockYang Date: Thu, 23 Nov 2023 17:40:15 +0800 Subject: [PATCH] opt: optimize styles for invitation page --- api/handler/invite_handler.go | 32 +++++++- api/main.go | 2 +- web/src/components/InviteList.vue | 99 ++++++++++++++++++++++ web/src/components/UserOrder.vue | 4 +- web/src/views/Invitation.vue | 132 +++++++++++++++++++++++++++++- 5 files changed, 261 insertions(+), 8 deletions(-) create mode 100644 web/src/components/InviteList.vue diff --git a/api/handler/invite_handler.go b/api/handler/invite_handler.go index 0eae5cf5..8ea489ce 100644 --- a/api/handler/invite_handler.go +++ b/api/handler/invite_handler.go @@ -2,6 +2,7 @@ package handler import ( "chatplus/core" + "chatplus/core/types" "chatplus/store/model" "chatplus/store/vo" "chatplus/utils" @@ -55,7 +56,36 @@ func (h *InviteHandler) Code(c *gin.Context) { // List Log 用户邀请记录 func (h *InviteHandler) List(c *gin.Context) { - resp.SUCCESS(c) + var data struct { + Page int `json:"page"` + PageSize int `json:"page_size"` + } + if err := c.ShouldBindJSON(&data); err != nil { + resp.ERROR(c, types.InvalidArgs) + return + } + userId := h.GetLoginUserId(c) + session := h.db.Session(&gorm.Session{}).Where("inviter_id = ?", userId) + var total int64 + session.Model(&model.InviteLog{}).Count(&total) + var items []model.InviteLog + var list = make([]vo.InviteLog, 0) + offset := (data.Page - 1) * data.PageSize + res := session.Order("id DESC").Offset(offset).Limit(data.PageSize).Find(&items) + if res.Error == nil { + for _, item := range items { + var v vo.InviteLog + err := utils.CopyObject(item, &v) + if err == nil { + v.Id = item.Id + v.CreatedAt = item.CreatedAt.Unix() + list = append(list, v) + } else { + logger.Error(err) + } + } + } + resp.SUCCESS(c, vo.NewPage(total, data.Page, data.PageSize, list)) } // Hits 访问邀请码 diff --git a/api/main.go b/api/main.go index 18514bf0..7aea70d0 100644 --- a/api/main.go +++ b/api/main.go @@ -350,7 +350,7 @@ func main() { fx.Invoke(func(s *core.AppServer, h *handler.InviteHandler) { group := s.Engine.Group("/api/invite/") group.GET("code", h.Code) - group.GET("list", h.List) + group.POST("list", h.List) group.GET("hits", h.Hits) }), diff --git a/web/src/components/InviteList.vue b/web/src/components/InviteList.vue new file mode 100644 index 00000000..0f97095f --- /dev/null +++ b/web/src/components/InviteList.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/web/src/components/UserOrder.vue b/web/src/components/UserOrder.vue index a48f73cb..b715da76 100644 --- a/web/src/components/UserOrder.vue +++ b/web/src/components/UserOrder.vue @@ -1,6 +1,6 @@