package com.by4cloud.platformx.device.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.by4cloud.platformx.device.entity.Contract; import com.by4cloud.platformx.device.entity.ContractItem; import com.by4cloud.platformx.device.mapper.ContractItemMapper; import com.by4cloud.platformx.device.mapper.ContractMapper; import com.by4cloud.platformx.device.service.ContractService; import org.springframework.stereotype.Service; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.transaction.annotation.Transactional; import lombok.RequiredArgsConstructor; import java.util.Objects; /** * 合同表 * * @author pig * @date 2025-03-13 10:20:35 */ @Service @RequiredArgsConstructor public class ContractServiceImpl extends ServiceImpl implements ContractService { private final ContractItemMapper contractItemMapper; @Override @Transactional(rollbackFor = Exception.class) public Boolean saveDeep(Contract contract) { baseMapper.insert(contract); for (ContractItem contractItem : contract.getContractItemList()) { contractItem.setContractId(contract.getId()); contractItemMapper.insert( contractItem); } return Boolean.TRUE; } @Override @Transactional(rollbackFor = Exception.class) public Boolean updateDeep(Contract contract) { baseMapper.updateById(contract); for (ContractItem contractItem : contract.getContractItemList()) { if (Objects.isNull(contractItem.getId())) { contractItem.setContractId(contract.getId()); contractItemMapper.insert(contractItem); } else { contractItemMapper.updateById(contractItem); } } return Boolean.TRUE; } @Override @Transactional(rollbackFor = Exception.class) public Boolean removeDeep(Long[] ids) { baseMapper.deleteBatchIds(CollUtil.toList(ids)); contractItemMapper.delete(Wrappers.lambdaQuery().in(ContractItem::getContractId, ids)); return Boolean.TRUE; } @Override @Transactional(rollbackFor = Exception.class) public Boolean removeChild(Long[] ids) { contractItemMapper.deleteBatchIds(CollUtil.toList(ids)); return Boolean.TRUE; } }