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.ChannelSupermarket;
|
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.ChannelSupermarketMapper;
|
import com.nova.sankuai.infra.mapper.LoanSupermarketMapper;
|
import com.nova.sankuai.service.IChannelSupermarketService;
|
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 ChannelSupermarketServiceImpl extends ServiceImpl<ChannelSupermarketMapper, ChannelSupermarket> implements IChannelSupermarketService {
|
|
private final LoanSupermarketMapper loanSupermarketMapper;
|
|
private final ChannelInfoMapper channelInfoMapper;
|
|
private final ChannelSupermarketMapper channelSupermarketMapper;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void saveByChannel(Long channelId) {
|
LambdaQueryWrapper<LoanSupermarket> loanSupermarketWrapper = new LambdaQueryWrapper<>();
|
loanSupermarketWrapper.eq(LoanSupermarket::getDeleteFlag, 0);
|
List<LoanSupermarket> loanSupermarkets = loanSupermarketMapper.selectList(loanSupermarketWrapper);
|
List<ChannelSupermarket> addList = new ArrayList<>();
|
for (LoanSupermarket loanSupermarket : loanSupermarkets) {
|
ChannelSupermarket channelSupermarket = new ChannelSupermarket();
|
channelSupermarket.setChannelId(channelId);
|
channelSupermarket.setSupermarketId(loanSupermarket.getId());
|
channelSupermarket.setEnableFlag(loanSupermarket.getEnableFlag());
|
channelSupermarket.setIsFeatured(loanSupermarket.getIsFeatured());
|
channelSupermarket.setIsTimeLimit(loanSupermarket.getIsTimeLimit());
|
addList.add(channelSupermarket);
|
}
|
if (addList.size() > 0) {
|
channelSupermarketMapper.batchSave(addList);
|
}
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void saveBySupermarket(LoanSupermarket loanMarket) {
|
LambdaQueryWrapper<ChannelInfo> channelInfoWrapper = new LambdaQueryWrapper<>();
|
channelInfoWrapper.eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT);
|
List<ChannelInfo> channelInfos = channelInfoMapper.selectList(channelInfoWrapper);
|
List<ChannelSupermarket> addList = new ArrayList<>();
|
for (ChannelInfo channelInfo : channelInfos) {
|
ChannelSupermarket channelSupermarket = new ChannelSupermarket();
|
channelSupermarket.setChannelId(channelInfo.getId());
|
channelSupermarket.setSupermarketId(loanMarket.getId());
|
channelSupermarket.setEnableFlag(loanMarket.getEnableFlag());
|
channelSupermarket.setIsFeatured(loanMarket.getIsFeatured());
|
channelSupermarket.setIsTimeLimit(loanMarket.getIsTimeLimit());
|
addList.add(channelSupermarket);
|
}
|
if (addList.size() > 0) {
|
channelSupermarketMapper.batchSave(addList);
|
}
|
}
|
|
@Override
|
public void editChannelLoanMarket(ChannelLoanMarketDto channelLoanMarketDto) {
|
ChannelSupermarket channelSupermarket = lambdaQuery()
|
.eq(ChannelSupermarket::getChannelId, channelLoanMarketDto.getChannelId())
|
.eq(ChannelSupermarket::getSupermarketId, channelLoanMarketDto.getLoanMarkId()).one();
|
if (channelSupermarket == null) {
|
throw new CommonException("该渠道贷超配置不存在");
|
}
|
channelSupermarket.setIsTimeLimit(channelLoanMarketDto.getIsTimeLimit());
|
channelSupermarket.setIsFeatured(channelLoanMarketDto.getIsFeatured());
|
channelSupermarket.setEnableFlag(channelLoanMarketDto.getEnableFlag());
|
updateById(channelSupermarket);
|
}
|
|
@Override
|
public void copyChannel(Long targetId, Long sourceId) {
|
List<ChannelSupermarket> supermarketList = lambdaQuery().eq(ChannelSupermarket::getChannelId, sourceId).list();
|
List<ChannelSupermarket> addList = new ArrayList<>();
|
for (ChannelSupermarket loanSupermarket : supermarketList) {
|
loanSupermarket.setId(null);
|
loanSupermarket.setChannelId(targetId);
|
addList.add(loanSupermarket);
|
}
|
if (addList.size() > 0) {
|
channelSupermarketMapper.batchCopy(addList);
|
}
|
}
|
|
@Override
|
public void editByLoanMarket(LoanSupermarket loanSupermarketDb) {
|
channelSupermarketMapper.batchUpdateByMarket(loanSupermarketDb);
|
}
|
}
|