feat: 默认昵称带序号(星辰旅行者1001 起步,跳过占用),与画屿画友方案一致,纯后端无需发版
This commit is contained in:
@@ -1,5 +1,19 @@
|
||||
const express = require('express')
|
||||
const router = express.Router()
|
||||
|
||||
/**
|
||||
* 生成默认昵称:星辰旅行者 + 序号(1001 起步,跳过已占用,参考画屿画友1001 方案)
|
||||
*/
|
||||
async function genDefaultNickName() {
|
||||
const used = new Set(
|
||||
(await User.find({ nickName: /^星辰旅行者\d+$/ }).select('nickName').lean())
|
||||
.map(u => parseInt(String(u.nickName).replace('星辰旅行者', ''), 10))
|
||||
.filter(n => !isNaN(n))
|
||||
)
|
||||
let n = 1001
|
||||
while (used.has(n)) n++
|
||||
return `星辰旅行者${n}`
|
||||
}
|
||||
const jwt = require('jsonwebtoken')
|
||||
const { User, Admin, AdminLog, LoginLog, VerificationCode } = require('../models')
|
||||
const ApiResponse = require('../utils/response')
|
||||
@@ -107,7 +121,7 @@ router.post('/login', async (req, res) => {
|
||||
// 新用户
|
||||
user = new User({
|
||||
openid,
|
||||
nickName: userInfo?.nickName || '星辰旅行者',
|
||||
nickName: userInfo?.nickName || (await genDefaultNickName()),
|
||||
avatarUrl: userInfo?.avatarUrl || '',
|
||||
unlockedDims: [1]
|
||||
})
|
||||
@@ -195,7 +209,7 @@ router.post('/webview-login', async (req, res) => {
|
||||
// 新用户 - 使用微信提供的信息创建账户
|
||||
user = new User({
|
||||
openid,
|
||||
nickName: userInfo?.nickName || '星辰旅行者',
|
||||
nickName: userInfo?.nickName || (await genDefaultNickName()),
|
||||
avatarUrl: userInfo?.avatarUrl || '',
|
||||
unlockedDims: [1]
|
||||
})
|
||||
@@ -479,7 +493,7 @@ router.post('/user/register', async (req, res) => {
|
||||
username: finalUsername,
|
||||
email: email || '',
|
||||
password,
|
||||
nickName: nickName || '星辰旅行者',
|
||||
nickName: nickName || (await genDefaultNickName()),
|
||||
avatarUrl: avatarUrl || '',
|
||||
unlockedDims: [1]
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user