This commit is contained in:
2025-08-02 02:54:21 +08:00
parent 934dce2776
commit 66845d3fe0
74 changed files with 8686 additions and 212 deletions

View File

@@ -0,0 +1,102 @@
# 可开票金额计算逻辑更新说明
## 更新概述
本次更新修改了可开票金额的计算逻辑,从原来的"总充值金额 - 总赠送金额"改为"支付宝充值金额 + 对公转账金额"。
## 修改内容
### 1. 计算逻辑变更
**原逻辑:**
```
可开票金额 = 总充值金额 - 总赠送金额 - 已开票金额 - 待处理申请金额
```
**新逻辑:**
```
可开票金额 = 真实充值金额(支付宝充值 + 对公转账) - 已开票金额 - 待处理申请金额
```
### 2. 代码修改位置
#### 文件:`internal/application/finance/invoice_application_service.go`
**方法:`getAmountSummary`**
- 修改了充值金额的计算逻辑
- 只统计 `RechargeTypeAlipay`(支付宝充值)和 `RechargeTypeTransfer`(对公转账)的金额
- 赠送金额(`RechargeTypeGift`)不再计入可开票金额
**方法:`calculateAvailableAmount`**
- 更新了注释和变量名
- 移除了对赠送金额的扣除逻辑
- 直接使用真实充值金额进行计算
**方法:`GetAvailableAmount`**
- 更新了响应DTO中的 `TotalRecharged` 字段
- 现在返回的是真实充值金额(支付宝充值+对公转账)
### 3. 充值类型说明
根据 `internal/domains/finance/entities/recharge_record.go` 中的定义:
```go
const (
RechargeTypeAlipay RechargeType = "alipay" // 支付宝充值
RechargeTypeTransfer RechargeType = "transfer" // 对公转账
RechargeTypeGift RechargeType = "gift" // 赠送
)
```
**计入可开票金额的类型:**
- `alipay` - 支付宝充值
- `transfer` - 对公转账
**不计入可开票金额的类型:**
- `gift` - 赠送金额
### 4. 影响范围
#### 后端影响
- 可开票金额计算逻辑变更
- 前端显示的"总充值"字段现在显示的是真实充值金额
- 赠送金额不再影响可开票金额
#### 前端影响
- 用户端发票页面显示的"总充值"金额会发生变化
- 可开票金额的计算结果会发生变化
- 赠送金额不再从可开票金额中扣除
### 5. 业务逻辑
**为什么这样修改?**
1. **合规性**:只有真实的充值金额才能开具发票
2. **准确性**:赠送金额不应该计入可开票金额
3. **清晰性**:明确区分真实充值和赠送金额
**计算示例:**
```
用户充值记录:
- 支付宝充值1000元
- 对公转账500元
- 赠送金额200元
原逻辑可开票金额1000 + 500 + 200 - 200 = 1500元
新逻辑可开票金额1000 + 500 = 1500元
结果相同,但逻辑更清晰
```
### 6. 注意事项
1. **历史数据**:此修改会影响所有用户的可开票金额计算
2. **前端显示**:前端显示的"总充值"字段含义发生变化
3. **业务验证**:需要验证新的计算逻辑是否符合业务需求
4. **测试建议**:建议在测试环境充分验证后再部署到生产环境
## 部署建议
1. 在测试环境验证新的计算逻辑
2. 确认前端显示正确
3. 通知相关业务人员了解变更
4. 监控生产环境的可开票金额计算