package com.gunshi.project.ss.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.ss.entity.so.FundBudgetPageSo; import com.gunshi.project.ss.mapper.FundBudgetMapper; import com.gunshi.project.ss.model.FundBudget; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDateTime; @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class FundBudgetService extends ServiceImpl { public Page pageInfo(FundBudgetPageSo pageSo) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if(pageSo.getBudgetYear() != null){ queryWrapper.eq(FundBudget::getBudgetYear, pageSo.getBudgetYear()); } Page fundBudgetPage = baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper); return fundBudgetPage; } public boolean saveData(FundBudget fundBudget) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(FundBudget::getBudgetYear, fundBudget.getBudgetYear()); FundBudget one = baseMapper.selectOne(queryWrapper); if(one != null){ throw new IllegalArgumentException("对不起,该年度预算已存在"); } if(fundBudget.getAnnualIncomeBudget() != null && fundBudget.getAnnualExpenditureBudget() != null){ BigDecimal budget_balance = fundBudget.getAnnualIncomeBudget().subtract(fundBudget.getAnnualExpenditureBudget()); fundBudget.setBudgetBalance(budget_balance); } fundBudget.setCreateTime(LocalDateTime.now()); boolean save = save(fundBudget); return save; } public boolean updateData(FundBudget fundBudget) { FundBudget byId = getById(fundBudget.getId()); if(byId == null){ throw new IllegalArgumentException("对不起,该数据不存在"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(FundBudget::getBudgetYear, fundBudget.getBudgetYear()) .ne(FundBudget::getId, fundBudget.getId()); FundBudget one = baseMapper.selectOne(queryWrapper); if(one != null){ throw new IllegalArgumentException("对不起,该年度预算已存在"); } boolean update = updateById(fundBudget); return update; } public FundBudget getByYear(Integer year) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(FundBudget::getBudgetYear, year); FundBudget one = baseMapper.selectOne(queryWrapper); return one; } }