|
|
|
@ -5,6 +5,7 @@ import (
|
|
|
|
"encoding/json"
|
|
|
|
"encoding/json"
|
|
|
|
"errors"
|
|
|
|
"errors"
|
|
|
|
"log"
|
|
|
|
"log"
|
|
|
|
|
|
|
|
"strconv"
|
|
|
|
"time"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@ -59,12 +60,24 @@ func queryBlance(key string) (float64, error) {
|
|
|
|
// 余额查询
|
|
|
|
// 余额查询
|
|
|
|
func checkBlance(key string, model string) (ServerInfo, error) {
|
|
|
|
func checkBlance(key string, model string) (ServerInfo, error) {
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取模型价格
|
|
|
|
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var modelInfo ModelInfo
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(modelPriceStr), &modelInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取用户信息
|
|
|
|
//获取用户信息
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
var userInfo UserInfo
|
|
|
|
var userInfo UserInfo
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
//获取服务器信息
|
|
|
|
//获取服务器信息
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+userInfo.SID).Result()
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+strconv.Itoa(modelInfo.ServerId)).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return serverInfo, errors.New("服务器信息不存在")
|
|
|
|
return serverInfo, errors.New("服务器信息不存在")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -72,16 +85,7 @@ func checkBlance(key string, model string) (ServerInfo, error) {
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return serverInfo, errors.New("服务器信息解析失败")
|
|
|
|
return serverInfo, errors.New("服务器信息解析失败")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//获取模型价格
|
|
|
|
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var modelInfo ModelInfo
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(modelPriceStr), &modelInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//计算余额-先扣除指定金额
|
|
|
|
//计算余额-先扣除指定金额
|
|
|
|
balance, err := Redis.IncrByFloat(context.Background(), "user:"+userInfo.UID+":balance", -(float64(modelInfo.ModelPrepayment) * modelInfo.ModelPrice)).Result()
|
|
|
|
balance, err := Redis.IncrByFloat(context.Background(), "user:"+userInfo.UID+":balance", -(float64(modelInfo.ModelPrepayment) * modelInfo.ModelPrice)).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
@ -99,12 +103,24 @@ func checkBlance(key string, model string) (ServerInfo, error) {
|
|
|
|
// 余额查询 for images
|
|
|
|
// 余额查询 for images
|
|
|
|
func checkBlanceForImages(key string, model string, n int) (ServerInfo, error) {
|
|
|
|
func checkBlanceForImages(key string, model string, n int) (ServerInfo, error) {
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取模型价格
|
|
|
|
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var modelInfo ModelInfo
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(modelPriceStr), &modelInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取用户信息
|
|
|
|
//获取用户信息
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
var userInfo UserInfo
|
|
|
|
var userInfo UserInfo
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
//获取服务器信息
|
|
|
|
//获取服务器信息
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+userInfo.SID).Result()
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+strconv.Itoa(modelInfo.ServerId)).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return serverInfo, errors.New("服务器信息不存在")
|
|
|
|
return serverInfo, errors.New("服务器信息不存在")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -112,16 +128,7 @@ func checkBlanceForImages(key string, model string, n int) (ServerInfo, error) {
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return serverInfo, errors.New("服务器信息解析失败")
|
|
|
|
return serverInfo, errors.New("服务器信息解析失败")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//获取模型价格
|
|
|
|
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var modelInfo ModelInfo
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(modelPriceStr), &modelInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return serverInfo, errors.New("模型信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//计算余额-先扣除指定金额
|
|
|
|
//计算余额-先扣除指定金额
|
|
|
|
balance, err := Redis.IncrByFloat(context.Background(), "user:"+userInfo.UID+":balance", -(float64(modelInfo.ModelPrepayment*n) * modelInfo.ModelPrice)).Result()
|
|
|
|
balance, err := Redis.IncrByFloat(context.Background(), "user:"+userInfo.UID+":balance", -(float64(modelInfo.ModelPrepayment*n) * modelInfo.ModelPrice)).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
@ -138,20 +145,11 @@ func checkBlanceForImages(key string, model string, n int) (ServerInfo, error) {
|
|
|
|
|
|
|
|
|
|
|
|
// 预扣返还
|
|
|
|
// 预扣返还
|
|
|
|
func checkBlanceReturn(key string, model string) error {
|
|
|
|
func checkBlanceReturn(key string, model string) error {
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
|
|
|
|
//获取用户信息
|
|
|
|
//获取用户信息
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
var userInfo UserInfo
|
|
|
|
var userInfo UserInfo
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
//获取服务器信息
|
|
|
|
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+userInfo.SID).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return errors.New("服务器信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(serverInfoStr), &serverInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return errors.New("服务器信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取模型价格
|
|
|
|
//获取模型价格
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
@ -169,20 +167,10 @@ func checkBlanceReturn(key string, model string) error {
|
|
|
|
|
|
|
|
|
|
|
|
// 预扣返还 for images
|
|
|
|
// 预扣返还 for images
|
|
|
|
func checkBlanceReturnForImages(key string, model string, n int) error {
|
|
|
|
func checkBlanceReturnForImages(key string, model string, n int) error {
|
|
|
|
var serverInfo ServerInfo
|
|
|
|
|
|
|
|
//获取用户信息
|
|
|
|
//获取用户信息
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
userInfoStr, err := Redis.Get(context.Background(), "user:"+key).Result()
|
|
|
|
var userInfo UserInfo
|
|
|
|
var userInfo UserInfo
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
err = json.Unmarshal([]byte(userInfoStr), &userInfo)
|
|
|
|
//获取服务器信息
|
|
|
|
|
|
|
|
serverInfoStr, err := Redis.Get(context.Background(), "server:"+userInfo.SID).Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return errors.New("服务器信息不存在")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(serverInfoStr), &serverInfo)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return errors.New("服务器信息解析失败")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取模型价格
|
|
|
|
//获取模型价格
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
modelPriceStr, err := Redis.Get(context.Background(), "model:"+model).Result()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
|