fix: can not change user's power in admin console

This commit is contained in:
RockYang
2024-03-25 11:40:03 +08:00
parent 3075bfb7fc
commit 49b5906bc7
8 changed files with 64 additions and 13 deletions

View File

@@ -56,6 +56,13 @@ WeChatBot = false
AccessSecret = ""
Bucket = ""
Domain = "" # OSS Bucket 所绑定的域名,如 https://img.r9it.com
[OSS.AliYun]
Endpoint = "oss-cn-hangzhou.aliyuncs.com"
AccessKey = ""
AccessSecret = ""
Bucket = "chatgpt-plus"
SubDir = ""
Domain = ""
[[MjConfigs]]
Enabled = false

View File

@@ -150,8 +150,9 @@ type SystemConfig struct {
EnabledReward bool `json:"enabled_reward,omitempty"` // 启用众筹功能
PowerPrice float64 `json:"power_price,omitempty"` // 算力单价
OrderPayTimeout int `json:"order_pay_timeout,omitempty"` //订单支付超时时间
DefaultModels []int `json:"default_models,omitempty"` // 默认开通的 AI 模型
OrderPayTimeout int `json:"order_pay_timeout,omitempty"` //订单支付超时时间
VipInfoText string `json:"vip_info_text"` // 会员页面充值说明
DefaultModels []int `json:"default_models,omitempty"` // 默认开通的 AI 模型
MjPower int `json:"mj_power,omitempty"` // MJ 绘画消耗算力
SdPower int `json:"sd_power,omitempty"` // SD 绘画消耗算力

View File

@@ -89,7 +89,7 @@ func (h *UserHandler) Save(c *gin.Context) {
resp.ERROR(c, "user not found")
return
}
var changePower = user.Power != data.Power
var oldPower = user.Power
user.Username = data.Username
user.Status = data.Status
user.Vip = data.Vip
@@ -98,22 +98,28 @@ func (h *UserHandler) Save(c *gin.Context) {
user.ChatModels = utils.JsonEncode(data.ChatModels)
user.ExpiredTime = utils.Str2stamp(data.ExpiredTime)
res = h.DB.Updates(&user)
res = h.DB.Select("username", "status", "vip", "power", "chat_roles_json", "chat_models_json", "expired_time").Updates(&user)
if res.Error != nil {
resp.ERROR(c, "更新数据库失败!")
return
}
// 记录算力日志
if changePower {
if oldPower != user.Power {
mark := types.PowerAdd
amount := user.Power - oldPower
if oldPower > user.Power {
mark = types.PowerSub
amount = oldPower - user.Power
}
h.DB.Create(&model.PowerLog{
UserId: user.Id,
Username: user.Username,
Type: types.PowerGift,
Amount: user.Power,
Amount: amount,
Balance: user.Power,
Mark: types.PowerAdd,
Mark: mark,
Model: "管理员",
Remark: fmt.Sprintf("后台管理员强制修改用户算力,修改值:%d, 管理员ID%d", user.Power, h.GetLoginUserId(c)),
Remark: fmt.Sprintf("后台管理员强制修改用户算力,修改前:%d,修改后:%d, 管理员ID%d", oldPower, user.Power, h.GetLoginUserId(c)),
CreatedAt: time.Now(),
})
}