This commit is contained in:
quyixiao 2025-10-27 08:40:11 +08:00
parent c98a9bd72c
commit 29862e7f9b
3 changed files with 45 additions and 148 deletions

View File

@ -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);
}
}

View File

@ -120,6 +120,7 @@ public class SanUtils {
}
public static <T, R, V> R findAnyNotNull(List<V> values, LBiFunction0<T, R> 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<AriseUser> list = new ArrayList<>();
list.add(ai);
list.add(ai2);
list.add(ai3);
Map<Long, String> map = new HashMap<>();
map.put(null,"owiew");
System.out.println(JSON.toJSONString(map));
Map<Integer, AriseUser> objectMap = parallel2Map(list, SanUtils::getName, AriseUser::getAge);
System.out.println(JSON.toJSONString(objectMap));
System.out.println(map.get(null));
}

View File

@ -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<VvProductDetailEntity> productDetailEntities = vvProductDetailDao.selectVvProductDetailByProductId(productId);
Map<Long, List<VvProductDetailEntity>> 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<VvSkuDTO> vvSkuDTOS = vvProductDTO.getVvSkuList();
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuByProductId(productId);
Map<Long, List<VvSkuDTO>> 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<VvSkuPropertyValueEntity> vvSkuPropertyValueEntities = vvSkuDTO.getVvSkuPropertyValueList();
if (skuId != null) {
// 更新
Map<Long, List<VvSkuPropertyValueEntity>> groupbySkuPropertyValue =
SanUtils.list2GroupBy(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getId);
List<VvSkuPropertyValueEntity> 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<VvProductPropertyDTO> vvProductPropertyDTOS = vvProductDTO.getVvProductPropertyList();
List<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductId(productId);
Map<Long, List<VvProductPropertyEntity>> 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<VvProductPropertyValueEntity> vvProductPropertyValueEntities = vvProductPropertyDTO.getVvProductPropertyValueList();
Map<Long, List<VvProductPropertyValueEntity>> groupbyProductPropertyValue =
SanUtils.list2GroupBy(vvProductPropertyValueEntities, VvProductPropertyValueEntity::getId);
// 对他进行编辑
if (productPropertyId != null) {
List<VvProductPropertyValueEntity> 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<VvProductPropertyValueEntity> vvProductPropertyValueEntities1 = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(vvProductPropertyEntity1.getId());
List<VvProductPropertyValueEntity> vvProductPropertyValueEntities2 = vvProductPropertyValueDao.selectVvProductPropertyValueByProductIdPropertyId(vvProductPropertyEntity2.getId());
List<VvProductPropertyValueEntity> 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();
}
}