| 1234567891011121314151617181920212223242526272829303132333435363738 |
- <?php
- namespace App\Module\Fund\Validators;
- use App\Module\Fund\Enums\FUND_TYPE;
- use App\Module\Fund\Services\FundService;
- use UCore\Validator;
- class CheckUserFund extends Validator
- {
- /**
- * @param mixed $value
- * @param array $data
- * @return bool
- * 验证用户余额是否充足
- */
- public function validate(mixed $value, array $data): bool
- {
- $map = [
- 1 => FUND_TYPE::FUND1->value,
- 2 => FUND_TYPE::USD->value,
- 3 => FUND_TYPE::BNB->value
- ];
- $fundId = $map[$data['coinType']];
- // 操作资金
- $amount = $data['amount'] * 10000000;
- // 矿工费
- $miner = \App\Module\App\Service\FundService::getMiner($data['coinType'], $amount);
- $service = new FundService($data['userId'], $fundId);
- if ($service->balance() < ($amount + $miner)) {
- return false;
- }
- return true;
- }
- }
|