diff --git a/plugins/cultural-space/src/api/IndexController.php b/plugins/cultural-space/src/api/IndexController.php index a29e73c6..bea2c147 100644 --- a/plugins/cultural-space/src/api/IndexController.php +++ b/plugins/cultural-space/src/api/IndexController.php @@ -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}");