refactor: use power replace calls for front pages

This commit is contained in:
RockYang 2024-03-12 17:47:06 +08:00
parent e746aafa2f
commit e8f62af7f6
11 changed files with 22 additions and 58 deletions

View File

@ -156,10 +156,6 @@ type UserChatConfig struct {
ApiKeys map[Platform]string `json:"api_keys"`
}
type InviteReward struct {
Power int `json:"power"`
}
type ModelAPIConfig struct {
Temperature float32 `json:"temperature"`
MaxTokens int `json:"max_tokens"`

View File

@ -192,7 +192,6 @@ func (h *FunctionHandler) Dall3(c *gin.Context) {
}
logger.Debugf("绘画参数:%+v", params)
// check img calls
var user model.User
tx := h.db.Where("id = ?", params["user_id"]).First(&user)
if tx.Error != nil {
@ -274,7 +273,7 @@ func (h *FunctionHandler) Dall3(c *gin.Context) {
}
content := fmt.Sprintf("下面是根据您的描述创作的图片,它描绘了 【%s】 的场景。 \n\n![](%s)\n", prompt, imgURL)
// update user's img_calls
// 更新用户算力
tx = h.db.Model(&model.User{}).Where("id = ?", user.Id).UpdateColumn("power", gorm.Expr("power - ?", h.App.SysConfig.DallPower))
// 记录算力变化日志
if tx.Error == nil && tx.RowsAffected > 0 {

View File

@ -316,7 +316,7 @@ func (h *PaymentHandler) notify(orderNo string, tradeNo string) error {
}
} else { // 非 VIP 用户
if remark.Days > 0 { // vip 套餐days > 0, calls == 0
if remark.Days > 0 { // vip 套餐days > 0, power == 0
user.ExpiredTime = time.Now().AddDate(0, 0, remark.Days).Unix()
user.Power += h.App.SysConfig.VipMonthPower
user.Vip = true

View File

@ -126,7 +126,7 @@ func (h *UserHandler) Register(c *gin.Context) {
UserId: user.Id,
Username: user.Username,
InviteCode: inviteCode.Code,
Reward: utils.JsonEncode(types.InviteReward{Power: h.App.SysConfig.InvitePower}),
Remark: fmt.Sprintf("奖励 %d 算力", h.App.SysConfig.InvitePower),
})
}

View File

@ -10,6 +10,6 @@ type InviteLog struct {
UserId uint
Username string
InviteCode string
Reward string `gorm:"column:reward_json"` // 邀请奖励
Remark string
CreatedAt time.Time
}

View File

@ -1,15 +1,11 @@
package vo
import (
"chatplus/core/types"
)
type InviteLog struct {
Id uint `json:"id"`
InviterId uint `json:"inviter_id"`
UserId uint `json:"user_id"`
Username string `json:"username"`
InviteCode string `json:"invite_code"`
Reward types.InviteReward `json:"reward"`
Remark string `json:"remark"`
CreatedAt int64 `json:"created_at"`
}

View File

@ -42,3 +42,5 @@ ALTER TABLE `chatgpt_power_logs` CHANGE `amount` `amount` SMALLINT NOT NULL COMM
ALTER TABLE `chatgpt_power_logs` ADD `mark` TINYINT(1) NOT NULL COMMENT '资金类型0支出1收入' AFTER `remark`;
ALTER TABLE `chatgpt_mj_jobs` ADD `power` SMALLINT(5) NOT NULL DEFAULT '0' COMMENT '消耗算力' AFTER `err_msg`;
ALTER TABLE `chatgpt_sd_jobs` ADD `power` SMALLINT(5) NOT NULL DEFAULT '0' COMMENT '消耗算力' AFTER `err_msg`;
ALTER TABLE `chatgpt_invite_logs` CHANGE `reward_json` `remark` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '备注';

View File

@ -12,17 +12,8 @@
<el-form-item label="账户">
<span>{{ user.username }}</span>
</el-form-item>
<el-form-item label="剩余对话次数">
<el-tag>{{ user['calls'] }}</el-tag>
</el-form-item>
<el-form-item label="剩余绘图次数">
<el-tag>{{ user['img_calls'] }}</el-tag>
</el-form-item>
<el-form-item label="本月算力消耗">
<el-tag type="info">{{ user['tokens'] }}</el-tag>
</el-form-item>
<el-form-item label="累计算力消耗">
<el-tag type="info">{{ user['total_tokens'] }}</el-tag>
<el-form-item label="剩余算力">
<el-tag>{{ user['power'] }}</el-tag>
</el-form-item>
<el-form-item label="会员到期时间" v-if="user['expired_time'] > 0">
<el-tag type="danger">{{ dateFormat(user['expired_time']) }}</el-tag>

View File

@ -9,12 +9,7 @@
--el-table-text-color:#d1d1d1">
<el-table-column prop="username" label="用户"/>
<el-table-column prop="invite_code" label="邀请码"/>
<el-table-column label="邀请奖励">
<template #default="scope">
<span>对话{{ scope.row['reward']['chat_calls'] }}</span>
<span>绘图{{ scope.row['reward']['img_calls'] }}</span>
</template>
</el-table-column>
<el-table-column prop="remark" label="邀请奖励"/>
<el-table-column label="注册时间">
<template #default="scope">

View File

@ -17,14 +17,9 @@
</el-table-column>
<el-table-column prop="subject" label="产品名称"/>
<el-table-column prop="amount" label="订单金额"/>
<el-table-column label="对话次数">
<el-table-column label="订单算力">
<template #default="scope">
<span>{{ scope.row.remark?.calls }}</span>
</template>
</el-table-column>
<el-table-column label="绘图次数">
<template #default="scope">
<span>{{ scope.row.remark?.img_calls ?? 0 }}</span>
<span>{{ scope.row.remark?.power }}</span>
</template>
</el-table-column>

View File

@ -29,17 +29,8 @@
<el-image v-if="user.vip" :src="vipImg" style="height: 25px;margin-left: 10px"/>
</el-tooltip>
</el-form-item>
<el-form-item label="剩余对话次数">
<el-tag>{{ user['calls'] }}</el-tag>
</el-form-item>
<el-form-item label="剩余绘图次数">
<el-tag>{{ user['img_calls'] }}</el-tag>
</el-form-item>
<el-form-item label="本月算力消耗">
<el-tag type="info">{{ user['tokens'] }}</el-tag>
</el-form-item>
<el-form-item label="累计算力消耗">
<el-tag type="info">{{ user['total_tokens'] }}</el-tag>
<el-form-item label="剩余算力">
<el-tag>{{ user['power'] }}</el-tag>
</el-form-item>
<el-form-item label="会员到期时间" v-if="user['expired_time'] > 0">
<el-tag type="danger">{{ dateFormat(user['expired_time']) }}</el-tag>
@ -67,8 +58,7 @@ const user = ref({
nickname: '',
avatar: '',
mobile: '',
calls: 0,
tokens: 0,
power: 0,
})
const vipImg = ref("/images/vip.png")