feat: use six-digit numeric member invite codes

This commit is contained in:
richjohnrambo
2026-10-15 18:41:52 +08:00
parent 639c46fd88
commit c6ec45cccf
5 changed files with 82 additions and 16 deletions
+13 -14
View File
@@ -3,7 +3,6 @@ package sys
import (
"context"
"fmt"
"strings"
"hotgo/internal/consts"
"hotgo/internal/dao"
@@ -54,19 +53,15 @@ func (s *sSysAppMemberAuth) Register(ctx context.Context, in *sysin.AppMemberReg
return gerror.New("手机号已存在")
}
parentId, level, tree := uint64(0), 1, ""
if in.InviteCode != "" {
var parent *entity.AppMember
if e = s.memberModel(ctx).Where(mc.InviteCode, in.InviteCode).Scan(&parent); e != nil {
return gerror.Wrap(e, "查询邀请人失败")
}
if parent == nil {
return gerror.New("邀请码不存在")
}
parentId = parent.Id
level = parent.Level + 1
tree = parent.Tree + "tr_" + fmt.Sprint(parent.Id) + " "
var parent *entity.AppMember
if e = s.memberModel(ctx).Where(mc.InviteCode, in.InviteCode).Where(mc.MemberStatus, consts.AppMemberStatusNormal).Scan(&parent); e != nil {
return gerror.Wrap(e, "查询邀请人失败")
}
if parent == nil {
return gerror.New("邀请码不存在")
}
parentId, level := parent.Id, parent.Level+1
tree := parent.Tree + "tr_" + fmt.Sprint(parent.Id) + " "
levelId := uint64(0)
var firstLevel *entity.AppMemberLevel
@@ -81,11 +76,15 @@ func (s *sSysAppMemberAuth) Register(ctx context.Context, in *sysin.AppMemberReg
return gerror.Wrap(e, "生成密码摘要失败")
}
memberNo := "MB" + gtime.Now().Format("YmdHis") + grand.S(5)
inviteCode, e := newAppMemberInviteCode(ctx, s.memberModel(ctx))
if e != nil {
return e
}
memberData := g.Map{
mc.TenantId: 0,
mc.MemberNo: memberNo, mc.Username: in.Username, mc.Mobile: in.Mobile,
mc.PasswordHash: string(hashed), mc.LevelId: levelId, mc.ParentId: parentId,
mc.Level: level, mc.Tree: tree, mc.InviteCode: strings.ToUpper(grand.S(8)),
mc.Level: level, mc.Tree: tree, mc.InviteCode: inviteCode,
mc.MemberStatus: consts.AppMemberStatusNormal, mc.RiskStatus: consts.AppMemberRiskNormal,
mc.AutoDispatch: consts.AppMemberDispatchManual, mc.CreditScore: 100, mc.IsTestAccount: 2,
}