From 94adb357665cb3a22afe6c82b0e301c914c069ea Mon Sep 17 00:00:00 2001 From: howell <2827207845@qq.com> Date: Tue, 4 Jan 2022 10:57:32 +0800 Subject: [PATCH] fix: invitation --- internal/api/mobile/users/register.go | 5 ++++- internal/service/app/register.go | 22 ++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/internal/api/mobile/users/register.go b/internal/api/mobile/users/register.go index 7380995..0bc8242 100755 --- a/internal/api/mobile/users/register.go +++ b/internal/api/mobile/users/register.go @@ -147,11 +147,12 @@ func WeChatInvitation(c *gin.Context) { } // 从微信端注册时用户邀请码默认为id时6的用户,邀请码为NXR0L3 - //p.InvitationNo = "NXR0L3" + // p.InvitationNo = "NXR0L3" // 正确, 入库 var u = service.NewUserWithRedis() userInfo, err := u.GetUserInRedis(p.WxUnionId) + userInfo.InvitationNo = p.InvitationNo if err != nil { if err == redis.Nil { back.Fail(c, "用户不存在") @@ -169,6 +170,7 @@ func WeChatInvitation(c *gin.Context) { back.Fail(c, "add error:"+err.Error()) return } + userInfo.Nickname = tmp.Nickname userInfo.HeadImgUrl = tmp.HeadImgUrl userInfo.WxUnionId = tmp.WxUnionId @@ -279,6 +281,7 @@ func MobileRegister(c *gin.Context) { var login user.Login var info user.Information + info.InvitationNo = p.InvitationNo // 开始添加用户 if err := registerUser.UserAdd(c, &login, &info, p.Mobile); err != nil { diff --git a/internal/service/app/register.go b/internal/service/app/register.go index 9e5d9aa..e2c979d 100644 --- a/internal/service/app/register.go +++ b/internal/service/app/register.go @@ -2,8 +2,6 @@ package service import ( "fmt" - "github.com/gin-gonic/gin" - "github.com/golangkit/formatime" "recook/internal/cache" "recook/internal/dbc" "recook/internal/define" @@ -11,6 +9,10 @@ import ( "recook/internal/service/baseCode" "recook/tools" "time" + + "git.oa00.com/go/mysql" + "github.com/gin-gonic/gin" + "github.com/golangkit/formatime" ) type registerUser struct { @@ -31,6 +33,20 @@ func (r *registerUser) UserAdd(c *gin.Context, login *user.Login, info *user.Inf tx.Rollback() return err } + level := 0 + var parentID uint = 0 + if info.InvitationNo != "" { + uid := baseCode.Decode(info.InvitationNo) + if uid != 0 { + var p user.Information + mysql.Db.First(&p, "id = ?", uid) + if p.Level == 2 { + level = 1 + parentID = p.ID + } + } + + } *info = user.Information{ ID: lastId, AncestorID: 1, @@ -42,6 +58,8 @@ func (r *registerUser) UserAdd(c *gin.Context, login *user.Login, info *user.Inf Phone: mobile, AssessBegin: formatime.NewSecondNow(), // 第一次的起始时间是注册时间 Identifier: time.Now().Format("060102") + baseCode.Encode(uint64(lastId)), + Level: level, + ParentID: parentID, } if err := tx.Create(&info).Error; err != nil {