move aiid2regcode/regcode2aiid to core.tool
This commit is contained in:
		
							parent
							
								
									a0a19ca83a
								
							
						
					
					
						commit
						67b38b6e7b
					
				
							
								
								
									
										52
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								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