|
|
package controller |
|
|
|
|
|
import ( |
|
|
"net/http" |
|
|
|
|
|
"github.com/QuantumNous/new-api/model" |
|
|
"github.com/QuantumNous/new-api/service" |
|
|
"github.com/QuantumNous/new-api/setting" |
|
|
"github.com/QuantumNous/new-api/setting/ratio_setting" |
|
|
|
|
|
"github.com/gin-gonic/gin" |
|
|
) |
|
|
|
|
|
func GetGroups(c *gin.Context) { |
|
|
groupNames := make([]string, 0) |
|
|
for groupName := range ratio_setting.GetGroupRatioCopy() { |
|
|
groupNames = append(groupNames, groupName) |
|
|
} |
|
|
c.JSON(http.StatusOK, gin.H{ |
|
|
"success": true, |
|
|
"message": "", |
|
|
"data": groupNames, |
|
|
}) |
|
|
} |
|
|
|
|
|
func GetUserGroups(c *gin.Context) { |
|
|
usableGroups := make(map[string]map[string]interface{}) |
|
|
userGroup := "" |
|
|
userId := c.GetInt("id") |
|
|
userGroup, _ = model.GetUserGroup(userId, false) |
|
|
userUsableGroups := service.GetUserUsableGroups(userGroup) |
|
|
for groupName, _ := range ratio_setting.GetGroupRatioCopy() { |
|
|
|
|
|
if desc, ok := userUsableGroups[groupName]; ok { |
|
|
usableGroups[groupName] = map[string]interface{}{ |
|
|
"ratio": service.GetUserGroupRatio(userGroup, groupName), |
|
|
"desc": desc, |
|
|
} |
|
|
} |
|
|
} |
|
|
if _, ok := userUsableGroups["auto"]; ok { |
|
|
usableGroups["auto"] = map[string]interface{}{ |
|
|
"ratio": "自动", |
|
|
"desc": setting.GetUsableGroupDescription("auto"), |
|
|
} |
|
|
} |
|
|
c.JSON(http.StatusOK, gin.H{ |
|
|
"success": true, |
|
|
"message": "", |
|
|
"data": usableGroups, |
|
|
}) |
|
|
} |
|
|
|