Skip to content

Account Manager

用户管理,存放用户相关信息,包括基础信息,签到信息,等级,装备以及加成...

基础信息/功能

用户的基础信息,在登陆的时候需要初始化用户信息

  1. 不需要存TG头像
  2. 存TG_id的nickname,第一次登陆的时候需要初始化,后续不需要更新
  3. 在第一次登陆的时候生成invite_code, 创建邀请者关系,邀请奖励

数据库 Account

nametypeuniqueIndexnot nulldefaultdescription
telegram_idint64/string1TelegramID
account_idint64/string1账号ID
nicknamestring昵称
avatarstring头像
invite_codestring邀请码
enablebool启用

数据库 AccountBoundWallet(后期扩展)

nametypeuniqueIndexnot nulldefaultdescription
account_idint64/stringbound_wallet_unique1账号ID
ecologyAccountBoundWalletEcologybound_wallet_unique1钱包生态
chainstring1钱包链
chain_idint641钱包链ID
addressstringbound_wallet_unique1钱包地址

枚举 AccountBoundWalletEcology(后期扩展)

indexvalue
0ETH
1SOLANA

Token

维护用户的登陆token,保证实效性,唯一性.

使用jwt生成token, 衍生: config.jwtSecret

  1. 利用jwt过期时间自校验实效性衍生:config.jwtTimeout
  2. 利用Redis维持每个token的唯一登陆衍生:Redis

jwt中的内容

namedescription
account_id用户ID
exp过期时间
iat签发时间

邀请功能

用户在登陆的时候如果携带invite_code,需要创建邀请者关系

绑定关系是一对多的关系,一个用户可以邀请任意人,但是只能被邀请一次

邀请关系是弱关联,通过数据库查询绑定者/被绑定着的account_id来获取邀请者/被邀请者列表

邀请奖励

邀请奖励在被邀请的时候根据邀请配置和是否是会员,给予不同奖励,奖励是实时发放

INFO

当前奖励是固定奖励,双方都会获得奖励,没有上限

数据库 account_referral

nametypeuniqueIndexnot nulldefaultdescription
account_idint64/string1账号ID
inviter_codestring邀请者
invitee_codestring被邀请者
enablebool启用

数据库 account_referral_config

nametypeuniqueIndexnot nulldefaultdescription
rewardint奖励内容

签到信息

用户的签到信息,包括总签到次数连续签到天数.

需要维护一个签到奖励表,表示已N天为一个循环,连续签到每天的奖励,断签或者N+1都相当于第一天的奖励

签到奖励在签到的时候根据签到奖励表,给予不同奖励.

数据库 account_checkin

TODO..

数据库 account_checkin_reward

TODO..