From a2af637e7fae794ebd0e7fe0db88ddffd4ab8331 Mon Sep 17 00:00:00 2001 From: OswinWu Date: Sun, 11 Aug 2024 11:21:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20log=E5=88=86=E9=A1=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/log.go | 17 +++++++++++------ model/log.go | 16 ++++++++++++---- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/controller/log.go b/controller/log.go index 3902810..b90c2b5 100644 --- a/controller/log.go +++ b/controller/log.go @@ -1,18 +1,19 @@ package controller import ( - "github.com/gin-gonic/gin" "net/http" "one-api/common" "one-api/model" "strconv" + + "github.com/gin-gonic/gin" ) func GetAllLogs(c *gin.Context) { p, _ := strconv.Atoi(c.Query("p")) pageSize, _ := strconv.Atoi(c.Query("page_size")) - if p < 0 { - p = 0 + if p < 1 { + p = 1 } if pageSize < 0 { pageSize = common.ItemsPerPage @@ -24,7 +25,7 @@ func GetAllLogs(c *gin.Context) { tokenName := c.Query("token_name") modelName := c.Query("model_name") channel, _ := strconv.Atoi(c.Query("channel")) - logs, err := model.GetAllLogs(logType, startTimestamp, endTimestamp, modelName, username, tokenName, p*pageSize, pageSize, channel) + logs, total, err := model.GetAllLogs(logType, startTimestamp, endTimestamp, modelName, username, tokenName, (p-1)*pageSize, pageSize, channel) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, @@ -35,9 +36,13 @@ func GetAllLogs(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "success": true, "message": "", - "data": logs, + "data": map[string]any{ + "items": logs, + "total": total, + "page": p, + "page_size": pageSize, + }, }) - return } func GetUserLogs(c *gin.Context) { diff --git a/model/log.go b/model/log.go index d2e5b84..f907f43 100644 --- a/model/log.go +++ b/model/log.go @@ -3,11 +3,12 @@ package model import ( "context" "fmt" - "github.com/bytedance/gopkg/util/gopool" - "gorm.io/gorm" "one-api/common" "strings" "time" + + "github.com/bytedance/gopkg/util/gopool" + "gorm.io/gorm" ) type Log struct { @@ -95,7 +96,7 @@ func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptToke } } -func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, startIdx int, num int, channel int) (logs []*Log, err error) { +func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, startIdx int, num int, channel int) (logs []*Log, total int64, err error) { var tx *gorm.DB if logType == LogTypeUnknown { tx = DB @@ -120,8 +121,15 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName if channel != 0 { tx = tx.Where("channel_id = ?", channel) } + err = tx.Model(&Log{}).Count(&total).Error + if err != nil { + return nil, 0, err + } err = tx.Order("id desc").Limit(num).Offset(startIdx).Find(&logs).Error - return logs, err + if err != nil { + return nil, 0, err + } + return logs, total, err } func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int64, modelName string, tokenName string, startIdx int, num int) (logs []*Log, err error) {