diff --git a/controller/log.go b/controller/log.go index b90c2b5..ca0e1ec 100644 --- a/controller/log.go +++ b/controller/log.go @@ -48,8 +48,8 @@ func GetAllLogs(c *gin.Context) { func GetUserLogs(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 @@ -63,7 +63,7 @@ func GetUserLogs(c *gin.Context) { endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64) tokenName := c.Query("token_name") modelName := c.Query("model_name") - logs, err := model.GetUserLogs(userId, logType, startTimestamp, endTimestamp, modelName, tokenName, p*pageSize, pageSize) + logs, total, err := model.GetUserLogs(userId, logType, startTimestamp, endTimestamp, modelName, tokenName, (p-1)*pageSize, pageSize) if err != nil { c.JSON(http.StatusOK, gin.H{ "success": false, @@ -74,7 +74,12 @@ func GetUserLogs(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 } diff --git a/model/log.go b/model/log.go index 681a4be..5493a05 100644 --- a/model/log.go +++ b/model/log.go @@ -132,7 +132,7 @@ func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName 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) { +func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int64, modelName string, tokenName string, startIdx int, num int) (logs []*Log, total int64, err error) { var tx *gorm.DB if logType == LogTypeUnknown { tx = LOG_DB.Where("user_id = ?", userId) @@ -151,6 +151,10 @@ func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int if endTimestamp != 0 { tx = tx.Where("created_at <= ?", endTimestamp) } + err = tx.Model(&Log{}).Count(&total).Error + if err != nil { + return nil, 0, err + } err = tx.Order("id desc").Limit(num).Offset(startIdx).Omit("id").Find(&logs).Error for i := range logs { var otherMap map[string]interface{} @@ -161,7 +165,7 @@ func GetUserLogs(userId int, logType int, startTimestamp int64, endTimestamp int } logs[i].Other = common.MapToJsonStr(otherMap) } - return logs, err + return logs, total, err } func SearchAllLogs(keyword string) (logs []*Log, err error) { diff --git a/web/src/components/LogsTable.js b/web/src/components/LogsTable.js index 072f2ad..0d19423 100644 --- a/web/src/components/LogsTable.js +++ b/web/src/components/LogsTable.js @@ -534,6 +534,7 @@ const LogsTable = () => { const res = await API.get(url); const { success, message, data } = res.data; if (success) { + console.log(data); const newPageData = data.items; setActivePage(data.page); setPageSize(data.page_size);