diff --git a/internal/api/mobile/order_preview/normal_create.go b/internal/api/mobile/order_preview/normal_create.go index 9aa5aee..09d49b8 100755 --- a/internal/api/mobile/order_preview/normal_create.go +++ b/internal/api/mobile/order_preview/normal_create.go @@ -10,7 +10,6 @@ import ( "recook/internal/model/promotion" "recook/internal/model/user" "recook/internal/model/vend" - "recook/internal/service/baseCode" "recook/internal/v2/lib/jcook" "recook/internal/v2/lib/shama" "recook/internal/v2/model/flashsale" @@ -65,7 +64,10 @@ func CreatePreviewNormalOrder(c *gin.Context) { sharerId := myInfo.ID if p.InvitationNo != "" { - sharerId = uint(baseCode.Decode(p.InvitationNo)) + var shareUser user.Information + dbc.DB.First(&shareUser, "invitation_no=?", p.InvitationNo) + // sharerId = uint(baseCode.Decode(p.InvitationNo)) + sharerId = shareUser.ID } if sharerId == 0 { sharerId = myInfo.ID diff --git a/internal/service/app/register.go b/internal/service/app/register.go index e56ae7b..83366de 100644 --- a/internal/service/app/register.go +++ b/internal/service/app/register.go @@ -36,7 +36,10 @@ func (r *registerUser) UserAdd(c *gin.Context, login *user.Login, info *user.Inf level := 0 var parentID uint = 0 if info.InvitationNo != "" { - uid := baseCode.Decode(info.InvitationNo) + var shareUser user.Information + // uid := baseCode.Decode(info.InvitationNo) + mysql.Db.First(&shareUser, "invitation_no=?", info.InvitationNo) + uid := shareUser.ID if uid != 0 { var p user.Information mysql.Db.First(&p, "id = ?", uid) diff --git a/internal/service/baseCode/baseCode.go b/internal/service/baseCode/baseCode.go index 5f6ad61..a057963 100644 --- a/internal/service/baseCode/baseCode.go +++ b/internal/service/baseCode/baseCode.go @@ -32,6 +32,14 @@ func Encode(uid uint64) string { return res } +func ReverseString(str string) string { + strArr := []rune(str) + for i := 0; i < len(strArr)/2; i++ { + strArr[len(strArr)-1-i], strArr[i] = strArr[i], strArr[len(strArr)-1-i] + } + return string(strArr) +} + func Decode(code string) uint64 { res := uint64(0) lenCode := len(code) @@ -41,16 +49,16 @@ func Decode(code string) uint64 { baseRev[v] = k } // 查找补位字符的位置 - isPad := strings.Index(code, PAD) + isPad := strings.Index(ReverseString(code), PAD) if isPad != -1 { - lenCode = isPad + lenCode = len(code) - 1 - isPad } r := 0 for i := 0; i < lenCode; i++ { // 补充字符直接跳过 - if string(code[i]) == PAD { - continue - } + // if string(code[i]) == PAD { + // continue + // } index, ok := baseRev[code[i]] if !ok { return 0