package com.ruoyi.vehicle.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.vehicle.mapper.FuelCardMapper; import com.ruoyi.vehicle.mapper.FuelCardRechargeMapper; import com.ruoyi.vehicle.pojo.FuelCard; import com.ruoyi.vehicle.pojo.FuelCardRecharge; import com.ruoyi.vehicle.service.IFuelCardRechargeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class FuelCardRechargeServiceImpl extends ServiceImpl implements IFuelCardRechargeService { @Autowired private FuelCardMapper fuelCardMapper; @Override public IPage selectRechargePage(Page page, Long cardId) { return baseMapper.selectRechargePage(page, cardId); } @Override @Transactional(rollbackFor = Exception.class) public void addRecharge(FuelCardRecharge recharge) { // 保存充值记录 recharge.setDelFlag("0"); this.save(recharge); // 更新加油卡余额 FuelCard card = fuelCardMapper.selectById(recharge.getCardId()); if (card != null && card.getCurrentBalance() != null) { card.setCurrentBalance(card.getCurrentBalance().add(recharge.getRechargeAmount())); fuelCardMapper.updateById(card); } } @Override @Transactional(rollbackFor = Exception.class) public void deleteRecharge(Long id) { FuelCardRecharge recharge = this.getById(id); if (recharge != null && "0".equals(recharge.getDelFlag())) { // 逻辑删除 recharge.setDelFlag("2"); this.updateById(recharge); // 扣回余额 FuelCard card = fuelCardMapper.selectById(recharge.getCardId()); if (card != null && card.getCurrentBalance() != null) { card.setCurrentBalance(card.getCurrentBalance().subtract(recharge.getRechargeAmount())); fuelCardMapper.updateById(card); } } } }