package com.nova.sankuai.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nova.sankuai.domain.dto.ChannelLoanMarketDto; import com.nova.sankuai.domain.entity.ChannelInfo; import com.nova.sankuai.domain.entity.H5ChannelLoanMarket; import com.nova.sankuai.domain.entity.LoanSupermarket; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.mapper.ChannelInfoMapper; import com.nova.sankuai.infra.mapper.H5ChannelLoanMarketMapper; import com.nova.sankuai.infra.mapper.LoanSupermarketMapper; import com.nova.sankuai.service.IH5ChannelLoanMarketService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * @author weikangdi * @create 2021/12/27 */ @Service @AllArgsConstructor public class H5ChannelLoanMarketServiceImpl extends ServiceImpl implements IH5ChannelLoanMarketService { private final LoanSupermarketMapper loanSupermarketMapper; private final ChannelInfoMapper channelInfoMapper; private final H5ChannelLoanMarketMapper h5ChannelLoanMarketMapper; @Override @Transactional(rollbackFor = Exception.class) public void saveByChannel(Long channelId) { LambdaQueryWrapper loanSupermarketWrapper = new LambdaQueryWrapper<>(); loanSupermarketWrapper.eq(LoanSupermarket::getDeleteFlag, 0); List loanSupermarkets = loanSupermarketMapper.selectList(loanSupermarketWrapper); List addList = new ArrayList<>(); for (LoanSupermarket loanSupermarket : loanSupermarkets) { H5ChannelLoanMarket h5ChannelLoanMarket = new H5ChannelLoanMarket(); h5ChannelLoanMarket.setChannelId(channelId); h5ChannelLoanMarket.setSupermarketId(loanSupermarket.getId()); h5ChannelLoanMarket.setEnableFlag(loanSupermarket.getEnableFlag()); h5ChannelLoanMarket.setIsFeatured(loanSupermarket.getIsFeatured()); h5ChannelLoanMarket.setIsTimeLimit(loanSupermarket.getIsTimeLimit()); addList.add(h5ChannelLoanMarket); } if (addList.size() > 0) { h5ChannelLoanMarketMapper.batchSave(addList); } } @Override @Transactional(rollbackFor = Exception.class) public void saveBySupermarket(LoanSupermarket loanMarket) { LambdaQueryWrapper channelInfoWrapper = new LambdaQueryWrapper<>(); channelInfoWrapper.eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT); List channelInfos = channelInfoMapper.selectList(channelInfoWrapper); List addList = new ArrayList<>(); for (ChannelInfo channelInfo : channelInfos) { H5ChannelLoanMarket h5ChannelLoanMarket = new H5ChannelLoanMarket(); h5ChannelLoanMarket.setChannelId(channelInfo.getId()); h5ChannelLoanMarket.setSupermarketId(loanMarket.getId()); h5ChannelLoanMarket.setEnableFlag(loanMarket.getEnableFlag()); h5ChannelLoanMarket.setIsFeatured(loanMarket.getIsFeatured()); h5ChannelLoanMarket.setIsTimeLimit(loanMarket.getIsTimeLimit()); addList.add(h5ChannelLoanMarket); } if (addList.size() > 0) { h5ChannelLoanMarketMapper.batchSave(addList); } } @Override public void editH5LoanMarket(ChannelLoanMarketDto channelLoanMarketDto) { H5ChannelLoanMarket h5ChannelLoanMarket = lambdaQuery() .eq(H5ChannelLoanMarket::getChannelId, channelLoanMarketDto.getChannelId()) .eq(H5ChannelLoanMarket::getSupermarketId, channelLoanMarketDto.getLoanMarkId()).one(); if (h5ChannelLoanMarket == null) { throw new CommonException("该渠道贷超配置不存在"); } h5ChannelLoanMarket.setIsTimeLimit(channelLoanMarketDto.getIsTimeLimit()); h5ChannelLoanMarket.setIsFeatured(channelLoanMarketDto.getIsFeatured()); h5ChannelLoanMarket.setEnableFlag(channelLoanMarketDto.getEnableFlag()); updateById(h5ChannelLoanMarket); } @Override public void copyChannel(Long targetId, Long sourceId) { List supermarketList = lambdaQuery().eq(H5ChannelLoanMarket::getChannelId, sourceId).list(); List addList = new ArrayList<>(); for (H5ChannelLoanMarket loanSupermarket : supermarketList) { loanSupermarket.setId(null); loanSupermarket.setChannelId(targetId); addList.add(loanSupermarket); } if (addList.size() > 0) { h5ChannelLoanMarketMapper.batchCopy(addList); } } @Override public void editByLoanMarket(LoanSupermarket loanSupermarketDb) { h5ChannelLoanMarketMapper.batchUpdateByMarket(loanSupermarketDb); } }