puzhibing
2026-09-29 a70433b2ee5bb37823ab73422a01251343cb5f58
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java
@@ -13,6 +13,7 @@
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> {
@@ -89,6 +90,33 @@
    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);