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<FuelCardRechargeMapper, FuelCardRecharge> implements IFuelCardRechargeService {
|
|
@Autowired
|
private FuelCardMapper fuelCardMapper;
|
|
@Override
|
public IPage<FuelCardRecharge> selectRechargePage(Page<FuelCardRecharge> 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);
|
}
|
}
|
}
|
}
|