move aiid2regcode/regcode2aiid to core.tool
This commit is contained in:
parent
a0a19ca83a
commit
67b38b6e7b
50
index.js
50
index.js
@ -36,5 +36,55 @@ module.exports = {
|
|||||||
.replace(/[tuv]/g, 8)
|
.replace(/[tuv]/g, 8)
|
||||||
.replace(/[wxyz]/g, 9)
|
.replace(/[wxyz]/g, 9)
|
||||||
return parseInt(port)
|
return parseInt(port)
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户编号转邀请码
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @param {*} aiid
|
||||||
|
* @return {*}
|
||||||
|
* @memberof TICrypto
|
||||||
|
*/
|
||||||
|
aiid2regcode(aiid) {
|
||||||
|
const alphabet = 'e5fcdg3hqa4b1n0pij2rstuv67mwx89klyz'
|
||||||
|
const base = 16367
|
||||||
|
let num = (aiid + base) * (base - alphabet.length)
|
||||||
|
let code = ''
|
||||||
|
let mod
|
||||||
|
while (num > 0) {
|
||||||
|
mod = num % alphabet.length
|
||||||
|
num = (num - mod) / alphabet.length
|
||||||
|
code = code + alphabet[mod] // 倒序存放
|
||||||
|
}
|
||||||
|
return code
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 邀请码转用户编号
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @param {*} code
|
||||||
|
* @return {*}
|
||||||
|
* @memberof TICrypto
|
||||||
|
*/
|
||||||
|
regcode2aiid(code) {
|
||||||
|
if (typeof code === 'string' && /^[a-zA-Z0-9]+$/.test(code)) {
|
||||||
|
const alphabet = 'e5fcdg3hqa4b1n0pij2rstuv67mwx89klyz'
|
||||||
|
const base = 16367
|
||||||
|
code = code.toLowerCase()
|
||||||
|
let len = code.length
|
||||||
|
let num = 0
|
||||||
|
for (let i = 0; i < len; i++) {
|
||||||
|
num += alphabet.indexOf(code[i]) * Math.pow(alphabet.length, i)
|
||||||
|
}
|
||||||
|
let aiid = num / (base - alphabet.length) - base
|
||||||
|
if (aiid >= 0 && Number.isInteger(aiid)) {
|
||||||
|
// 允许 aiid===0:当第一个用户(aiid==1)登录时,需要一个系统默认的邀请码。
|
||||||
|
return aiid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return null // null 代表一切非法的regcode
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user