package cn.fw.valhalla.service.data.impl; import cn.fw.valhalla.dao.mapper.PublicPoolMapper; import cn.fw.valhalla.domain.db.pool.PublicPool; import cn.fw.valhalla.domain.dto.PublicPoolDTO; import cn.fw.valhalla.domain.dto.PublicPoolReportDTO; import cn.fw.valhalla.domain.dto.PublicPoolReportQueryDTO; import cn.fw.valhalla.domain.query.PublicPoolQueryVO; import cn.fw.valhalla.service.data.PublicPoolService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; /** * @author : kurisu * @className : PublicPoolServiceImpl * @description : 公共池 * @date: 2020-08-12 11:22 */ @Slf4j @Service public class PublicPoolServiceImpl extends ServiceImpl implements PublicPoolService { @Override public PublicPool queryByVin(final String vin, final Long groupId) { return getOne(Wrappers.lambdaQuery() .eq(PublicPool::getGroupId, groupId) .eq(PublicPool::getFrameNo, vin) .last("limit 1") ); } @Transactional(rollbackFor = Exception.class) @Override public void removeByCustomerId(Long customerId, Long groupId) { remove(Wrappers.lambdaQuery() .eq(PublicPool::getCustomerId, customerId) .eq(PublicPool::getGroupId, groupId) ); } @Transactional(rollbackFor = Exception.class) @Override public void removeByVin(final String vin, final Long groupId) { remove(Wrappers.lambdaQuery() .eq(PublicPool::getFrameNo, vin) .eq(PublicPool::getGroupId, groupId) ); } @Override @Transactional(rollbackFor = Exception.class) public void removeBatchByVin(final List vinList, final Long groupId) { if (CollectionUtils.isEmpty(vinList)) { return; } remove(Wrappers.lambdaQuery() .in(PublicPool::getFrameNo, vinList) .eq(PublicPool::getGroupId, groupId) ); } @Override public List publicList(PublicPoolQueryVO queryVO) { Integer current = queryVO.getCurrent(); Integer pageSize = queryVO.getPageSize(); Integer startIndex = (current - 1) * pageSize; return Optional.ofNullable(getBaseMapper().publicList(startIndex, pageSize, queryVO)).orElse(new ArrayList<>()); } @Override public Long publicListCount(PublicPoolQueryVO queryVO) { return Optional.ofNullable(getBaseMapper().publicListCount(queryVO)).orElse(0L); } @Override public List queryIdListByShops(final List shopIds) { if (CollectionUtils.isEmpty(shopIds)) { return Collections.emptyList(); } // mybatis plus 性能有问题 不使用 return Optional.ofNullable(this.getBaseMapper().queryIdListByShops(shopIds)).orElse(Collections.emptyList()); } @Override public List countPublicPoolList(PublicPoolReportQueryDTO dto) { return Optional.ofNullable(this.getBaseMapper().countPublicPoolList(dto)).orElse(Collections.emptyList()); } }