Spaces:
Runtime error
Runtime error
| package controller | |
| import ( | |
| "fmt" | |
| "net/http" | |
| "time" | |
| "github.com/QuantumNous/new-api/common" | |
| "github.com/QuantumNous/new-api/logger" | |
| "github.com/QuantumNous/new-api/model" | |
| "github.com/QuantumNous/new-api/setting/operation_setting" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| // GetCheckinStatus 获取用户签到状态和历史记录 | |
| func GetCheckinStatus(c *gin.Context) { | |
| setting := operation_setting.GetCheckinSetting() | |
| if !setting.Enabled { | |
| common.ApiErrorMsg(c, "签到功能未启用") | |
| return | |
| } | |
| userId := c.GetInt("id") | |
| // 获取月份参数,默认为当前月份 | |
| month := c.DefaultQuery("month", time.Now().Format("2006-01")) | |
| stats, err := model.GetUserCheckinStats(userId, month) | |
| if err != nil { | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": false, | |
| "message": err.Error(), | |
| }) | |
| return | |
| } | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "data": gin.H{ | |
| "enabled": setting.Enabled, | |
| "min_quota": setting.MinQuota, | |
| "max_quota": setting.MaxQuota, | |
| "stats": stats, | |
| }, | |
| }) | |
| } | |
| // DoCheckin 执行用户签到 | |
| func DoCheckin(c *gin.Context) { | |
| setting := operation_setting.GetCheckinSetting() | |
| if !setting.Enabled { | |
| common.ApiErrorMsg(c, "签到功能未启用") | |
| return | |
| } | |
| userId := c.GetInt("id") | |
| checkin, err := model.UserCheckin(userId) | |
| if err != nil { | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": false, | |
| "message": err.Error(), | |
| }) | |
| return | |
| } | |
| model.RecordLog(userId, model.LogTypeSystem, fmt.Sprintf("用户签到,获得额度 %s", logger.LogQuota(checkin.QuotaAwarded))) | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "message": "签到成功", | |
| "data": gin.H{ | |
| "quota_awarded": checkin.QuotaAwarded, | |
| "checkin_date": checkin.CheckinDate}, | |
| }) | |
| } | |