diff --git a/backend/src/VendingMachine.Domain/Entities/User.cs b/backend/src/VendingMachine.Domain/Entities/User.cs index b4343f79..f6948c52 100644 --- a/backend/src/VendingMachine.Domain/Entities/User.cs +++ b/backend/src/VendingMachine.Domain/Entities/User.cs @@ -2,7 +2,17 @@ namespace VendingMachine.Domain.Entities; public class User { - public string Uid { get; set; } = Guid.NewGuid().ToString("N")[..12]; + private static readonly Random _random = new(); + + public string Uid { get; set; } = GenerateUid(); + + /// + /// 生成6位随机数字UID,不以0开头(100000-999999) + /// + public static string GenerateUid() + { + return _random.Next(100000, 999999).ToString(); + } public string Phone { get; set; } = string.Empty; public string AreaCode { get; set; } = string.Empty; public string Nickname { get; set; } = string.Empty; diff --git a/backend/src/VendingMachine.Infrastructure/Services/UserService.cs b/backend/src/VendingMachine.Infrastructure/Services/UserService.cs index f68db9c3..69debdb2 100644 --- a/backend/src/VendingMachine.Infrastructure/Services/UserService.cs +++ b/backend/src/VendingMachine.Infrastructure/Services/UserService.cs @@ -92,8 +92,16 @@ public class UserService : IUserService if (user == null) { + // 生成唯一的6位UID + string uid; + do + { + uid = User.GenerateUid(); + } while (await _db.Users.IgnoreQueryFilters().AnyAsync(u => u.Uid == uid)); + user = new User { + Uid = uid, Phone = request.Phone, AreaCode = request.AreaCode, Nickname = IUserService.GenerateDefaultNickname() diff --git a/mobile/pages/login/login.vue b/mobile/pages/login/login.vue index 902e6e02..bfcb2cfc 100644 --- a/mobile/pages/login/login.vue +++ b/mobile/pages/login/login.vue @@ -1,7 +1,7 @@