套餐商品 实时同步
This commit is contained in:
parent
154a1a0930
commit
c7a74d04c1
|
|
@ -825,31 +825,33 @@ public class ShopSyncServiceImpl implements ShopSyncService {
|
|||
|
||||
public void syncProductPackageBySourceShop(Product product, Long pointShopId) {
|
||||
if (StrUtil.isNotBlank(product.getGroupSnap()) && product.getGroupSnap().length() > 5) {
|
||||
ProductGroupVo proGroupVo = JSONObject.parseObject(product.getGroupSnap(), ProductGroupVo.class);
|
||||
List<ProductGroupVo.Food> goodList = new ArrayList<>();
|
||||
for (ProductGroupVo.Food goods : proGroupVo.getGoods()) {
|
||||
if (goods.getProId() != null) {
|
||||
Product sourceProduct = productService.queryChain().eq(Product::getShopId, pointShopId).eq(Product::getSyncId, goods.getProId()).one();
|
||||
if (sourceProduct != null) {
|
||||
goods.setProId(sourceProduct.getId());
|
||||
goods.setProName(sourceProduct.getName());
|
||||
List<ProductGroupVo> proGroupVos = JSON.parseArray(product.getGroupSnap(), ProductGroupVo.class);
|
||||
for (ProductGroupVo proGroupVo : proGroupVos) {
|
||||
List<ProductGroupVo.Food> goodList = new ArrayList<>();
|
||||
for (ProductGroupVo.Food goods : proGroupVo.getGoods()) {
|
||||
if (goods.getProId() != null) {
|
||||
Product sourceProduct = productService.queryChain().eq(Product::getShopId, pointShopId).eq(Product::getSyncId, goods.getProId()).one();
|
||||
if (sourceProduct != null) {
|
||||
goods.setProId(sourceProduct.getId());
|
||||
goods.setProName(sourceProduct.getName());
|
||||
}
|
||||
}
|
||||
if (goods.getSkuId() != null) {
|
||||
ProdSku sourceSku = skuService.queryChain().eq(ProdSku::getShopId, pointShopId).eq(ProdSku::getSyncId, goods.getSkuId()).one();
|
||||
goods.setSkuId(sourceSku.getId());
|
||||
goods.setSkuName(sourceSku.getSpecInfo());
|
||||
}
|
||||
goodList.add(goods);
|
||||
}
|
||||
proGroupVo.setCount(goodList.size());
|
||||
proGroupVo.setGoods(goodList);
|
||||
if (proGroupVo.getNumber() != null && proGroupVo.getNumber() > 0) {
|
||||
if (proGroupVo.getNumber() > proGroupVo.getCount()) {
|
||||
proGroupVo.setNumber(proGroupVo.getCount());
|
||||
}
|
||||
}
|
||||
if (goods.getSkuId() != null) {
|
||||
ProdSku sourceSku = skuService.queryChain().eq(ProdSku::getShopId, pointShopId).eq(ProdSku::getSyncId, goods.getSkuId()).one();
|
||||
goods.setSkuId(sourceSku.getId());
|
||||
goods.setSkuName(sourceSku.getSpecInfo());
|
||||
}
|
||||
goodList.add(goods);
|
||||
}
|
||||
proGroupVo.setCount(goodList.size());
|
||||
proGroupVo.setGoods(goodList);
|
||||
if (proGroupVo.getNumber() != null && proGroupVo.getNumber() > 0) {
|
||||
if (proGroupVo.getNumber() > proGroupVo.getCount()) {
|
||||
proGroupVo.setNumber(proGroupVo.getCount());
|
||||
}
|
||||
}
|
||||
product.setGroupSnap(JSON.toJSONString(proGroupVo, JSONWriter.Feature.WriteMapNullValue));
|
||||
product.setGroupSnap(JSON.toJSONString(proGroupVos, JSONWriter.Feature.WriteMapNullValue));
|
||||
productService.saveOrUpdate(product);
|
||||
}
|
||||
}
|
||||
|
|
@ -1142,7 +1144,7 @@ public class ShopSyncServiceImpl implements ShopSyncService {
|
|||
prodConsRelationService.remove(QueryWrapper.create()
|
||||
.eq(ProdConsRelation::getShopId, shopId)
|
||||
.eq(ProdConsRelation::getProductId, product.getId()));
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
Map<Long, BigDecimal> map = list.stream().collect(Collectors.toMap(ProdConsRelation::getConsInfoId, ProdConsRelation::getSurplusStock));
|
||||
List<ConsInfo> newCons = consInfoService.queryChain()
|
||||
.in(ConsInfo::getSyncId, map.keySet()).eq(ConsInfo::getShopId, shopId).list();
|
||||
|
|
|
|||
Loading…
Reference in New Issue