From 29862e7f9b10bd8de1a4631541ceda6269e13bf4 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 27 Oct 2025 08:40:11 +0800 Subject: [PATCH] rjuwhnw --- .../heyu/api/data/utils/CollectionUtils.java | 17 ++ .../com/heyu/api/data/utils/SanUtils.java | 21 +-- .../controller/mm/AdminProductController.java | 155 +++--------------- 3 files changed, 45 insertions(+), 148 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/utils/CollectionUtils.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/CollectionUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/CollectionUtils.java new file mode 100644 index 0000000..7b529dc --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/CollectionUtils.java @@ -0,0 +1,17 @@ +package com.heyu.api.data.utils; + +import java.util.Map; + +public class CollectionUtils { + + + + public static boolean notContainsKey(Map map, Object key) { + if(map == null){ + return true; + } + + return !map.containsKey(key); + } + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java index 64f964c..5fdad60 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java @@ -120,6 +120,7 @@ public class SanUtils { } + public static R findAnyNotNull(List values, LBiFunction0 function) { try { if (CollectionUtils.isEmpty(values)) { @@ -547,25 +548,13 @@ public class SanUtils { public static void main(String[] args) { - AriseUser ai = new AriseUser(); - ai.setName("张三"); - ai.setAge(13); - AriseUser ai2 = new AriseUser(); - ai2.setName("李四"); - ai2.setAge(23); - - AriseUser ai3 = new AriseUser(); - ai3.setName("李四"); - ai3.setAge(25); - List list = new ArrayList<>(); - list.add(ai); - list.add(ai2); - list.add(ai3); + Map map = new HashMap<>(); + map.put(null,"owiew"); + System.out.println(JSON.toJSONString(map)); - Map objectMap = parallel2Map(list, SanUtils::getName, AriseUser::getAge); - System.out.println(JSON.toJSONString(objectMap)); + System.out.println(map.get(null)); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java index 431c218..7163f58 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminProductController.java @@ -10,8 +10,10 @@ import com.heyu.api.data.dto.vv.VvProductDTO; import com.heyu.api.data.dto.vv.VvProductPropertyDTO; import com.heyu.api.data.dto.vv.VvSkuDTO; import com.heyu.api.data.entity.vv.*; +import com.heyu.api.data.utils.CollectionUtils; import com.heyu.api.data.utils.NumberUtil; import com.heyu.api.data.utils.R; +import com.heyu.api.data.utils.SanUtils; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; @@ -21,7 +23,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -225,21 +226,19 @@ public class AdminProductController { return R.ok(); } - @RequestMapping("/insertOrUpadate") public R insertOrUpadate(@RequestBody VvProductDTO vvProductDTO) { vvProductDao.insertOrUpdateVvProduct(vvProductDTO); Long productId = vvProductDTO.getId(); List productDetailEntities = vvProductDetailDao.selectVvProductDetailByProductId(productId); + + + Map> groupbyProductDetail = + SanUtils.list2GroupBy(vvProductDTO.getVvProductDetailList(), VvProductDetailEntity::getId); + // 1. 如果传过来的参数存在,则更新 ,如果不存在 ,则直接物理删除掉 for (VvProductDetailEntity productDetailEntity : productDetailEntities) { - boolean flag = true; - for (VvProductDetailEntity vvProductDetailEntity : vvProductDTO.getVvProductDetailList()) { - if (productDetailEntity.getId().equals(vvProductDetailEntity.getId())) { - flag = false; - } - } - if (flag) { + if (CollectionUtils.notContainsKey(groupbyProductDetail, productDetailEntity.getId())) { vvProductDetailDao.deleteVvProductDetailRealById(productDetailEntity.getId()); } } @@ -251,18 +250,12 @@ public class AdminProductController { vvProductDetailDao.insertOrUpdateVvProductDetail(vvProductDetailEntity); } - List vvSkuDTOS = vvProductDTO.getVvSkuList(); List vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId); + Map> groupbySkuDTOs = SanUtils.list2GroupBy(vvSkuDTOS, VvSkuDTO::getId); for (VvSkuEntity vvSkuEntity : vvSkuEntities) { - boolean flag = true; - for (VvSkuDTO vvSkuDTO : vvSkuDTOS) { - if (vvSkuEntity.getId().equals(vvSkuDTO.getId())) { - flag = false; - } - } - if (flag) { + if (CollectionUtils.notContainsKey(groupbySkuDTOs, vvSkuEntity.getId())) { vvSkuPropertyValueDao.deleteVvSkuPropertyValueRealBySkuId(vvSkuEntity.getId()); vvSkuDao.deleteVvSkuByRealId(vvSkuEntity.getId()); } @@ -272,43 +265,27 @@ public class AdminProductController { Long skuId = vvSkuDTO.getId(); vvSkuDTO.setProductId(productId); vvSkuDao.insertOrUpdateVvSku(vvSkuDTO); - - if(NumberUtil.equals(vvSkuDTO.getIsFront(),1)){ + if (NumberUtil.equals(vvSkuDTO.getIsFront(), 1)) { vvProductDTO.setSkuId(skuId); vvProductDTO.setShowPromotionPrice(vvSkuDTO.getPromotionPrice()); vvProductDao.insertOrUpdateVvProduct(vvProductDTO); } - - - - - - - - /*** - * 插入 + * 更新 */ List vvSkuPropertyValueEntities = vvSkuDTO.getVvSkuPropertyValueList(); if (skuId != null) { // 更新 + Map> groupbySkuPropertyValue = + SanUtils.list2GroupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId); List vvSkuPropertyValueDB = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuId(vvSkuDTO.getId()); - for (VvSkuPropertyValueEntity vvSkuPropertyValueDb : vvSkuPropertyValueDB) { - boolean flag = true; - for (VvSkuPropertyValueEntity skuPropertyValueEntity : vvSkuPropertyValueEntities) { - if (vvSkuPropertyValueDb.getId().equals(skuPropertyValueEntity.getId())) { - flag = false; - } - } // 如果不存在 ,则直接删除 - if (flag) { + if (CollectionUtils.notContainsKey(groupbySkuPropertyValue, vvSkuPropertyValueDb.getId())) { vvSkuPropertyValueDao.deleteVvSkuPropertyValueRealById(vvSkuPropertyValueDb.getId()); } } } - - for (VvSkuPropertyValueEntity vvSkuPropertyValueEntity : vvSkuPropertyValueEntities) { vvSkuPropertyValueEntity.setSkuId(vvSkuDTO.getId()); vvSkuPropertyValueEntity.setProductId(productId); @@ -319,14 +296,11 @@ public class AdminProductController { List vvProductPropertyDTOS = vvProductDTO.getVvProductPropertyList(); List vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId); + Map> groupbyProductProperty = + SanUtils.list2GroupBy(vvProductPropertyEntities, VvProductPropertyEntity::getId); for (VvProductPropertyEntity vvProductPropertyDb : vvProductPropertyEntities) { - boolean flag = true; - for (VvProductPropertyDTO vvProductPropertyDTO : vvProductPropertyDTOS) { - if (vvProductPropertyDb.getId().equals(vvProductPropertyDTO.getId())) { - flag = false; - } - } - if (flag) { + // 对他进行编辑 + if (CollectionUtils.notContainsKey(groupbyProductProperty,vvProductPropertyDb.getId())) { vvProductPropertyDao.deleteVvProductPropertyRealById(vvProductPropertyDb.getId()); vvProductPropertyValueDao.deleteVvProductPropertyValueRealByProductPropertyId(vvProductPropertyDb.getId()); } @@ -338,17 +312,14 @@ public class AdminProductController { vvProductPropertyDao.insertOrUpdateVvProductProperty(vvProductPropertyDTO); List vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList(); + Map> groupbyProductPropertyValue = + SanUtils.list2GroupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId); + // 对他进行编辑 if (productPropertyId != null) { List productPropertyValueDb = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(productPropertyId); for (VvProductPropertyValueEntity vvProductPropertyValueEntity : productPropertyValueDb) { - boolean flag = true; - for (VvProductPropertyValueEntity productPropertyValueEntity : vvProductPropertyValueEntities) { - if (vvProductPropertyValueEntity.getId().equals(productPropertyValueEntity.getId())) { - flag = false; - } - } - if (flag) { + if (CollectionUtils.notContainsKey(groupbyProductPropertyValue,vvProductPropertyValueEntity.getId())) { vvProductPropertyValueDao.deleteVvProductPropertyValueRealById(vvProductPropertyValueEntity.getId()); } } @@ -363,85 +334,5 @@ public class AdminProductController { return R.ok(); } - @RequestMapping("/test/save") - public R save(@RequestBody VvProductDTO vvProductDTO) { - VvProductEntity vvProduct = vvProductDao.selectVvProductById(4L); - - VvProductPropertyEntity vvProductPropertyEntity1 = vvProductPropertyDao.selectVvProductPropertyById(1L); - - VvProductPropertyEntity vvProductPropertyEntity2 = vvProductPropertyDao.selectVvProductPropertyById(2L); - - VvProductPropertyEntity vvProductPropertyEntity3 = vvProductPropertyDao.selectVvProductPropertyById(3L); - - List vvProductPropertyValueEntities1 = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(vvProductPropertyEntity1.getId()); - List vvProductPropertyValueEntities2 = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(vvProductPropertyEntity2.getId()); - List vvProductPropertyValueEntities3 = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(vvProductPropertyEntity3.getId()); - - - int i = 1; - for (VvProductPropertyValueEntity vvProductPropertyValueEntity1 : vvProductPropertyValueEntities1) { - - for (VvProductPropertyValueEntity vvProductPropertyValueEntity2 : vvProductPropertyValueEntities2) { - - for (VvProductPropertyValueEntity vvProductPropertyValueEntity3 : vvProductPropertyValueEntities3) { - - VvSkuEntity vvSkuEntity = new VvSkuEntity(); - - vvSkuEntity.setProductId(vvProduct.getId()); - vvSkuEntity.setImageUrl("ioewoieiw"); - vvSkuEntity.setSalePrice(new BigDecimal(i)); - vvSkuEntity.setOriginPrice(new BigDecimal(i)); - - - vvSkuDao.insertOrUpdateVvSku(vvSkuEntity); - - VvSkuPropertyValueEntity vvSkuPropertyValueEntity1 = new VvSkuPropertyValueEntity(); - - - vvSkuPropertyValueEntity1.setSkuId(vvSkuEntity.getId()); - - vvSkuPropertyValueEntity1.setProductPropertyName(vvProductPropertyEntity1.getProductPropertyName()); - - vvSkuPropertyValueEntity1.setProductPropertyValue(vvProductPropertyValueEntity1.getProductPropertyValue()); - - vvSkuPropertyValueEntity1.setProductId(vvProduct.getId()); - - VvSkuPropertyValueEntity vvSkuPropertyValueEntity2 = new VvSkuPropertyValueEntity(); - - - vvSkuPropertyValueEntity2.setSkuId(vvSkuEntity.getId()); - - - - vvSkuPropertyValueEntity2.setProductPropertyName(vvProductPropertyEntity2.getProductPropertyName()); - - vvSkuPropertyValueEntity2.setProductPropertyValue(vvProductPropertyValueEntity2.getProductPropertyValue()); - - vvSkuPropertyValueEntity2.setProductId(vvProduct.getId()); - - - VvSkuPropertyValueEntity vvSkuPropertyValueEntity3 = new VvSkuPropertyValueEntity(); - - vvSkuPropertyValueEntity3.setSkuId(vvSkuEntity.getId()); - - - - vvSkuPropertyValueEntity3.setProductPropertyName(vvProductPropertyEntity3.getProductPropertyName()); - - vvSkuPropertyValueEntity3.setProductPropertyValue(vvProductPropertyValueEntity3.getProductPropertyValue()); - - vvSkuPropertyValueEntity3.setProductId(vvProduct.getId()); - - vvSkuPropertyValueDao.insertVvSkuPropertyValue(vvSkuPropertyValueEntity1); - vvSkuPropertyValueDao.insertVvSkuPropertyValue(vvSkuPropertyValueEntity2); - vvSkuPropertyValueDao.insertVvSkuPropertyValue(vvSkuPropertyValueEntity3); - i++; - } - } - - } - return R.ok(); - } - }