Przeglądaj źródła

解决商品更新null值未更新到数据库问题

yzc 2 lat temu
rodzic
commit
9104a97a25

+ 19 - 5
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -323,12 +323,26 @@ public class KwpGoodsService {
                 throw new BusinessException("上架商品不可修改库存数量!");
             }
         }
-        BeanUtils.copyProperties(param, goods);
         AddressInfo address = param.getAddressInfo();
-        if (Objects.nonNull(address)) {
-            goods.setAreaCode(address.getCityCode()).setAddressName(address.getName());
-        }
-        kwpGoodsMapper.updateById(goods);
+        Integer areaCode = Objects.isNull(address) ? null : address.getCityCode();
+        String addressName = Objects.isNull(address) ? null : address.getName();
+        LambdaUpdateWrapper<KwpGoods> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(KwpGoods::getName, param.getName())
+                .set(KwpGoods::getGoodsType, param.getGoodsType())
+                .set(KwpGoods::getUnit, param.getUnit())
+                .set(KwpGoods::getSpec, param.getSpec())
+                .set(KwpGoods::getAmount, param.getAmount())
+                .set(KwpGoods::getTaxRate, param.getTaxRate())
+                .set(KwpGoods::getPrepaidLimit, param.getPrepaidLimit())
+                .set(KwpGoods::getAdvancePrice, param.getAdvancePrice())
+                .set(KwpGoods::getSupplyEntId, param.getSupplyEntId())
+                .set(KwpGoods::getManager, param.getManager())
+                .set(KwpGoods::getRemark, param.getRemark())
+                .set(KwpGoods::getThumb, param.getThumb())
+                .set(KwpGoods::getAreaCode, areaCode)
+                .set(KwpGoods::getAddressName, addressName)
+                .eq(KwpGoods::getId, param.getId());
+        kwpGoodsMapper.update(null, wrapper);
         updateGoodsOtherInfo(param);
     }