初始化导入 new-api 源码
This commit is contained in:
72
controller/group.go
Normal file
72
controller/group.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/QuantumNous/new-api/common"
|
||||
"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)
|
||||
subscriptionGroups, err := model.GetSubscriptionDedicatedGroupSet()
|
||||
if err != nil {
|
||||
common.ApiError(c, err)
|
||||
return
|
||||
}
|
||||
for groupName := range ratio_setting.GetGroupRatioCopy() {
|
||||
// UserUsableGroups contains the groups that the user can use
|
||||
if desc, ok := userUsableGroups[groupName]; ok {
|
||||
_, isSubscriptionGroup := subscriptionGroups[groupName]
|
||||
usableGroups[groupName] = map[string]interface{}{
|
||||
"ratio": service.GetUserGroupRatio(userGroup, groupName),
|
||||
"desc": desc,
|
||||
"is_wallet_usable": true,
|
||||
"is_subscription_group": isSubscriptionGroup,
|
||||
}
|
||||
} else {
|
||||
if _, isSubscriptionGroup := subscriptionGroups[groupName]; isSubscriptionGroup {
|
||||
usableGroups[groupName] = map[string]interface{}{
|
||||
"ratio": service.GetUserGroupRatio(userGroup, groupName),
|
||||
"desc": setting.GetUsableGroupDescription(groupName),
|
||||
"is_wallet_usable": false,
|
||||
"is_subscription_group": true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if _, ok := userUsableGroups["auto"]; ok {
|
||||
usableGroups["auto"] = map[string]interface{}{
|
||||
"ratio": "自动",
|
||||
"desc": setting.GetUsableGroupDescription("auto"),
|
||||
"is_wallet_usable": true,
|
||||
"is_subscription_group": false,
|
||||
}
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"success": true,
|
||||
"message": "",
|
||||
"data": usableGroups,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user