feat: improve member payment and order flows

This commit is contained in:
richjohnrambo
2026-10-15 15:03:39 +08:00
parent 06eaf748ed
commit acf50b9b7c
11 changed files with 172 additions and 22 deletions
+17 -3
View File
@@ -12,6 +12,8 @@ import (
"strconv"
"strings"
"time"
"unicode"
"unicode/utf8"
"git.118im.com/im_team/olons_server/internal/config"
"git.118im.com/im_team/olons_server/internal/store"
@@ -36,7 +38,6 @@ var (
)
var (
usernamePattern = regexp.MustCompile(`^[a-z0-9]{1,10}$`)
phonePattern = regexp.MustCompile(`^1[3-9][0-9]{9}$`)
referralPattern = regexp.MustCompile(`^[A-Za-z0-9]{1,32}$`)
tradePasswordPattern = regexp.MustCompile(`^[0-9]{6}$`)
@@ -142,10 +143,10 @@ func (s *Service) Register(ctx context.Context, input RegisterInput) (*Result, e
if !s.ready {
return nil, ErrUnavailable
}
input.Username = strings.ToLower(strings.TrimSpace(input.Username))
input.Username = strings.TrimSpace(input.Username)
input.Phone = strings.TrimSpace(input.Phone)
input.ReferralCode = strings.TrimSpace(input.ReferralCode)
if !usernamePattern.MatchString(input.Username) {
if !validMemberName(input.Username) {
return nil, ErrUsernameInvalid
}
if !phonePattern.MatchString(input.Phone) {
@@ -191,6 +192,19 @@ func (s *Service) Register(ctx context.Context, input RegisterInput) (*Result, e
return s.issueSession(ctx, account, input.DeviceID)
}
func validMemberName(value string) bool {
count := utf8.RuneCountInString(value)
if count < 1 || count > 10 {
return false
}
for _, r := range value {
if !unicode.IsLetter(r) && !unicode.IsMark(r) && r != '·' {
return false
}
}
return true
}
func (s *Service) Login(ctx context.Context, input LoginInput) (*Result, error) {
if !s.ready {
return nil, ErrUnavailable