Selaa lähdekoodia

处理isc_materials_property_value

车车 4 kuukautta sitten
vanhempi
sitoutus
c83db5601b

+ 18 - 18
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/materialsproperty/MaterialsPropertyServiceImpl.java

@@ -1,12 +1,15 @@
 package cn.iocoder.yudao.module.iscs.service.materialsproperty;
 
-import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.materialsproperty.vo.MaterialsPropertyPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.materialsproperty.vo.MaterialsPropertySaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.materialsproperty.MaterialsPropertyDO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.materialspropertyvalue.MaterialsPropertyValueDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.materialsproperty.MaterialsPropertyMapper;
+import cn.iocoder.yudao.module.iscs.service.materialspropertyvalue.MaterialsPropertyValueService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -25,9 +28,14 @@ public class MaterialsPropertyServiceImpl extends ServiceImpl<MaterialsPropertyM
 
     @Resource
     private MaterialsPropertyMapper materialsPropertyMapper;
+    @Resource
+    private MaterialsPropertyValueService materialsPropertyValueService;
 
     @Override
     public Long createMaterialsProperty(MaterialsPropertySaveReqVO createReqVO) {
+        List<MaterialsPropertyDO> list = list(Wrappers.<MaterialsPropertyDO>lambdaQuery()
+                .eq(MaterialsPropertyDO::getPropertyName, createReqVO.getPropertyName()));
+        Assert.isTrue(list.isEmpty(), "该名称已被使用!");
         // 插入
         MaterialsPropertyDO materialsProperty = BeanUtils.toBean(createReqVO, MaterialsPropertyDO.class);
         materialsPropertyMapper.insert(materialsProperty);
@@ -38,8 +46,10 @@ public class MaterialsPropertyServiceImpl extends ServiceImpl<MaterialsPropertyM
 
     @Override
     public void updateMaterialsProperty(MaterialsPropertySaveReqVO updateReqVO) {
-        // 校验存在
-        validateMaterialsPropertyExists(updateReqVO.getId());
+        List<MaterialsPropertyDO> list = list(Wrappers.<MaterialsPropertyDO>lambdaQuery()
+                .eq(MaterialsPropertyDO::getPropertyName, updateReqVO.getPropertyName())
+                .ne(MaterialsPropertyDO::getId, updateReqVO.getId()));
+        Assert.isTrue(list.isEmpty(), "该名称已被使用!");
         // 更新
         MaterialsPropertyDO updateObj = BeanUtils.toBean(updateReqVO, MaterialsPropertyDO.class);
         materialsPropertyMapper.updateById(updateObj);
@@ -48,31 +58,21 @@ public class MaterialsPropertyServiceImpl extends ServiceImpl<MaterialsPropertyM
     @Override
     public void deleteMaterialsProperty(Long id) {
         // 校验存在
-        validateMaterialsPropertyExists(id);
-        // 删除
         materialsPropertyMapper.deleteById(id);
     }
 
     @Override
         public void deleteMaterialsPropertyListByIds(List<Long> ids) {
-        // 校验存在
-        validateMaterialsPropertyExists(ids);
+        Assert.isFalse(ids.isEmpty(), "请选择需要删除的数据!");
+        // 检查下面有没有属性值,有的话先删属性值
+        List<MaterialsPropertyValueDO> list = materialsPropertyValueService.list(Wrappers.<MaterialsPropertyValueDO>lambdaQuery()
+                .in(MaterialsPropertyValueDO::getPropertyId, ids));
+        Assert.isTrue(list.isEmpty(), "删除属性项下存在属性值,请先删除属性值!");
         // 删除
         materialsPropertyMapper.deleteByIds(ids);
         }
 
-    private void validateMaterialsPropertyExists(List<Long> ids) {
-        List<MaterialsPropertyDO> list = materialsPropertyMapper.selectByIds(ids);
-        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
-            /// throw exception(MATERIALS_PROPERTY_NOT_EXISTS);
-        }
-    }
 
-    private void validateMaterialsPropertyExists(Long id) {
-        if (materialsPropertyMapper.selectById(id) == null) {
-            /// throw exception(MATERIALS_PROPERTY_NOT_EXISTS);
-        }
-    }
 
     @Override
     public MaterialsPropertyDO getMaterialsProperty(Long id) {