Files
tyapi-server/可开票金额计算逻辑更新说明.md
2025-08-02 02:54:21 +08:00

102 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 可开票金额计算逻辑更新说明
## 更新概述
本次更新修改了可开票金额的计算逻辑,从原来的"总充值金额 - 总赠送金额"改为"支付宝充值金额 + 对公转账金额"。
## 修改内容
### 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. 监控生产环境的可开票金额计算