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<H5ChannelLoanMarketMapper, H5ChannelLoanMarket> 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<LoanSupermarket> loanSupermarketWrapper = new LambdaQueryWrapper<>();
|
loanSupermarketWrapper.eq(LoanSupermarket::getDeleteFlag, 0);
|
List<LoanSupermarket> loanSupermarkets = loanSupermarketMapper.selectList(loanSupermarketWrapper);
|
List<H5ChannelLoanMarket> 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<ChannelInfo> channelInfoWrapper = new LambdaQueryWrapper<>();
|
channelInfoWrapper.eq(ChannelInfo::getType, ChannelInfo.TYPE_IMPORT);
|
List<ChannelInfo> channelInfos = channelInfoMapper.selectList(channelInfoWrapper);
|
List<H5ChannelLoanMarket> 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<H5ChannelLoanMarket> supermarketList = lambdaQuery().eq(H5ChannelLoanMarket::getChannelId, sourceId).list();
|
List<H5ChannelLoanMarket> 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);
|
}
|
}
|