| package controller | |
| import ( | |
| "net/http" | |
| "strings" | |
| "github.com/QuantumNous/new-api/service" | |
| "github.com/gin-gonic/gin" | |
| ) | |
| func GetChannelAffinityCacheStats(c *gin.Context) { | |
| stats := service.GetChannelAffinityCacheStats() | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "message": "", | |
| "data": stats, | |
| }) | |
| } | |
| func ClearChannelAffinityCache(c *gin.Context) { | |
| all := strings.TrimSpace(c.Query("all")) | |
| ruleName := strings.TrimSpace(c.Query("rule_name")) | |
| if all == "true" { | |
| deleted := service.ClearChannelAffinityCacheAll() | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "message": "", | |
| "data": gin.H{ | |
| "deleted": deleted, | |
| }, | |
| }) | |
| return | |
| } | |
| if ruleName == "" { | |
| c.JSON(http.StatusBadRequest, gin.H{ | |
| "success": false, | |
| "message": "缺少参数:rule_name,或使用 all=true 清空全部", | |
| }) | |
| return | |
| } | |
| deleted, err := service.ClearChannelAffinityCacheByRuleName(ruleName) | |
| if err != nil { | |
| c.JSON(http.StatusBadRequest, gin.H{ | |
| "success": false, | |
| "message": err.Error(), | |
| }) | |
| return | |
| } | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "message": "", | |
| "data": gin.H{ | |
| "deleted": deleted, | |
| }, | |
| }) | |
| } | |
| func GetChannelAffinityUsageCacheStats(c *gin.Context) { | |
| ruleName := strings.TrimSpace(c.Query("rule_name")) | |
| usingGroup := strings.TrimSpace(c.Query("using_group")) | |
| keyFp := strings.TrimSpace(c.Query("key_fp")) | |
| if ruleName == "" { | |
| c.JSON(http.StatusBadRequest, gin.H{ | |
| "success": false, | |
| "message": "missing param: rule_name", | |
| }) | |
| return | |
| } | |
| if keyFp == "" { | |
| c.JSON(http.StatusBadRequest, gin.H{ | |
| "success": false, | |
| "message": "missing param: key_fp", | |
| }) | |
| return | |
| } | |
| stats := service.GetChannelAffinityUsageCacheStats(ruleName, usingGroup, keyFp) | |
| c.JSON(http.StatusOK, gin.H{ | |
| "success": true, | |
| "message": "", | |
| "data": stats, | |
| }) | |
| } | |