From 4a5e1477afc559cf870b34e4693f41d85e9580d1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 09 九月 2026 15:39:35 +0800
Subject: [PATCH] 新增加VIN充电和刷卡充电业务逻辑

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java
index 1e89501..bbdfb8f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TChargingCardService.java
@@ -2,12 +2,15 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.api.dto.ChargingCardAuthDTO;
 import com.ruoyi.account.api.dto.ChargingCardBalanceDTO;
+import com.ruoyi.account.api.dto.ChargingCardDeductDTO;
 import com.ruoyi.account.api.dto.ChargingCardExcelDTO;
 import com.ruoyi.account.api.dto.ChargingCardQueryDTO;
 import com.ruoyi.account.api.dto.ChargingCardSaveDTO;
 import com.ruoyi.account.api.dto.ChargingCardStatusDTO;
 import com.ruoyi.account.api.model.TChargingCard;
+import com.ruoyi.account.api.vo.ChargingCardDeductVO;
 
 import java.util.List;
 
@@ -28,4 +31,31 @@
     List<ChargingCardExcelDTO> selectExportList(ChargingCardQueryDTO query);
 
     String importCards(List<ChargingCardExcelDTO> cards);
+
+    /**
+     * 刷卡启动鉴权(内部接口)。
+     * 条件密码校验(V0.2 定稿):卡片配置了密码时校验设备上报密码;未配置密码时不校验。
+     *
+     * @param dto 卡号与设备上报密码
+     * @return 鉴权通过返回卡片实体(不包含密码密文);失败抛出 ServiceException 携带原因
+     */
+    TChargingCard verifyCardForCharging(ChargingCardAuthDTO dto);
+
+    /**
+     * 锁定卡片为充电中(刷卡订单创建成功后调用)。同卡已有进行中订单时返回 false。
+     */
+    boolean lockCardForCharging(Long cardId, String orderCode);
+
+    /**
+     * 解锁卡片(订单终态后调用)。带订单号比对,幂等:已解锁或订单号不匹配时返回 false。
+     */
+    boolean unlockCardForCharging(Long cardId, String orderCode);
+
+    /**
+     * 刷卡订单最终结算扣款(内部接口)。
+     * 幂等(订单号为幂等键)+ 允许扣成负余额(V0.2 定稿)。
+     *
+     * @return 扣款结果;duplicated=true 表示该订单此前已扣款,本次未重复扣款
+     */
+    ChargingCardDeductVO deductBalanceForCharging(ChargingCardDeductDTO dto);
 }

--
Gitblit v1.7.1