当前位置:网站首页>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:00 【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]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢
A solution to the problem that color picker (palette) cannot use shortcut keys in sublime Text3 plug-in
[Python from zero to one] 5. Detailed explanation of beautiful soup basic syntax of web crawler
Start learning discrete mathematics again
Five indispensable open source tools for me
Application of cloud gateway equipment on easynts in Xueliang project
EasyNTS上云网关设备在雪亮工程项目中的实战应用
作业2020.11.7-8
GDI 及OPENGL的区别
Web上的分享(Share)API
Initial installation of linx7.5
随机推荐
Unemployment log, November 5
Save code
如何通过Sidecar自定义资源减少Istio代理资源消耗
How does pipedrive support quality publishing with 50 + deployments per day?
Apache Iceberg 中三种操作表的方式
常见特征金字塔网络FPN及变体
Why choose f for the back end of dark website? - darklang
C++邻接矩阵
Core knowledge of C + + 11-17 template (2) -- class template
How does semaphore, a thread synchronization tool that uses an up counter, look like?
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
Operation 2020.11.7-8
Several rolling captions based on LabVIEW
centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
Why don't we use graphql? - Wundergraph
WordPress Import 上传的文件尺寸超过php.ini中定义的upload_max_filesize值--&gt;解决方法。
2.计算机硬件简介
Installation record of SAP s / 4hana 2020
第五章编程