|
|
@@ -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) {
|