diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java index 6b735d2..9e9d707 100644 --- a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java @@ -20,5 +20,11 @@ public interface RemoteFloorService { */ List> queryTreeList(); - + /** + * 根据单元ID查询楼层 + * + * @param unitId 单元ID + * @return 楼层 + */ + List queryByUnitId(Long unitId); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java index b78d6e8..1d9c0d3 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java @@ -101,4 +101,16 @@ public class RemoteFloorServiceImpl implements RemoteFloorService { treeList.addAll(l4); return treeList; } + + /** + * 根据单元ID查询楼层 + * + * @param unitId 单元ID + * @return 楼层 + */ + @Override + public List queryByUnitId(Long unitId){ + List tbFloorVo = floorService.queryByUnitId(unitId); + return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class); + } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java index 6849e8b..9156cc5 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java @@ -1,5 +1,6 @@ package org.dromara.property.service; +import org.dromara.property.api.domain.vo.RemoteFloorVo; import org.dromara.property.domain.TbFloor; import org.dromara.property.domain.vo.TbFloorVo; import org.dromara.property.domain.bo.TbFloorBo; @@ -67,7 +68,18 @@ public interface ITbFloorService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - + /** + * 查询所有楼层 + * + * @return 楼层列表 + */ List queryAll(); + /** + * 根据单元ID查询楼层 + * + * @param unitId 单元ID + * @return 楼层 + */ + List queryByUnitId(Long unitId); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java index 29e9a4a..28630af 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java @@ -18,6 +18,7 @@ import org.dromara.property.mapper.TbFloorMapper; import org.dromara.property.service.ITbFloorService; import org.dromara.property.service.ITbUnitService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; @@ -94,18 +95,25 @@ public class TbFloorServiceImpl implements ITbFloorService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(TbFloorBo bo) { // 验证单元是否存在 TbUnitVo tbUnitVo = tbUnitService.queryById(bo.getUnitId()); Assert.notNull(tbUnitVo, "单元:{},不存在。", bo.getUnitId()); + + // 验证同一单元楼层是否已经存在 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(TbFloor::getUnitId, bo.getUnitId()) + .eq(TbFloor::getFloorNumber, bo.getFloorNumber()); + boolean numberExists = baseMapper.selectCount(lqw) > 0; + Assert.isFalse(numberExists, "单元:{},楼层:{}已存在。", bo.getUnitId(), bo.getFloorNumber()); + TbFloor add = MapstructUtils.convert(bo, TbFloor.class); add.setCommunityId(tbUnitVo.getCommunityId()); add.setBuildingId(tbUnitVo.getBuildingId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } + Assert.isTrue(flag, "新增楼层失败"); return flag; } @@ -148,4 +156,17 @@ public class TbFloorServiceImpl implements ITbFloorService { public List queryAll() { return baseMapper.selectVoList(); } + + /** + * 根据单元ID查询楼层 + * + * @param unitId 单元ID + * @return 楼层 + */ + @Override + public List queryByUnitId(Long unitId){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(TbFloor::getUnitId, unitId); + return baseMapper.selectVoList(lqw); + } }