package com.ruoyi.account.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.VinManagementExcelDTO; import com.ruoyi.account.api.dto.VinManagementQueryDTO; import com.ruoyi.account.api.model.TVinManagement; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.List; public interface TVinManagementMapper extends BaseMapper { IPage selectPageList(Page page, @Param("query") VinManagementQueryDTO query); List selectExportList(@Param("query") VinManagementQueryDTO query); int countByVin(@Param("vin") String vin, @Param("excludeId") Long excludeId); /** 余额原子累加(额度分配专用,null 视为 0) */ int addBalance(@Param("id") Long id, @Param("amount") BigDecimal amount, @Param("updateBy") Long updateBy); /** 原子清零余额(账户模式切换回收专用:仅当余额>0时清零,返回受影响行数,天然幂等) */ int clearBalance(@Param("id") Long id, @Param("updateBy") Long updateBy); List selectAppletVehicleList(@Param("appUserId") Long appUserId); TVinManagement selectEnabledVehicle(@Param("keyword") String keyword); int bindAppletVehicle(@Param("id") Long id, @Param("appUserId") Long appUserId); int unbindAppletVehicle(@Param("id") Long id, @Param("appUserId") Long appUserId); List selectIdsByAppUserId(@Param("appUserId") Long appUserId); /** 统计某车队下未删除的VIN车辆数(车队管理-列表"VIN码车辆数"使用) */ long countByFleet(@Param("fleetId") Integer fleetId); }