房屋调整,重复性校验
parent
2c183e1520
commit
2d123c5485
|
|
@ -3,7 +3,7 @@ package com.fjrcloud.community.module.community.dal.dataobject.house;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fjrcloud.community.framework.mybatis.core.dataobject.BaseDO;
|
import com.fjrcloud.community.framework.tenant.core.db.TenantBaseDO;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -21,7 +21,7 @@ import java.math.BigDecimal;
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class HouseDO extends BaseDO {
|
public class HouseDO extends TenantBaseDO {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键ID
|
* 主键ID
|
||||||
|
|
|
||||||
|
|
@ -30,4 +30,13 @@ public interface HouseMapper extends BaseMapperX<HouseDO> {
|
||||||
.orderByDesc(HouseDO::getId));
|
.orderByDesc(HouseDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default HouseDO selectByCommunityAndRoom(Long communityId, String buildingNo, String unitNo, String roomNo) {
|
||||||
|
return selectOne(new LambdaQueryWrapperX<HouseDO>()
|
||||||
|
.eq(HouseDO::getCommunityId, communityId)
|
||||||
|
.eq(HouseDO::getBuildingNo, buildingNo)
|
||||||
|
.eq(HouseDO::getUnitNo, unitNo)
|
||||||
|
.eq(HouseDO::getRoomNo, roomNo)
|
||||||
|
.last("LIMIT 1"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -19,6 +19,8 @@ public interface ErrorCodeConstants {
|
||||||
|
|
||||||
ErrorCode HOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(2_001_001_002, "导入房屋数据不能为空!");
|
ErrorCode HOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(2_001_001_002, "导入房屋数据不能为空!");
|
||||||
|
|
||||||
|
ErrorCode HOUSE_DUPLICATE = new ErrorCode(2_001_001_003, "该小区已存在相同的房屋【{}号楼-{}单元-{}室】");
|
||||||
|
|
||||||
ErrorCode MEMBER_HOUSE_NOT_EXISTS = new ErrorCode(2_002_001_002, "业主认证信息不存在");
|
ErrorCode MEMBER_HOUSE_NOT_EXISTS = new ErrorCode(2_002_001_002, "业主认证信息不存在");
|
||||||
|
|
||||||
ErrorCode MEMBER_HOUSE_EXISTS = new ErrorCode(2_002_001_003, "该房屋已存在认证记录,请勿重复提交");
|
ErrorCode MEMBER_HOUSE_EXISTS = new ErrorCode(2_002_001_003, "该房屋已存在认证记录,请勿重复提交");
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,7 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.fjrcloud.community.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.fjrcloud.community.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.fjrcloud.community.framework.tenant.core.security.TenantSecurityWebFilter.SYSTEM_TENANT_ID;
|
import static com.fjrcloud.community.framework.tenant.core.security.TenantSecurityWebFilter.SYSTEM_TENANT_ID;
|
||||||
import static com.fjrcloud.community.module.community.enums.ErrorCodeConstants.HOUSE_IMPORT_LIST_IS_EMPTY;
|
import static com.fjrcloud.community.module.community.enums.ErrorCodeConstants.*;
|
||||||
import static com.fjrcloud.community.module.community.enums.ErrorCodeConstants.HOUSE_NOT_EXISTS;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 房屋信息主 Service 实现类
|
* 房屋信息主 Service 实现类
|
||||||
|
|
@ -51,8 +50,15 @@ public class HouseServiceImpl implements HouseService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createHouse(HouseSaveReqVO createReqVO) {
|
public Long createHouse(HouseSaveReqVO createReqVO) {
|
||||||
|
// 校验房屋是否重复(同一小区、同一楼号、同一单元号、同一门牌号)
|
||||||
|
validateHouseDuplicate(null, createReqVO.getCommunityId(),
|
||||||
|
createReqVO.getBuildingNo(), createReqVO.getUnitNo(), createReqVO.getRoomNo());
|
||||||
|
|
||||||
// 插入
|
// 插入
|
||||||
HouseDO house = BeanUtils.toBean(createReqVO, HouseDO.class);
|
HouseDO house = BeanUtils.toBean(createReqVO, HouseDO.class);
|
||||||
|
if(Objects.equals(TenantContextHolder.getTenantId(), SYSTEM_TENANT_ID)){
|
||||||
|
house.setTenantId(house.getCommunityId());
|
||||||
|
}
|
||||||
houseMapper.insert(house);
|
houseMapper.insert(house);
|
||||||
|
|
||||||
// 返回
|
// 返回
|
||||||
|
|
@ -63,8 +69,16 @@ public class HouseServiceImpl implements HouseService {
|
||||||
public void updateHouse(HouseSaveReqVO updateReqVO) {
|
public void updateHouse(HouseSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateHouseExists(updateReqVO.getId());
|
validateHouseExists(updateReqVO.getId());
|
||||||
|
|
||||||
|
// 校验房屋是否重复(排除当前记录)
|
||||||
|
validateHouseDuplicate(updateReqVO.getId(), updateReqVO.getCommunityId(),
|
||||||
|
updateReqVO.getBuildingNo(), updateReqVO.getUnitNo(), updateReqVO.getRoomNo());
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
HouseDO updateObj = BeanUtils.toBean(updateReqVO, HouseDO.class);
|
HouseDO updateObj = BeanUtils.toBean(updateReqVO, HouseDO.class);
|
||||||
|
if(Objects.equals(TenantContextHolder.getTenantId(), SYSTEM_TENANT_ID)){
|
||||||
|
updateObj.setTenantId(updateObj.getCommunityId());
|
||||||
|
}
|
||||||
houseMapper.updateById(updateObj);
|
houseMapper.updateById(updateObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -89,6 +103,24 @@ public class HouseServiceImpl implements HouseService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验房屋是否重复
|
||||||
|
*
|
||||||
|
* @param id 房屋ID(更新时传入,新增时传null)
|
||||||
|
* @param communityId 小区ID
|
||||||
|
* @param buildingNo 楼号
|
||||||
|
* @param unitNo 单元号
|
||||||
|
* @param roomNo 门牌号
|
||||||
|
*/
|
||||||
|
private void validateHouseDuplicate(Long id, Long communityId, String buildingNo, String unitNo, String roomNo) {
|
||||||
|
HouseDO existHouse = houseMapper.selectByCommunityAndRoom(communityId, buildingNo, unitNo, roomNo);
|
||||||
|
|
||||||
|
// 如果找到了重复的房屋,且不是当前正在更新的房屋,则抛出异常
|
||||||
|
if (existHouse != null && !Objects.equals(existHouse.getId(), id)) {
|
||||||
|
throw exception(HOUSE_DUPLICATE, buildingNo, unitNo, roomNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HouseDO getHouse(Long id) {
|
public HouseDO getHouse(Long id) {
|
||||||
return houseMapper.selectById(id);
|
return houseMapper.selectById(id);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue