同步 套餐/团购券 问题

This commit is contained in:
wangw 2025-04-11 09:50:59 +08:00
parent 44fc50b809
commit f87c8e3ab5
1 changed files with 19 additions and 17 deletions

View File

@ -625,27 +625,29 @@ public class ShopSyncServiceImpl implements ShopSyncService {
.list();
for (Product product : list) {
if (StrUtil.isNotBlank(product.getGroupSnap()) && product.getGroupSnap().length() > 5) {
ProductGroupVo proGroupVo = JSONObject.parseObject(product.getGroupSnap(), ProductGroupVo.class);
List<ProductGroupVo> proGroupVos = JSON.parseArray(product.getGroupSnap(), ProductGroupVo.class);
List<ProductGroupVo.Food> goodList = new ArrayList<>();
for (ProductGroupVo.Food goods : proGroupVo.getGoods()) {
if (pros.containsKey(goods.getProId())) {
if (goods.getSkuId() != null && skus.containsKey(goods.getSkuId())) {
goods.setProId(pros.get(goods.getProId()));
goods.setSkuId(skus.get(goods.getSkuId()));
} else {
goods.setProId(pros.get(goods.getProId()));
for (ProductGroupVo proGroupVo : proGroupVos) {
for (ProductGroupVo.Food goods : proGroupVo.getGoods()) {
if (pros.containsKey(goods.getProId())) {
if (goods.getSkuId() != null && skus.containsKey(goods.getSkuId())) {
goods.setProId(pros.get(goods.getProId()));
goods.setSkuId(skus.get(goods.getSkuId()));
} else {
goods.setProId(pros.get(goods.getProId()));
}
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());
}
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));
}
}
productService.saveOrUpdateBatch(list, 100);