| | |
| | | if (usable.compareTo(ZERO_AMOUNT) <= 0) { |
| | | return VinChargeContext.fail(3, "账户可用余额为0 accountMode=" + accountMode + " companyId=" + companyId); |
| | | } |
| | | BigDecimal dispatch = authorization == null ? null : authorization.getDispatchAmount(); |
| | | BigDecimal dispatch; |
| | | if (accountMode == ACCOUNT_MODE_ALLOCATED) { |
| | | // 分配模式:直接下发 VIN 账户余额,不再受公司充电下发金额限制 |
| | | dispatch = usable; |
| | | } else { |
| | | dispatch = authorization == null ? null : authorization.getDispatchAmount(); |
| | | if (dispatch == null || dispatch.compareTo(ZERO_AMOUNT) <= 0) { |
| | | dispatch = VD_DEFAULT_DISPATCH_AMOUNT; |
| | | } |
| | | if (dispatch.compareTo(usable) > 0) { |
| | | dispatch = usable; |
| | | } |
| | | } |
| | | return VinChargeContext.ok(accountMode, dispatch, maxEndTime); |
| | | } |
| | | |