You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.4 KiB
64 lines
2.4 KiB
package user
|
|
|
|
import (
|
|
"yunyan/comm"
|
|
"yunyan/lego/sys/mysql"
|
|
"yunyan/pb"
|
|
)
|
|
|
|
// 新用户开户礼:注册即到账,不需要任何操作。
|
|
//
|
|
// ⚠️ 这是**临时**的拉新政策(2026-08-28 起)。要停掉就把 newUserGiftEnabled 置 false,
|
|
// 或直接删掉 applyNewUserGift 的调用点(api_sgin.go 里创建用户那一处)。
|
|
//
|
|
// 单位坑(三个额度桶并不同构,照抄会送错量级):
|
|
// - Tradeintegral / Meetintegral 是**秒**,所以「100 分钟」= 100*60;
|
|
// - Aichatintegral 是**次数**,每次 AI 对话扣 1(见 api_usages.go 的 UsageType_AI 分支),
|
|
// 「分钟」在这个桶里没有意义,按 100 次给。
|
|
const (
|
|
newUserGiftEnabled = true
|
|
|
|
newUserGiftVipDays = 30 // 赠送 VIP 天数
|
|
newUserGiftTradeMin = 100 // 翻译额度(分钟)——同传/面对面/通话/影音共用这一个桶
|
|
newUserGiftMeetMin = 100 // 会议额度(分钟)
|
|
newUserGiftAiTimes = 100 // 智能体额度(次数,不是分钟)
|
|
)
|
|
|
|
// applyNewUserGift 把开户礼写进尚未落库的新用户对象。
|
|
// 只在「用户不存在 → 新建」的分支调用,老用户不受影响。
|
|
//
|
|
// 直接赋值而非累加:这是刚 new 出来的对象,几个额度字段都还是零值。
|
|
func applyNewUserGift(user *pb.DBUser, now int64) {
|
|
if !newUserGiftEnabled || user == nil {
|
|
return
|
|
}
|
|
user.Vipexptime = now + int64(newUserGiftVipDays)*24*60*60
|
|
|
|
tradeSec := int64(newUserGiftTradeMin) * 60
|
|
meetSec := int64(newUserGiftMeetMin) * 60
|
|
|
|
user.Tradeintegral = tradeSec
|
|
user.Tradetotalintegral = tradeSec
|
|
user.Meetintegral = meetSec
|
|
user.Meettotalintegral = meetSec
|
|
user.Aichatintegral = int64(newUserGiftAiTimes)
|
|
user.Aichattotalintegral = int64(newUserGiftAiTimes)
|
|
}
|
|
|
|
// logNewUserGift 记一条活动奖励流水,便于后台对账「送出去多少」。
|
|
// 礼包已经随用户一起落库了,这条流水写失败不回滚、只忽略。
|
|
func logNewUserGift(uid string, now int64) {
|
|
if !newUserGiftEnabled {
|
|
return
|
|
}
|
|
_ = mysql.Insert(comm.TableUserUseLog, &pb.DBUserUseLog{
|
|
Uid: uid,
|
|
Ts: now,
|
|
Logtype: pb.UserLogType_ActivityReward,
|
|
Addvipday: int64(newUserGiftVipDays),
|
|
Addtradesecond: int64(newUserGiftTradeMin) * 60,
|
|
Addmeetsecond: int64(newUserGiftMeetMin) * 60,
|
|
Addagentintegral: int64(newUserGiftAiTimes),
|
|
Extra: "new user register gift",
|
|
})
|
|
}
|
|
|