| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package controller
- import (
- "net/http"
- "one-api/common"
- "one-api/model"
- "strconv"
- "time"
- "github.com/gin-gonic/gin"
- )
- // GetChannelStatistics 获取按渠道统计的数据
- func GetChannelStatistics(c *gin.Context) {
- startTimestamp, _ := strconv.ParseInt(c.Query("start_timestamp"), 10, 64)
- endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64)
- username := c.Query("username")
- tokenName := c.Query("token_name")
- modelName := c.Query("model_name")
- channel, _ := strconv.Atoi(c.Query("channel"))
- group := c.Query("group")
- defaultTime := c.Query("default_time")
- // 设置默认时间范围为最近7天
- if startTimestamp == 0 && endTimestamp == 0 {
- endTimestamp = time.Now().Unix()
- startTimestamp = endTimestamp - 7*24*3600
- }
- // 设置默认时间粒度
- if defaultTime == "" {
- defaultTime = "day"
- }
- statistics, err := model.GetChannelStatistics(int(startTimestamp), int(endTimestamp), username, tokenName, modelName, channel, group, defaultTime)
- if err != nil {
- common.ApiError(c, err)
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "message": "",
- "data": statistics,
- })
- }
- // GetTokenStatistics 获取按令牌统计的数据
- func GetTokenStatistics(c *gin.Context) {
- startTimestamp, _ := strconv.ParseInt(c.Query("start_timestamp"), 10, 64)
- endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64)
- username := c.Query("username")
- tokenName := c.Query("token_name")
- modelName := c.Query("model_name")
- channel, _ := strconv.Atoi(c.Query("channel"))
- group := c.Query("group")
- defaultTime := c.Query("default_time")
- // 设置默认时间范围为最近7天
- if startTimestamp == 0 && endTimestamp == 0 {
- endTimestamp = time.Now().Unix()
- startTimestamp = endTimestamp - 7*24*3600
- }
- // 设置默认时间粒度
- if defaultTime == "" {
- defaultTime = "day"
- }
- statistics, err := model.GetTokenStatistics(int(startTimestamp), int(endTimestamp), username, tokenName, modelName, channel, group, defaultTime)
- if err != nil {
- common.ApiError(c, err)
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "message": "",
- "data": statistics,
- })
- }
- // GetUserStatistics 获取按用户统计的数据
- func GetUserStatistics(c *gin.Context) {
- startTimestamp, _ := strconv.ParseInt(c.Query("start_timestamp"), 10, 64)
- endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64)
- username := c.Query("username")
- tokenName := c.Query("token_name")
- modelName := c.Query("model_name")
- channel, _ := strconv.Atoi(c.Query("channel"))
- group := c.Query("group")
- defaultTime := c.Query("default_time")
- // 设置默认时间范围为最近7天
- if startTimestamp == 0 && endTimestamp == 0 {
- endTimestamp = time.Now().Unix()
- startTimestamp = endTimestamp - 7*24*3600
- }
- // 设置默认时间粒度
- if defaultTime == "" {
- defaultTime = "day"
- }
- statistics, err := model.GetUserStatistics(int(startTimestamp), int(endTimestamp), username, tokenName, modelName, channel, group, defaultTime)
- if err != nil {
- common.ApiError(c, err)
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "message": "",
- "data": statistics,
- })
- }
|