之前有个朋友面试蚂蚁金服p7,他的笔试题我要了过来,我觉得这道题目还是比较经典的,有兴趣的朋友不妨先拿来热热身。
实现转账系统,给外部系统提供账户开户,充值,转账rpc服务,要求如下,
- 账户类设计:
类名:Account,包含属性账号,账户余额,持有人身份证账号
- 开户功能:
- 入参:开户人身份证账号
- 功能逻辑:创建对应的Account,并持久化
- 返回值:账号
- 要求:一个身份证只允许有一个Account,每个Account的账号唯一
- 充值功能:
- 入参:账号,充值金额,请求号(请求号唯一)
- 功能逻辑:将充值金额增加到对应账户的余额中去
- 返回值:余额- 转账功能:
- 入参:转出账号,转入账号,转账金额,请求号(请求号唯一)
- 功能逻辑:转出账号余额减少,转入账号余额增加
- 返回值:转出账号余额
- 其他说明
- 上游系统在调用相关服务超时的情况下,会使用原请求发起重试
- 充值与充值,转账与转账,