This commit is contained in:
邹方成 2026-02-06 15:18:16 +08:00
parent 571cb2f4db
commit 029ed489bc
4 changed files with 56 additions and 27 deletions

View File

@ -38,12 +38,24 @@ func (h *handler) GetUserProfile() core.HandlerFunc {
// 转换为积分(浮点)用于显示
balancePoints := h.user.CentsToPointsFloat(ctx.RequestContext(), balance)
var inviterNickname, inviterAvatar, inviterCode string
if user.InviterID > 0 {
if inviter, err := h.user.GetProfile(ctx.RequestContext(), user.InviterID); err == nil {
inviterNickname = inviter.Nickname
inviterAvatar = inviter.Avatar
inviterCode = inviter.InviteCode
}
}
res := userItem{
ID: user.ID,
Nickname: user.Nickname,
Avatar: user.Avatar,
InviteCode: user.InviteCode,
InviterID: user.InviterID,
InviterNickname: inviterNickname,
InviterAvatar: inviterAvatar,
InviterCode: inviterCode,
Mobile: phone,
DouyinUserID: user.DouyinUserID,
Balance: balancePoints,
@ -62,6 +74,9 @@ type userItem struct {
Avatar string `json:"avatar"`
InviteCode string `json:"invite_code"`
InviterID int64 `json:"inviter_id"`
InviterNickname string `json:"inviter_nickname"` // 邀请人昵称
InviterAvatar string `json:"inviter_avatar"` // 邀请人头像
InviterCode string `json:"inviter_code"` // 邀请人邀请码
Mobile string `json:"mobile"`
DouyinUserID string `json:"douyin_user_id"`
Balance float64 `json:"balance"` // 积分(分/rate
@ -107,12 +122,24 @@ func (h *handler) ModifyUser() core.HandlerFunc {
balance, _ := h.user.GetPointsBalance(ctx.RequestContext(), userID)
balancePoints := h.user.CentsToPointsFloat(ctx.RequestContext(), balance)
var inviterNickname, inviterAvatar, inviterCode string
if item.InviterID > 0 {
if inviter, err := h.user.GetProfile(ctx.RequestContext(), item.InviterID); err == nil {
inviterNickname = inviter.Nickname
inviterAvatar = inviter.Avatar
inviterCode = inviter.InviteCode
}
}
rsp.User = userItem{
ID: item.ID,
Nickname: item.Nickname,
Avatar: item.Avatar,
InviteCode: item.InviteCode,
InviterID: item.InviterID,
InviterNickname: inviterNickname,
InviterAvatar: inviterAvatar,
InviterCode: inviterCode,
Mobile: maskedPhone,
DouyinUserID: item.DouyinUserID,
Balance: balancePoints,

View File

@ -19,7 +19,7 @@ type UserInvites struct {
InviteeID int64 `gorm:"column:invitee_id;not null;comment:被邀请用户ID" json:"invitee_id"` // 被邀请用户ID
InviteCode string `gorm:"column:invite_code;not null;comment:邀请时使用的邀请码" json:"invite_code"` // 邀请时使用的邀请码
RewardPoints int64 `gorm:"column:reward_points;not null;comment:发放的积分数量(用于审计)" json:"reward_points"` // 发放的积分数量(用于审计)
RewardedAt time.Time `gorm:"column:rewarded_at;comment:奖励发放时间" json:"rewarded_at"` // 奖励发放时间
RewardedAt *time.Time `gorm:"column:rewarded_at;comment:奖励发放时间" json:"rewarded_at"` // 奖励发放时间
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP(3);comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP(3);comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;comment:删除时间(软删)" json:"deleted_at"` // 删除时间(软删)

View File

@ -155,12 +155,13 @@ func (s *service) LoginWeixin(ctx context.Context, in LoginWeixinInput) (*LoginW
if existed == nil {
inviter, _ := tx.Users.WithContext(ctx).Where(tx.Users.InviteCode.Eq(in.InviteCode)).First()
if inviter != nil && inviter.ID != u.ID {
now := time.Now()
inv := &model.UserInvites{
InviterID: inviter.ID,
InviteeID: u.ID,
InviteCode: in.InviteCode,
RewardPoints: 0,
RewardedAt: time.Now(),
RewardedAt: &now,
}
if err := tx.UserInvites.WithContext(ctx).Create(inv); err != nil {
return err

View File

@ -241,12 +241,13 @@ func (s *service) LoginByCode(ctx context.Context, in SmsLoginInput) (*SmsLoginO
if existed == nil {
inviter, _ := tx.Users.WithContext(ctx).Where(tx.Users.InviteCode.Eq(in.InviteCode)).First()
if inviter != nil && inviter.ID != user.ID {
now := time.Now()
inv := &model.UserInvites{
InviterID: inviter.ID,
InviteeID: user.ID,
InviteCode: in.InviteCode,
RewardPoints: 0,
RewardedAt: time.Now(),
RewardedAt: &now,
}
if txErr = tx.UserInvites.WithContext(ctx).Create(inv); txErr != nil {
return txErr