yangys
2024-03-29 153cc3fd4ef015a8b1390b2eef3d102c5859a5e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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;
    }
}