diff --git a/api/config.sample.toml b/api/config.sample.toml
index 700b122c..3978b2df 100644
--- a/api/config.sample.toml
+++ b/api/config.sample.toml
@@ -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
diff --git a/api/core/types/config.go b/api/core/types/config.go
index 17cde49a..a3ae1b04 100644
--- a/api/core/types/config.go
+++ b/api/core/types/config.go
@@ -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 绘画消耗算力
diff --git a/api/handler/admin/user_handler.go b/api/handler/admin/user_handler.go
index 1bf84e9a..1bc70b40 100644
--- a/api/handler/admin/user_handler.go
+++ b/api/handler/admin/user_handler.go
@@ -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(),
})
}
diff --git a/deploy/conf/config.toml b/deploy/conf/config.toml
index 8fdf8201..c4ed68c3 100644
--- a/deploy/conf/config.toml
+++ b/deploy/conf/config.toml
@@ -59,6 +59,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
diff --git a/web/src/views/Home.vue b/web/src/views/Home.vue
index 95888bf3..db214038 100644
--- a/web/src/views/Home.vue
+++ b/web/src/views/Home.vue
@@ -31,10 +31,12 @@