当前位置:网站首页>Commodity management system -- implementation of local preservation of new commodities

Commodity management system -- implementation of local preservation of new commodities

2020-11-09 08:25:54 9mctux05

One  SpuInfoServiceImpl

/**
*  Function description : Save product information 
*
* @param vo  Product information to be saved 
* @author cakin
* @date 2020/11/8
*/
@Transactional
@Override
public void saveSpuInfo(SpuSaveVo vo) {
    // 1  preservation spu essential information  pms_spu_info
    SpuInfoEntity infoEntity = new SpuInfoEntity();
    BeanUtils.copyProperties(vo, infoEntity);
    infoEntity.setCreateTime(new Date());
    infoEntity.setUpdateTime(new Date());
    this.saveBaseSpuInfo(infoEntity);


    // 2  preservation Spu Description of the picture  pms_spu_info_desc
    List<String> decript = vo.getDecript();
    SpuInfoDescEntity descEntity = new SpuInfoDescEntity();
    descEntity.setSpuId(infoEntity.getId());
    //  Put together a comma List Every element in 
    descEntity.setDecript(String.join(",", decript));
    spuInfoDescService.saveSpuInfoDesc(descEntity);


    // 3  preservation spu The photo collection of  pms_spu_images
    List<String> images = vo.getImages();
    imagesService.saveImages(infoEntity.getId(), images);


    // 4  preservation spu Specification parameters of  pms_product_attr_value
    List<BaseAttrs> baseAttrs = vo.getBaseAttrs();
    List<ProductAttrValueEntity> collect = baseAttrs.stream().map(attr -> {
        ProductAttrValueEntity valueEntity = new ProductAttrValueEntity();
        valueEntity.setAttrId(attr.getAttrId());
        AttrEntity id = attrService.getById(attr.getAttrId());
        valueEntity.setAttrName(id.getAttrName());
        valueEntity.setAttrValue(attr.getAttrValues());
        valueEntity.setQuickShow(attr.getShowDesc());
        valueEntity.setSpuId(infoEntity.getId());
        return valueEntity;
    }).collect(Collectors.toList());
    attrValueService.saveProductAttr(collect);


    // 5  preservation spu Integral information of ;gulimall_sms->sms_spu_bounds
    Bounds bounds = vo.getBounds();
    SpuBoundTo spuBoundTo = new SpuBoundTo();
    BeanUtils.copyProperties(bounds, spuBoundTo);
    spuBoundTo.setSpuId(infoEntity.getId());
    R r = couponFeignService.saveSpuBounds(spuBoundTo);
    if (r.getCode() != 0) {
        log.error(" Remote storage spu Integral information failed ");
    }


    // 5  Save the current spu All corresponding sku Information 
    List<Skus> skus = vo.getSkus();
    if (skus != null && skus.size() > 0) {
        //  Go through each one in turn sku
        skus.forEach(item -> {
            String defaultImg = "";
            //  Find the default image 
            for (Images image : item.getImages()) {
                if (image.getDefaultImg() == 1) {
                    defaultImg = image.getImgUrl();
                }
            }
            SkuInfoEntity skuInfoEntity = new SkuInfoEntity();
            //  Torture 
            BeanUtils.copyProperties(item, skuInfoEntity);
            //  Set other values 
            skuInfoEntity.setBrandId(infoEntity.getBrandId());
            skuInfoEntity.setCatalogId(infoEntity.getCatalogId());
            skuInfoEntity.setSaleCount(0L);
            skuInfoEntity.setSpuId(infoEntity.getId());
            skuInfoEntity.setSkuDefaultImg(defaultImg);
            // 5.1 sku Basic information of  pms_sku_info
            skuInfoService.saveSkuInfo(skuInfoEntity);
            Long skuId = skuInfoEntity.getSkuId();
            List<SkuImagesEntity> imagesEntities = item.getImages().stream().map(img -> {
                SkuImagesEntity skuImagesEntity = new SkuImagesEntity();
                skuImagesEntity.setSkuId(skuId);
                skuImagesEntity.setImgUrl(img.getImgUrl());
                skuImagesEntity.setDefaultImg(img.getDefaultImg());
                return skuImagesEntity;
            }).filter(entity -> {
                // return true Just need ,false It's to eliminate 
                return !StringUtils.isEmpty(entity.getImgUrl());
            }).collect(Collectors.toList());
            // 5.2 sku Picture information of  pms_sku_image
            skuImagesService.saveBatch(imagesEntities);
            // TODO  If there is no picture path, there is no need to save 


            List<Attr> attr = item.getAttr();
            List<SkuSaleAttrValueEntity> skuSaleAttrValueEntities = attr.stream().map(a -> {
                SkuSaleAttrValueEntity attrValueEntity = new SkuSaleAttrValueEntity();
                BeanUtils.copyProperties(a, attrValueEntity);
                attrValueEntity.setSkuId(skuId);
                return attrValueEntity;
            }).collect(Collectors.toList());
            // 5.3 sku Sales attribute information of  pms_sku_sale_attr_value
            skuSaleAttrValueService.saveBatch(skuSaleAttrValueEntities);


            // 5.4 sku Concession 、 Full minus and other information ;gulimall_sms->sms_sku_ladder\sms_sku_full_reduction\sms_member_price
            SkuReductionTo skuReductionTo = new SkuReductionTo();
            BeanUtils.copyProperties(item, skuReductionTo);
            skuReductionTo.setSkuId(skuId);
            if (skuReductionTo.getFullCount() > 0 || skuReductionTo.getFullPrice().compareTo(new BigDecimal("0")) == 1) {
                R r1 = couponFeignService.saveSkuReduction(skuReductionTo);
                if (r1.getCode() != 0) {
                    log.error(" Remote storage sku Offer information failed ");
                }
            }
        });
    }
}

Two  SkuInfoServiceImpl

/** 
*  Function description : preservation sku Information 
*
* @author cakin
* @date 2020/11/8
* @param skuInfoEntity sku Information entity class 
*/
@Override
public void saveSkuInfo(SkuInfoEntity skuInfoEntity) {
    this.baseMapper.insert(skuInfoEntity);
}

3、 ... and  ProductAttrValueServiceImpl

/** 
*  Function description : Batch save product properties 
*
* @author cakin
* @date 2020/11/8
* @param collect  Commodity attribute set 
*/
@Override
public void saveProductAttr(List<ProductAttrValueEntity> collect) {
    this.saveBatch(collect);
}

Four  SpuImagesServiceImpl

/** 
*  Function description : preservation SPU picture 
*
* @param id     SPU Of ID
* @param images  Picture list 
* @author cakin
* @date 2020/11/8
*/
@Override
public void saveImages(Long id, List<String> images) {
    if (images == null || images.size() == 0) {
    } else {
        List<SpuImagesEntity> collect = images.stream().map(img -> {
            SpuImagesEntity spuImagesEntity = new SpuImagesEntity();
            spuImagesEntity.setSpuId(id);
            spuImagesEntity.setImgUrl(img);
            return spuImagesEntity;
        }).collect(Collectors.toList());
        //  Save in bulk 
        this.saveBatch(collect);
    }
}

5、 ... and  SpuInfoDescServiceImpl

/**
*  Function description : preservation SPU Description information of  
*
* @author cakin
* @date 2020/11/8
* @param descEntity spu Information description view 
*/
@Override
public void saveSpuInfoDesc(SpuInfoDescEntity descEntity) {
    this.baseMapper.insert(descEntity);
}

 

版权声明
本文为[9mctux05]所创,转载请带上原文链接,感谢