mirror of
				https://github.com/yangjian102621/geekai.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	refactor: use power replace calls for front pages
This commit is contained in:
		@@ -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"`
 | 
			
		||||
 
 | 
			
		||||
@@ -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\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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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),
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,6 @@ type InviteLog struct {
 | 
			
		||||
	UserId     uint
 | 
			
		||||
	Username   string
 | 
			
		||||
	InviteCode string
 | 
			
		||||
	Reward     string `gorm:"column:reward_json"` // 邀请奖励
 | 
			
		||||
	Remark     string
 | 
			
		||||
	CreatedAt  time.Time
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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 '备注';
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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">
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user