| | |
| | | import com.ruoyi.account.api.vo.ChargingCardAllocateVO; |
| | | import com.ruoyi.account.api.vo.ChargingCardDeductVO; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | public interface TChargingCardService extends IService<TChargingCard> { |
| | |
| | | List<String> listDeductedOrderCodes(List<String> orderCodes); |
| | | |
| | | /** |
| | | * 锁定卡片账户余额(刷卡充电申请,分配模式实扣冻结:余额立即扣减并计入锁定金额)。 |
| | | * |
| | | * @param cardId 卡片ID |
| | | * @param amount 锁定金额(大于0) |
| | | * @return 锁定后剩余可用余额;余额不足时抛出业务异常 |
| | | */ |
| | | BigDecimal lockBalance(Long cardId, BigDecimal amount); |
| | | |
| | | /** |
| | | * 结算卡片账户余额(解锁锁定额并按实际消费扣减,允许扣成负数)。 |
| | | * 与旧扣款接口共用「订单号+change_type=3」唯一键幂等;lockedAmount 为空时等价于仅按实扣金额扣减, |
| | | * 兼容历史无锁定额订单。 |
| | | * |
| | | * @return 结算结果;duplicated=true 表示该订单此前已结算,本次未重复结算 |
| | | */ |
| | | ChargingCardDeductVO settleBalanceForCharging(ChargingCardDeductDTO dto); |
| | | |
| | | /** |
| | | * 释放卡片锁定金额(未产生消费/订单回滚时使用)。 |
| | | * |
| | | * @param cardId 卡片ID |
| | | * @param amount 释放金额(大于0) |
| | | * @return 释放后可用余额 |
| | | */ |
| | | BigDecimal unlockBalance(Long cardId, BigDecimal amount); |
| | | |
| | | /** |
| | | * 按公司查询未删除的卡片列表(公司详情-充电用户信息聚合使用) |
| | | */ |
| | | List<TChargingCard> listByCompany(Integer companyId); |