修复:文创空间 - 文创豆提现计算到账余额错误,未修改实时费率的问题

This commit is contained in:
wuhui_zzw 2023-11-24 13:31:57 +08:00
parent e46419cd13
commit 4e84c3064f
1 changed files with 15 additions and 5 deletions

View File

@ -16,6 +16,7 @@ use Illuminate\Support\Facades\DB;
use Yunshop\Commission\models\CommissionOrder;
use Yunshop\CulturalSpace\models\ContributionBonusLog;
use Yunshop\CulturalSpace\models\ContributionLog;
use Yunshop\CulturalSpace\models\CulturalFund;
use Yunshop\CulturalSpace\models\CulturalOrderFundLog;
use Yunshop\CulturalSpace\models\CulturalSpace;
use Yunshop\ShareholderDividend\models\ShareholderDividendModel;
@ -288,24 +289,33 @@ class IndexController extends ApiController{
DB::beginTransaction();
try{
// 计算手续费和减少金额
$realityMoney = $withdrawalNumber;// 实际到账余额数量 默认为提现数量
$realityMoney = $withdrawalNumber;// 实际到账文创豆数量 默认为提现数量
$commission = (int)0;// 默认手续费
$commissionRate = (int)20;// 手续费比例
if($commissionRate > 0){
$commission = (float)sprintf("%.2f", $withdrawalNumber * (float)$commissionRate / 100);// 手续费
$realityMoney = (float)sprintf("%.2f",$realityMoney - $commission);// 实际到账余额数量
$realityMoney = (float)sprintf("%.2f",$realityMoney - $commission);// 实际到账文创豆数量
}
// 减少当前用户持有文创豆
$recordId = (new CulturalOrderFundLog())->transferHandle((int)$uid,(float)$withdrawalNumber,1,"提现到余额,手续费{$commission}",2);
$recordId = (new CulturalOrderFundLog())->transferHandle((int)$uid,(float)$withdrawalNumber,1,"提现到余额,手续费{$commission}个豆",2);
// 计算获得的实际余额
$culturalFund = CulturalFund::uniacid()->first();
$realityBalance = (float)sprintf("%.2f",$realityMoney * $culturalFund->current_fee);// 实际到账余额
$culturalFund->fund_money = $culturalFund->fund_money - $realityBalance;// 减少基金总数 实际到账数量
$culturalFund->voucher_number = $culturalFund->voucher_number - $withdrawalNumber;// 减少文创豆总数 提现数量(包括手续费)
$culturalFund->last_fee = $culturalFund->current_fee;// 当前费率 成为 上一次费率
$culturalFund->current_fee = $culturalFund->fund_money / $culturalFund->voucher_number;// 重新计算费率
$culturalFund->save();
// 增加用户余额
$data = [
'member_id' => $uid,
'remark' => "文创豆提现{$withdrawalNumber},手续费{$commission},实际到账{$realityMoney}",
'remark' => "文创豆提现{$withdrawalNumber},手续费{$commission}个豆,实际到账{$realityBalance}",
'source' => ConstService::CULTURAL_SPACE_LEGUMES,
'relation' => '',
'operator' => ConstService::OPERATOR_MEMBER,
'operator_id' => $recordId,
'change_value' => $realityMoney
'change_value' => $realityBalance
];
$result = (new BalanceChange())->income($data);
if ($result !== true) throw new ShopException("提现失败:{$result}");