当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
Several rolling captions based on LabVIEW
3.你知道计算机是如何启动的吗?
Programmers should know the URI, a comprehensive understanding of the article
Unemployment log, November 5
平台商业化能力的另一种表现形式SAAS
失业日志 11月5日
Concurrent linked queue: a non blocking unbounded thread safe queue
For the first time open CSDN, this article is for the past self and what is happening to you
C++邻接矩阵
随机推荐
C / C + + Programming Notes: pointer! Understand pointer from memory, let you understand pointer completely
Exception capture and handling in C + +
How to do thread dump analysis in Windows Environment
Linked blocking queue based on linked list
梁老师小课堂|谈谈模板方法模式
Salesforce connect & external object
BIOS of operating system
Deng Junhui's notes on data structure and algorithm learning - Chapter 9
2 普通模式
From the practice, this paper discusses the problems caused by the inconsistent design of ruby syntax.
老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”
第五章编程
通过canvas获取视频第一帧封面图
android开发中提示:requires permission android.permission write_settings解决方法
How does FC game console work?
Windows环境下如何进行线程Dump分析
The difference between GDI and OpenGL
5 个我不可或缺的开源工具
SaaS: another manifestation of platform commercialization capability
上线1周,B.Protocal已有7000ETH资产!