当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
- Finally, the python project is released as exe executable program process
- 【QT】子类化QThread实现多线程
- Save code
- For the first time open CSDN, this article is for the past self and what is happening to you
- From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
- Leetcode-15: sum of three numbers
- OSChina 周一乱弹 —— 程序媛的青春
- 14. Introduction to kubenetes
- C++邻接矩阵
猜你喜欢

From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
![[Python from zero to one] 5. Detailed explanation of beautiful soup basic syntax of web crawler](/img/e8/dd70ddf3c2027907f64674676d676e.jpg)
[Python from zero to one] 5. Detailed explanation of beautiful soup basic syntax of web crawler

Five indispensable open source tools for me

Start learning discrete mathematics again

14. Introduction to kubenetes

How to do thread dump analysis in Windows Environment
![[Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解](/img/e8/dd70ddf3c2027907f64674676d676e.jpg)
[Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

How does semaphore, a thread synchronization tool that uses an up counter, look like?

几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!

如何通过Sidecar自定义资源减少Istio代理资源消耗
随机推荐
梁老师小课堂|谈谈模板方法模式
服务网格仍然很难 - cncf
Bifrost 之 文件队列(一)
20201108编程练习——练习3
Commodity management system -- the search function of SPU
object
Service grid is still difficult - CNCF
当我们聊数据质量的时候,我们在聊些什么?
2020,Android开发者打破寒冬的利器是什么?
Windows环境下如何进行线程Dump分析
3.你知道计算机是如何启动的吗?
第五章编程
The whole process of building a fully distributed cluster
EasyNTS上云网关设备在雪亮工程项目中的实战应用
WordPress Import 上传的文件尺寸超过php.ini中定义的upload_max_filesize值--&gt;解决方法。
Huawei HCIA notes
通过canvas获取视频第一帧封面图
From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
Operation 2020.11.7-8
Linked blocking queue based on linked list