package com.ruoyi.account.service;
|
|
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;
|
|
public interface TChargingCardService extends IService<TChargingCard> {
|
|
IPage<TChargingCard> selectCardPage(ChargingCardQueryDTO query);
|
|
boolean saveCard(ChargingCardSaveDTO dto);
|
|
boolean updateCard(ChargingCardSaveDTO dto);
|
|
boolean deleteCards(List<Long> ids);
|
|
boolean updateStatus(ChargingCardStatusDTO dto);
|
|
boolean updateBalance(ChargingCardBalanceDTO dto);
|
|
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);
|
|
/**
|
* 批量查询已经成功写入充电扣款流水的订单号。
|
*/
|
List<String> listDeductedOrderCodes(List<String> orderCodes);
|
}
|