当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Core knowledge of C + + 11-17 template (2) -- class template
- Copy on write collection -- copyonwritearraylist
- 20201108编程练习——练习3
- Initial installation of linx7.5
- EasyNTS上云网关设备在雪亮工程项目中的实战应用
- OpenGL ES 框架详细解析(八) —— OpenGL ES 设计指南
- Adding OpenGL form to MFC dialog
- In 2020, what are the best tools for Android developers to break the cold winter?
- 卧槽,这年轻人不讲武德,应届生凭“小抄”干掉5年老鸟,成功拿到字节20Koffer
- Have you ever thought about why the transaction and refund have to be split into different tables
猜你喜欢
3.你知道计算机是如何启动的吗?
A brief introduction of C code to open or close the firewall example
Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
Commodity management system -- integrate warehouse services and obtain warehouse list
操作系统之bios
A few lines of code can easily transfer traceid across systems, so you don't have to worry about losing the log!
Concurrent linked queue: a non blocking unbounded thread safe queue
Apache Iceberg 中三种操作表的方式
In 2020, what are the best tools for Android developers to break the cold winter?
Application of cloud gateway equipment on easynts in Xueliang project
随机推荐
The vowels in the inverted string of leetcode
In 2020, what are the best tools for Android developers to break the cold winter?
Leetcode-15: sum of three numbers
From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?
This program cannot be started because msvcp120.dll is missing from your computer. Try to install the program to fix the problem
Commodity management system -- integrate warehouse services and obtain warehouse list
写时复制集合 —— CopyOnWriteArrayList
商品管理系统——整合仓库服务以及获取仓库列表
14. Introduction to kubenetes
图节点分类与消息传递 - 知乎
C / C + + Programming Notes: pointer! Understand pointer from memory, let you understand pointer completely
linx7.5 初始安装
Android emulator error: x86 emulation currently requires hardware acceleration的解决方案
23 pictures, take you to the recommended system
How does semaphore, a thread synchronization tool that uses an up counter, look like?
Introduction to nmon
华为HCIA笔记
How to get started with rabbitmq
2 普通模式