| package controller
|
|
|
| import (
|
| "github.com/QuantumNous/new-api/model"
|
| "github.com/QuantumNous/new-api/service"
|
| "github.com/QuantumNous/new-api/setting/ratio_setting"
|
|
|
| "github.com/gin-gonic/gin"
|
| )
|
|
|
| func GetPricing(c *gin.Context) {
|
| pricing := model.GetPricing()
|
| userId, exists := c.Get("id")
|
| usableGroup := map[string]string{}
|
| groupRatio := map[string]float64{}
|
| for s, f := range ratio_setting.GetGroupRatioCopy() {
|
| groupRatio[s] = f
|
| }
|
| var group string
|
| if exists {
|
| user, err := model.GetUserCache(userId.(int))
|
| if err == nil {
|
| group = user.Group
|
| for g := range groupRatio {
|
| ratio, ok := ratio_setting.GetGroupGroupRatio(group, g)
|
| if ok {
|
| groupRatio[g] = ratio
|
| }
|
| }
|
| }
|
| }
|
|
|
| usableGroup = service.GetUserUsableGroups(group)
|
|
|
| for group := range ratio_setting.GetGroupRatioCopy() {
|
| if _, ok := usableGroup[group]; !ok {
|
| delete(groupRatio, group)
|
| }
|
| }
|
|
|
| c.JSON(200, gin.H{
|
| "success": true,
|
| "data": pricing,
|
| "vendors": model.GetVendors(),
|
| "group_ratio": groupRatio,
|
| "usable_group": usableGroup,
|
| "supported_endpoint": model.GetSupportedEndpointMap(),
|
| "auto_groups": service.GetUserAutoGroup(group),
|
| })
|
| }
|
|
|
| func ResetModelRatio(c *gin.Context) {
|
| defaultStr := ratio_setting.DefaultModelRatio2JSONString()
|
| err := model.UpdateOption("ModelRatio", defaultStr)
|
| if err != nil {
|
| c.JSON(200, gin.H{
|
| "success": false,
|
| "message": err.Error(),
|
| })
|
| return
|
| }
|
| err = ratio_setting.UpdateModelRatioByJSONString(defaultStr)
|
| if err != nil {
|
| c.JSON(200, gin.H{
|
| "success": false,
|
| "message": err.Error(),
|
| })
|
| return
|
| }
|
| c.JSON(200, gin.H{
|
| "success": true,
|
| "message": "้็ฝฎๆจกๅๅ็ๆๅ",
|
| })
|
| }
|
|
|