feat: 默认昵称带序号(星辰旅行者1001 起步,跳过占用),与画屿画友方案一致,纯后端无需发版
This commit is contained in:
@@ -1,5 +1,19 @@
|
|||||||
const express = require('express')
|
const express = require('express')
|
||||||
const router = express.Router()
|
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 jwt = require('jsonwebtoken')
|
||||||
const { User, Admin, AdminLog, LoginLog, VerificationCode } = require('../models')
|
const { User, Admin, AdminLog, LoginLog, VerificationCode } = require('../models')
|
||||||
const ApiResponse = require('../utils/response')
|
const ApiResponse = require('../utils/response')
|
||||||
@@ -107,7 +121,7 @@ router.post('/login', async (req, res) => {
|
|||||||
// 新用户
|
// 新用户
|
||||||
user = new User({
|
user = new User({
|
||||||
openid,
|
openid,
|
||||||
nickName: userInfo?.nickName || '星辰旅行者',
|
nickName: userInfo?.nickName || (await genDefaultNickName()),
|
||||||
avatarUrl: userInfo?.avatarUrl || '',
|
avatarUrl: userInfo?.avatarUrl || '',
|
||||||
unlockedDims: [1]
|
unlockedDims: [1]
|
||||||
})
|
})
|
||||||
@@ -195,7 +209,7 @@ router.post('/webview-login', async (req, res) => {
|
|||||||
// 新用户 - 使用微信提供的信息创建账户
|
// 新用户 - 使用微信提供的信息创建账户
|
||||||
user = new User({
|
user = new User({
|
||||||
openid,
|
openid,
|
||||||
nickName: userInfo?.nickName || '星辰旅行者',
|
nickName: userInfo?.nickName || (await genDefaultNickName()),
|
||||||
avatarUrl: userInfo?.avatarUrl || '',
|
avatarUrl: userInfo?.avatarUrl || '',
|
||||||
unlockedDims: [1]
|
unlockedDims: [1]
|
||||||
})
|
})
|
||||||
@@ -479,7 +493,7 @@ router.post('/user/register', async (req, res) => {
|
|||||||
username: finalUsername,
|
username: finalUsername,
|
||||||
email: email || '',
|
email: email || '',
|
||||||
password,
|
password,
|
||||||
nickName: nickName || '星辰旅行者',
|
nickName: nickName || (await genDefaultNickName()),
|
||||||
avatarUrl: avatarUrl || '',
|
avatarUrl: avatarUrl || '',
|
||||||
unlockedDims: [1]
|
unlockedDims: [1]
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user