package com.ruoyi.procurementrecord.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.procurementrecord.mapper.ProductDetailsMapper; import com.ruoyi.procurementrecord.pojo.ProductDetails; import com.ruoyi.procurementrecord.service.IProductDetailsService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class ProductDetailsServiceImpl extends ServiceImpl implements IProductDetailsService { private final ProductDetailsMapper productDetailsMapper; @Override public IPage listPage(Page page, ProductDetails productDetails) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (productDetails != null) { Map paramMap = BeanUtil.beanToMap(productDetails, false, true); queryWrapper.allEq(paramMap); } return productDetailsMapper.selectPage(page, queryWrapper); } @Override public boolean addOrUpdate(ProductDetails productDetails) { if (productDetails == null) return false; LocalDateTime now = LocalDateTime.now(); boolean isUpdate = productDetails.getId() != null; if (!isUpdate) { // 新增 productDetails.setCreateTime(now); return productDetailsMapper.insert(productDetails) > 0; } else { // 更新 if (productDetailsMapper.selectById(productDetails.getId()) == null) { return false; } productDetails.setUpdateTime(now); return productDetailsMapper.updateById(productDetails) > 0; } } @Override public boolean deleteByIds(List ids) { return productDetailsMapper.deleteBatchIds(ids) > 0; } }