# Wallet_Demo **Repository Path**: lzcall_admin/wallet_-demo ## Basic Information - **Project Name**: Wallet_Demo - **Description**: 业务背景:电商业务中,需要给电商app设计一个用户钱包,用户可以往钱包中充值,购买商品时用户可以使用钱包中的钱消费,商品申请退款成功后钱会退回钱包中,用户也可以申请提现把钱提到银行卡中 用程序实现如下api接口 1. 查询用户钱包余额 2. 用户消费100元的接口 3. 用户退款20元接口 4. 查询用户钱包金额变动明细的接口 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-27 - **Last Updated**: 2023-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Wallet_Demo #### 介绍 业务背景:电商业务中,需要给电商app设计一个用户钱包,用户可以往钱包中充值,购买商品时用户可以使用钱包中的钱消费,商品申请退款成功后钱会退回钱包中,用户也可以申请提现把钱提到银行卡中 用程序实现如下api接口 1. 查询用户钱包余额 2. 用户消费100元的接口 3. 用户退款20元接口 4. 查询用户钱包金额变动明细的接口 #### 题目如下: ### 业务目标: - 1. 用户金额需要得到保障 - 1. 用户出入帐记录 - 1. 用户体现 #### 技术目标: - 1、水平扩展服务 - 2、要保证钱数的出入帐一致 - 3、服务质量保证 #### 设计思路: - 1、设计到俩张表分别为:钱包金额明细表、账单表 - 2、金额明细表用于维护用户的余额,包括总收入、总支出 - 3、账单表维护钱包出入账记录管理 #### 场景实现: 购买商品: - 用户下订单 -->在线支付订单成功 -->写入一条重置记录type=100,一条用户支出记录type=-20,一条收款记录type=1 -->告诉订单支付成功,检查无误,回调钱包服务,可以操作票款了 -->钱包更改以上三条记录的状态,同时修改各用户钱包的余额 - 提现: 用户发起取现请求 -->创建一笔支出单type=-2 -->检查无误确认提现 -->在线打款成功 -->修改支出单状态,修改用户余额 具体实现见代码