package com.qianwen.smartman.modules.dnc.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.mp.base.BaseServiceImpl;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.smartman.modules.dnc.convert.DncArtProductConvert;
|
import com.qianwen.smartman.modules.dnc.entity.DncArtProduct;
|
import com.qianwen.smartman.modules.dnc.mapper.DncArtProductMapper;
|
import com.qianwen.smartman.modules.dnc.service.IDncArtProductService;
|
import com.qianwen.smartman.modules.dnc.vo.DncArtProductVO;
|
|
@Service
|
public class DncArtProductServiceImpl extends BaseServiceImpl<DncArtProductMapper, DncArtProduct> implements IDncArtProductService {
|
|
@Override // org.springblade.modules.dnc.service.IDncArtProductService
|
@Transactional(rollbackFor = {Exception.class})
|
public List<DncArtProductVO> addDncArtProduct(List<DncArtProductVO> artProductVOList) {
|
artProductVOList.forEach(artProductVO -> {
|
Long productId = artProductVO.getProductId();
|
Long artBagId = artProductVO.getArtBagId();
|
Long productTypeId = artProductVO.getProductTypeId();
|
if (checkRepetition(artBagId, productTypeId, productId)) {
|
throw new ServiceException(MessageUtils.message("dnc.art.bag.already.relation.product", new Object[0]));
|
}
|
});
|
List<DncArtProduct> dncArtProducts = DncArtProductConvert.INSTANCE.convertVOList(artProductVOList);
|
saveBatch(dncArtProducts);
|
return DncArtProductConvert.INSTANCE.convert(dncArtProducts);
|
}
|
|
@Override // org.springblade.modules.dnc.service.IDncArtProductService
|
public List<DncArtProductVO> relatedProducts(String artBagId) {
|
List<DncArtProduct> list = list(Wrappers.<DncArtProduct>lambdaQuery().eq(DncArtProduct::getArtBagId, artBagId));
|
/*
|
List<DncArtProduct> list = list((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getArtBagId();
|
}, artBagId));*/
|
if (Func.isNotEmpty(list)) {
|
return DncArtProductConvert.INSTANCE.convert(list);
|
}
|
return new ArrayList<>();
|
}
|
|
private boolean checkRepetition(Long artBagId, Long productTypeId, Long productId) {
|
DncArtProduct one = getOne(Wrappers.<DncArtProduct>lambdaQuery().eq(DncArtProduct::getArtBagId, artBagId)
|
.eq(DncArtProduct::getProductTypeId, productTypeId)
|
.eq(DncArtProduct::getProductId, productId));
|
return one != null;
|
}
|
}
|