feat(identity): change username format to '榴莲女皇x号'

- Replace random username generation with fixed format
- Username now uses accountSequence: '榴莲女皇{序列号}号'
- Keep random durian-themed SVG avatar generation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-08 20:16:11 -08:00
parent e8be584336
commit 78304801f5
3 changed files with 14 additions and 30 deletions

View File

@ -8,7 +8,7 @@ import { TokenService } from '@/application/services/token.service';
import { EventPublisherService } from '@/infrastructure/kafka/event-publisher.service';
import { ApplicationError } from '@/shared/exceptions/domain.exception';
import { AutoCreateAccountResult } from '../index';
import { generateRandomIdentity } from '@/shared/utils';
import { generateIdentity } from '@/shared/utils';
@Injectable()
export class AutoCreateAccountHandler {
@ -43,8 +43,8 @@ export class AutoCreateAccountHandler {
// 3. 生成用户序列号
const accountSequence = await this.sequenceGenerator.generateNextUserSequence();
// 4. 生成随机用户名和头像
const identity = generateRandomIdentity();
// 4. 生成用户名和头像
const identity = generateIdentity(accountSequence.value);
// 5. 构建设备名称,保存完整的设备信息 JSON
let deviceNameStr = '未命名设备';

View File

@ -20,7 +20,7 @@ import { MpcWalletService } from '@/infrastructure/external/mpc';
import { BlockchainWalletHandler } from '../event-handlers/blockchain-wallet.handler';
import { MpcKeygenCompletedHandler } from '../event-handlers/mpc-keygen-completed.handler';
import { ApplicationError } from '@/shared/exceptions/domain.exception';
import { generateRandomIdentity } from '@/shared/utils';
import { generateIdentity } from '@/shared/utils';
import { MpcKeygenRequestedEvent } from '@/domain/events';
import {
AutoCreateAccountCommand, RecoverByMnemonicCommand, RecoverByPhoneCommand,
@ -88,8 +88,8 @@ export class UserApplicationService {
// 3. 生成用户序列号
const accountSequence = await this.sequenceGenerator.generateNextUserSequence();
// 4. 生成随机用户名和头像
const identity = generateRandomIdentity();
// 4. 生成用户名和头像
const identity = generateIdentity(accountSequence.value);
// 5. 构建设备名称字符串
let deviceNameStr = '未命名设备';

View File

@ -1,27 +1,10 @@
/**
*
*
*/
// 形容词词库 (水果/美食主题)
const ADJECTIVES = [
'快乐', '阳光', '活泼', '可爱', '勇敢', '聪明', '温暖', '甜蜜',
'闪亮', '酷炫', '神秘', '优雅', '热情', '淘气', '呆萌', '霸气',
'清新', '软糯', '香甜', '金色', '紫色', '粉色', '蓝色', '绿色',
];
// 名词词库 (水果主题 - 榴莲相关)
const NOUNS = [
'榴莲', '芒果', '椰子', '菠萝', '龙眼', '荔枝', '山竹', '木瓜',
'百香果', '火龙果', '杨桃', '莲雾', '番石榴', '释迦', '红毛丹',
'勇士', '战士', '骑士', '猎手', '侠客', '英雄', '达人', '玩家',
];
// 生成随机用户名: 形容词 + 名词 + 随机数字
export function generateRandomUsername(): string {
const adjective = ADJECTIVES[Math.floor(Math.random() * ADJECTIVES.length)];
const noun = NOUNS[Math.floor(Math.random() * NOUNS.length)];
const number = Math.floor(Math.random() * 90000) + 10000; // 5位数字
return `${adjective}${noun}_${number}`;
// 生成用户名: 榴莲女皇x号
export function generateUsername(accountSequence: number): string {
return `榴莲女皇${accountSequence}`;
}
// 预定义的柔和配色方案
@ -148,11 +131,12 @@ export function generateRandomAvatarSvg(): string {
}
/**
*
*
* @param accountSequence
*/
export function generateRandomIdentity(): { username: string; avatarSvg: string } {
export function generateIdentity(accountSequence: number): { username: string; avatarSvg: string } {
return {
username: generateRandomUsername(),
username: generateUsername(accountSequence),
avatarSvg: generateRandomAvatarSvg(),
};
}