记得上下班打卡 | git大法好,push需谨慎

Commit e46494b9 authored by 张国柄's avatar 张国柄

~SQL:删除SKU规格调整;

parent a71ffa73
...@@ -523,7 +523,11 @@ public class GoblinStoreMgtGoodsController { ...@@ -523,7 +523,11 @@ public class GoblinStoreMgtGoodsController {
boolean diffSpecFlg = false; boolean diffSpecFlg = false;
for (GoblinGoodsSpecDto goodsSpecDto : paramSkuSpecDtoList) { for (GoblinGoodsSpecDto goodsSpecDto : paramSkuSpecDtoList) {
if (!skuSpecMap.get(goodsSpecDto.getSpecName()).equals(goodsSpecDto.getSpecVname())) { String skuSpecVname = skuSpecMap.get(goodsSpecDto.getSpecName());
if (null == skuSpecVname) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "规格无效");
}
if (!skuSpecVname.equals(goodsSpecDto.getSpecVname())) {
diffSpecFlg = true;// 多个规格中只要存在一个不一致,即可跳过,标记为允许添加 diffSpecFlg = true;// 多个规格中只要存在一个不一致,即可跳过,标记为允许添加
break; break;
} }
...@@ -549,6 +553,9 @@ public class GoblinStoreMgtGoodsController { ...@@ -549,6 +553,9 @@ public class GoblinStoreMgtGoodsController {
for (GoblinGoodsSpecVo specVo : specVoList) {// 同步添加SPU规格信息 for (GoblinGoodsSpecVo specVo : specVoList) {// 同步添加SPU规格信息
List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues(); List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues();
String paramSkuSpecVname = paramSkuSpecMap.get(specVo.getSpecName()); String paramSkuSpecVname = paramSkuSpecMap.get(specVo.getSpecName());
if (StringUtils.isBlank(paramSkuSpecVname)) {
return ResponseDto.failure(ErrorCode.HTTP_PARAM_ERROR.getCode(), "规格无效");
}
if (specValues.stream().noneMatch(r -> r.getSpecVname().equals(paramSkuSpecVname))) { if (specValues.stream().noneMatch(r -> r.getSpecVname().equals(paramSkuSpecVname))) {
specValues.add(GoblinGoodsSpecValueVo.getNew().setSpecVname(paramSkuSpecVname).setSpecVsort(specValues.size())); specValues.add(GoblinGoodsSpecValueVo.getNew().setSpecVname(paramSkuSpecVname).setSpecVsort(specValues.size()));
} }
......
...@@ -763,32 +763,27 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -763,32 +763,27 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
Map<String, String> delGoodsSkuSpecMap = goodsSkuInfoVo.getSkuSpecList().stream() Map<String, String> delGoodsSkuSpecMap = goodsSkuInfoVo.getSkuSpecList().stream()
.collect(Collectors.toMap(GoblinGoodsSpecDto::getSpecName, GoblinGoodsSpecDto::getSpecVname)); .collect(Collectors.toMap(GoblinGoodsSpecDto::getSpecName, GoblinGoodsSpecDto::getSpecVname));
LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr();
for (int i = 0; i < specVoList.size(); i++) {// 处理商品规格信息 for (int i = 0; i < specVoList.size(); i++) {// 处理商品规格信息
GoblinGoodsSpecVo specVo = specVoList.get(i); GoblinGoodsSpecVo specVo = specVoList.get(i);// 商品指定规格
List<GoblinGoodsSpecValueVo> modifySpecValues = ObjectUtil.getGoblinGoodsSpecValueVoArrayList(); List<GoblinGoodsSpecValueVo> modifySpecValues = ObjectUtil.getGoblinGoodsSpecValueVoArrayList();
String delSpecVname = delGoodsSkuSpecMap.get(specVo.getSpecName()); String delSpecVname = delGoodsSkuSpecMap.get(specVo.getSpecName());// 需要删除的SKU下指定规格的规格值
List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues(); List<GoblinGoodsSpecValueVo> specValues = specVo.getSpecValues();// 商品指定规格下所有规格值
Integer rmIdx = null; Integer rmIdx = null;
for (GoblinGoodsSpecValueVo specValue : specValues) { for (GoblinGoodsSpecValueVo specValue : specValues) {// 遍历指定规格下每个规格值
if (specValue.getSpecVname().equals(delSpecVname)) { if (specValue.getSpecVname().equals(delSpecVname)) {
modifySpecValues.remove(specValue); // modifySpecValues.remove(specValue);
rmIdx = specValue.getSpecVsort(); rmIdx = specValue.getSpecVsort();
updateGoodsSpuSpecDelObjs.add(new Object[]{spuId, specVo.getSpecName(), delSpecVname}); updateGoodsSpuSpecObjs.add(new Object[]{0, "1", spuId, specVo.getSpecName(), delSpecVname});
} else { } else {
modifySpecValues.add(specValue); modifySpecValues.add(specValue);
} }
if (null != rmIdx && specValue.getSpecVsort() > rmIdx) { if (null != rmIdx && specValue.getSpecVsort() > rmIdx) {
specValue.setSpecVsort(specValue.getSpecVsort() - 1); specValue.setSpecVsort(specValue.getSpecVsort() - 1);
updateGoodsSpuSpecObjs.add(new Object[]{specValue.getSpecVsort(), spuId, specVo.getSpecName(), specValue.getSpecVname()}); updateGoodsSpuSpecObjs.add(new Object[]{specValue.getSpecVsort(), "0", spuId, specVo.getSpecName(), specValue.getSpecVname()});
} }
} }
if (modifySpecValues.size() == 0) {// 规格下规格值为0的时候,移除规格 specVo.setSpecValues(modifySpecValues);
// specVoList.remove(specVo);
} else {
specVo.setSpecValues(modifySpecValues);
}
} }
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
goodsSkuInfoVo.setUpdatedBy(uid); goodsSkuInfoVo.setUpdatedBy(uid);
...@@ -832,9 +827,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -832,9 +827,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del")); toMqSqls.add(SqlMapping.get("goblin_goods_sku.update_by_del"));
LinkedList<Object[]> delGoodsSkuObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> delGoodsSkuObjs = CollectionUtil.linkedListObjectArr();
delSkuIdList.forEach(skuId -> delGoodsSkuObjs.add(new Object[]{uid, now, uid, now, skuId})); delSkuIdList.forEach(skuId -> delGoodsSkuObjs.add(new Object[]{uid, now, uid, now, skuId}));
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku1")); toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku"));
// LinkedList<Object[]> updateGoodsSpuSpecDelObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("goblin_goods_spu_spec_value.update_by_del_sku2"));
// LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsSpuSpecObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("goblin_goods_sku_spec_value.update_by_del_sku")); toMqSqls.add(SqlMapping.get("goblin_goods_sku_spec_value.update_by_del_sku"));
LinkedList<Object[]> deleteGoodsSkuSpecObjs = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> deleteGoodsSkuSpecObjs = CollectionUtil.linkedListObjectArr();
...@@ -843,7 +836,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi ...@@ -843,7 +836,7 @@ public class GoblinStoreMgtGoodsServiceImpl implements IGoblinstoreMgtGoodsServi
// LinkedList<Object[]> updateGoodsInfoObjs = CollectionUtil.linkedListObjectArr(); // LinkedList<Object[]> updateGoodsInfoObjs = CollectionUtil.linkedListObjectArr();
queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(), queueUtils.sendMsgByRedis(MQConst.GoblinQueue.SQL_GOODS.getKey(),
SqlMapping.gets(toMqSqls, delGoodsSkuObjs, updateGoodsSpuSpecDelObjs, updateGoodsSpuSpecObjs, deleteGoodsSkuSpecObjs, updateGoodsInfoObjs)); SqlMapping.gets(toMqSqls, delGoodsSkuObjs, updateGoodsSpuSpecObjs, deleteGoodsSkuSpecObjs, updateGoodsInfoObjs));
return true; return true;
} }
......
...@@ -30,8 +30,7 @@ goblin_goods_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spec_value (s ...@@ -30,8 +30,7 @@ goblin_goods_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spec_value (s
goblin_goods_spu_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spu_spec_value (spu_id,spec_name,spec_vname,sort,del_flg)VALUES(?,?,?,?,'0') goblin_goods_spu_spec_value.insert_byreplace=REPLACE INTO goblin_goods_spu_spec_value (spu_id,spec_name,spec_vname,sort,del_flg)VALUES(?,?,?,?,'0')
goblin_goods_spu_spec_value.update_by_editdel=UPDATE goblin_goods_spu_spec_value SET del_flg='1' WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0' goblin_goods_spu_spec_value.update_by_editdel=UPDATE goblin_goods_spu_spec_value SET del_flg='1' WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0'
goblin_goods_spu_spec_value.update_by_edit=UPDATE goblin_goods_spu_spec_value SET sort=? WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0' goblin_goods_spu_spec_value.update_by_edit=UPDATE goblin_goods_spu_spec_value SET sort=? WHERE spu_id=? AND spec_name=? AND spec_vname=? AND del_flg='0'
goblin_goods_spu_spec_value.update_by_del_sku1=UPDATE goblin_goods_spu_spec_value SET del_flg='1' WHERE spu_id=? AND spec_name=? AND spec_vname=? goblin_goods_spu_spec_value.update_by_del_sku=UPDATE goblin_goods_spu_spec_value SET sort=?,del_flg=? WHERE spu_id=? AND spec_name=? AND spec_vname=?
goblin_goods_spu_spec_value.update_by_del_sku2=UPDATE goblin_goods_spu_spec_value SET sort=? WHERE spu_id=? AND spec_name=? AND spec_vname=?
goblin_goods_sku_spec_value.insert_byreplace=REPLACE INTO goblin_goods_sku_spec_value (spu_id,sku_id,spec_name,spec_vname,del_flg)VALUES(?,?,?,?,'0') goblin_goods_sku_spec_value.insert_byreplace=REPLACE INTO goblin_goods_sku_spec_value (spu_id,sku_id,spec_name,spec_vname,del_flg)VALUES(?,?,?,?,'0')
goblin_goods_sku_spec_value.update_by_edit=UPDATE goblin_goods_sku_spec_value SET spec_vname=? WHERE sku_id=? AND spec_name=? AND del_flg='0' goblin_goods_sku_spec_value.update_by_edit=UPDATE goblin_goods_sku_spec_value SET spec_vname=? WHERE sku_id=? AND spec_name=? AND del_flg='0'
goblin_goods_sku_spec_value.update_by_del_sku=UPDATE goblin_goods_sku_spec_value SET del_flg='1' WHERE sku_id=? AND del_flg='0' goblin_goods_sku_spec_value.update_by_del_sku=UPDATE goblin_goods_sku_spec_value SET del_flg='1' WHERE sku_id=? AND del_flg='0'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment