当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Linked blocking queue based on linked list
- The difference between GDI and OpenGL
- android开发中提示:requires permission android.permission write_settings解决方法
- centos7下安装iperf时出现 make: *** No targets specified and no makefile found. Stop.的解决方案
- Have you ever thought about why the transaction and refund have to be split into different tables
- From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
- 商品管理系统——整合仓库服务以及获取仓库列表
- Copy on write collection -- copyonwritearraylist
- When we talk about data quality, what are we talking about?
- 对象
猜你喜欢
How to do thread dump analysis in Windows Environment
Leetcode-15: sum of three numbers
Talk about my understanding of FAAS with Alibaba cloud FC
搭建全分布式集群全过程
Copy on write collection -- copyonwritearraylist
[QT] subclass qthread to realize multithreading
Three ways to operate tables in Apache iceberg
Programmers should know the URI, a comprehensive understanding of the article
A solution to the problem that color picker (palette) cannot use shortcut keys in sublime Text3 plug-in
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
随机推荐
C++之异常捕获和处理
Introduction to nmon
When we talk about data quality, what are we talking about?
Detailed analysis of OpenGL es framework (8) -- OpenGL es Design Guide
A brief introduction of C code to open or close the firewall example
A solution to the problem that color picker (palette) cannot use shortcut keys in sublime Text3 plug-in
如何通过Sidecar自定义资源减少Istio代理资源消耗
14. Introduction to kubenetes
Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
[Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解
The difference between GDI and OpenGL
梁老师小课堂|谈谈模板方法模式
Apache Iceberg 中三种操作表的方式
2 普通模式
Windows环境下如何进行线程Dump分析
Several common playing methods of sub database and sub table and how to solve the problem of cross database query
程序员的十年之痒
写时复制集合 —— CopyOnWriteArrayList
How does FC game console work?
The vowels in the inverted string of leetcode