- Updated the GetPricing function in the backend to include user group information, allowing for dynamic adjustment of group ratios based on the user's group. - Implemented logic to filter group ratios based on the user's usable groups, improving the accuracy of pricing data returned. - Modified the ModelPricing component to utilize the new usable group data, ensuring only relevant groups are displayed in the UI. - Enhanced state management in the frontend to accommodate the new usable group information, improving user experience and data consistency.
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"one-api/common"
|
|
"one-api/model"
|
|
)
|
|
|
|
func GetPricing(c *gin.Context) {
|
|
pricing := model.GetPricing()
|
|
userId, exists := c.Get("id")
|
|
usableGroup := map[string]string{}
|
|
groupRatio := common.GroupRatio
|
|
var group string
|
|
if exists {
|
|
user, err := model.GetChannelById(userId.(int), false)
|
|
if err != nil {
|
|
c.JSON(200, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
group = user.Group
|
|
}
|
|
|
|
usableGroup = common.GetUserUsableGroups(group)
|
|
// check groupRatio contains usableGroup
|
|
for group := range common.GroupRatio {
|
|
if _, ok := usableGroup[group]; !ok {
|
|
delete(groupRatio, group)
|
|
}
|
|
}
|
|
|
|
c.JSON(200, gin.H{
|
|
"success": true,
|
|
"data": pricing,
|
|
"group_ratio": groupRatio,
|
|
"usable_group": usableGroup,
|
|
})
|
|
}
|
|
|
|
func ResetModelRatio(c *gin.Context) {
|
|
defaultStr := common.DefaultModelRatio2JSONString()
|
|
err := model.UpdateOption("ModelRatio", defaultStr)
|
|
if err != nil {
|
|
c.JSON(200, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
err = common.UpdateModelRatioByJSONString(defaultStr)
|
|
if err != nil {
|
|
c.JSON(200, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
c.JSON(200, gin.H{
|
|
"success": true,
|
|
"message": "重置模型倍率成功",
|
|
})
|
|
}
|