From b8959cbaac681cb7c1e2663b159a9c7aa1f3a1ab Mon Sep 17 00:00:00 2001 From: zhongchangyuyu Date: Fri, 25 Apr 2025 09:12:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 1 + .idea/jarRepositories.xml | 25 + pom.xml | 10 + .../room/common/enums/BusinessStatusEnum.java | 32 +- .../common/enums/DecorationStatusEnum.java | 29 +- .../eden/room/common/enums/ImageTypeEnum.java | 49 +- .../eden/room/common/enums/PriceUnitEnum.java | 36 +- .../room/common/enums/PropertyNatureEnum.java | 49 +- .../room/common/enums/RentalStatusEnum.java | 31 +- .../room/common/enums/RoomStatusEnum.java | 51 +- .../eden/room/common/enums/RoomTypeEnum.java | 50 +- .../room/common/enums/VirtualFlagEnum.java | 71 +++ .../room/common/enums/WholeFloorFlagEnum.java | 71 +++ .../com/eden/room/constant/RoomConstants.java | 32 + .../room/controller/BuildingController.java | 16 +- .../eden/room/controller/FloorController.java | 16 +- .../room/controller/ProjectController.java | 14 +- .../eden/room/controller/RoomController.java | 73 +-- .../controller/RoomTemplateController.java | 171 +++--- .../java/com/eden/room/domain/Building.java | 12 +- src/main/java/com/eden/room/domain/Floor.java | 6 +- .../java/com/eden/room/domain/Project.java | 14 +- src/main/java/com/eden/room/domain/Room.java | 253 ++++---- .../eden/room/domain/RoomBusinessInfo.java | 34 +- .../com/eden/room/domain/RoomExtendInfo.java | 12 +- .../java/com/eden/room/domain/RoomImage.java | 11 +- .../com/eden/room/domain/dto/RoomDTO.java | 20 + .../eden/room/domain/dto/RoomExportDTO.java | 180 +++--- .../eden/room/domain/dto/RoomImportDTO.java | 55 +- .../eden/room/domain/dto/RoomQueryDTO.java | 8 + .../room/interceptor/TenantInterceptor.java | 139 ----- .../interceptor/UserContextInterceptor.java | 69 --- .../com/eden/room/mapper/BuildingMapper.java | 13 +- .../com/eden/room/mapper/FloorMapper.java | 13 +- .../com/eden/room/mapper/ProjectMapper.java | 10 + .../room/mapper/RoomBusinessInfoMapper.java | 27 +- .../room/mapper/RoomExtendInfoMapper.java | 28 +- .../com/eden/room/mapper/RoomImageMapper.java | 4 +- .../java/com/eden/room/mapper/RoomMapper.java | 53 +- .../eden/room/service/IBuildingService.java | 14 +- .../com/eden/room/service/IFloorService.java | 14 +- .../eden/room/service/IProjectService.java | 11 + .../com/eden/room/service/IRoomService.java | 43 +- .../room/service/RoomTemplateService.java | 57 -- .../service/impl/BuildingServiceImpl.java | 25 +- .../room/service/impl/FloorServiceImpl.java | 27 +- .../room/service/impl/ProjectServiceImpl.java | 19 + .../room/service/impl/RoomServiceImpl.java | 569 +++++------------- .../java/com/eden/room/utils/EnumConvert.java | 24 + .../com/eden/room/utils/EnumConverter.java | 50 ++ .../java/com/eden/room/utils/EnumValid.java | 32 + .../com/eden/room/utils/EnumValidator.java | 34 ++ .../java/com/eden/room/utils/ExcelUtil.java | 2 +- .../room/utils/excel/BigDecimalConverter.java | 42 ++ .../room/utils/excel/ExcelImportListener.java | 62 ++ .../room/utils/excel/RoomImportListener.java | 220 +++++++ .../resources/mapper/ProjectTreeMapper.xml | 8 +- .../resources/mapper/room/BuildingMapper.xml | 74 +-- .../resources/mapper/room/FloorMapper.xml | 73 ++- .../resources/mapper/room/ProjectMapper.xml | 75 +-- .../mapper/room/RoomBusinessInfoMapper.xml | 109 ++-- .../mapper/room/RoomExtendInfoMapper.xml | 109 ++-- .../resources/mapper/room/RoomImageMapper.xml | 37 +- src/main/resources/mapper/room/RoomMapper.xml | 214 ++++--- target/classes/application.yml | 89 --- .../core/controller/BaseController$1.class | Bin 1004 -> 0 bytes .../core/controller/BaseController.class | Bin 5808 -> 0 bytes .../eden/common/core/domain/AjaxResult.class | Bin 2227 -> 0 bytes .../eden/common/core/page/TableDataInfo.class | Bin 1714 -> 0 bytes .../common/exception/ServiceException.class | Bin 1466 -> 0 bytes .../com/eden/common/utils/DateUtils.class | Bin 1490 -> 0 bytes .../com/eden/common/utils/SecurityUtils.class | Bin 1575 -> 0 bytes .../com/eden/room/RoomApplication.class | Bin 1209 -> 0 bytes .../com/eden/room/common/ContextUser.class | Bin 2806 -> 0 bytes .../classes/com/eden/room/common/Result.class | Bin 3601 -> 0 bytes .../eden/room/common/UserContextHolder.class | Bin 1556 -> 0 bytes .../common/enums/BusinessStatusEnum.class | Bin 2224 -> 0 bytes .../common/enums/DecorationStatusEnum.class | Bin 2463 -> 0 bytes .../room/common/enums/ImageTypeEnum.class | Bin 1985 -> 0 bytes .../room/common/enums/PriceUnitEnum.class | Bin 2475 -> 0 bytes .../common/enums/PropertyNatureEnum.class | Bin 2090 -> 0 bytes .../room/common/enums/RentalStatusEnum.class | Bin 2201 -> 0 bytes .../room/common/enums/RoomStatusEnum.class | Bin 2054 -> 0 bytes .../eden/room/common/enums/RoomTypeEnum.class | Bin 2441 -> 0 bytes .../com/eden/room/config/CorsConfig.class | Bin 1418 -> 0 bytes .../FeignConfig$FeignErrorDecoder.class | Bin 1429 -> 0 bytes .../com/eden/room/config/FeignConfig.class | Bin 1888 -> 0 bytes .../com/eden/room/config/SwaggerConfig.class | Bin 2445 -> 0 bytes .../eden/room/config/WebMvcConfigurer.class | Bin 1575 -> 0 bytes .../room/controller/BuildingController.class | Bin 4825 -> 0 bytes .../room/controller/FloorController.class | Bin 4192 -> 0 bytes .../room/controller/OwnerController.class | Bin 2625 -> 0 bytes .../room/controller/ProjectController.class | Bin 5090 -> 0 bytes .../controller/ProjectForeignController.class | Bin 1695 -> 0 bytes .../eden/room/controller/RoomController.class | Bin 7790 -> 0 bytes .../controller/RoomTemplateController.class | Bin 9200 -> 0 bytes .../com/eden/room/domain/BaseEntity.class | Bin 6510 -> 0 bytes .../com/eden/room/domain/Building.class | Bin 20076 -> 0 bytes .../classes/com/eden/room/domain/Floor.class | Bin 4137 -> 0 bytes .../com/eden/room/domain/Project.class | Bin 9988 -> 0 bytes .../classes/com/eden/room/domain/Room.class | Bin 10356 -> 0 bytes .../eden/room/domain/RoomBusinessInfo.class | Bin 10966 -> 0 bytes .../com/eden/room/domain/RoomExport.class | Bin 8736 -> 0 bytes .../com/eden/room/domain/RoomExtendInfo.class | Bin 10860 -> 0 bytes .../com/eden/room/domain/RoomImage.class | Bin 3505 -> 0 bytes .../com/eden/room/domain/dto/OwnerDTO.class | Bin 3182 -> 0 bytes .../com/eden/room/domain/dto/RoomDTO.class | Bin 6039 -> 0 bytes .../eden/room/domain/dto/RoomExportDTO.class | Bin 20190 -> 0 bytes .../eden/room/domain/dto/RoomImportDTO.class | Bin 10295 -> 0 bytes .../eden/room/domain/dto/RoomQueryDTO.class | Bin 7029 -> 0 bytes .../com/eden/room/domain/dto/TagDTO.class | Bin 2286 -> 0 bytes .../eden/room/domain/vo/BuildingTreeVO.class | Bin 3254 -> 0 bytes .../com/eden/room/domain/vo/FloorTreeVO.class | Bin 3275 -> 0 bytes .../eden/room/domain/vo/ProjectTreeVO.class | Bin 3204 -> 0 bytes .../com/eden/room/domain/vo/RoomTreeVO.class | Bin 3926 -> 0 bytes .../eden/room/feign/ContractFeignClient.class | Bin 1008 -> 0 bytes .../room/feign/ContractFeignFallback.class | Bin 962 -> 0 bytes .../eden/room/feign/CustomerFeignClient.class | Bin 1066 -> 0 bytes .../room/feign/CustomerFeignFallback.class | Bin 1114 -> 0 bytes .../eden/room/feign/OwnerFeignClient.class | Bin 915 -> 0 bytes .../com/eden/room/feign/TagFeignClient.class | Bin 874 -> 0 bytes .../eden/room/feign/TagFeignFallback.class | Bin 918 -> 0 bytes .../com/eden/room/mapper/BuildingMapper.class | Bin 1215 -> 0 bytes .../com/eden/room/mapper/FloorMapper.class | Bin 964 -> 0 bytes .../com/eden/room/mapper/ProjectMapper.class | Bin 1155 -> 0 bytes .../eden/room/mapper/ProjectTreeMapper.class | Bin 1006 -> 0 bytes .../room/mapper/RoomBusinessInfoMapper.class | Bin 1341 -> 0 bytes .../room/mapper/RoomExtendInfoMapper.class | Bin 1305 -> 0 bytes .../eden/room/mapper/RoomImageMapper.class | Bin 1505 -> 0 bytes .../com/eden/room/mapper/RoomMapper.class | Bin 1396 -> 0 bytes .../eden/room/service/IBuildingService.class | Bin 1000 -> 0 bytes .../com/eden/room/service/IFloorService.class | Bin 834 -> 0 bytes .../eden/room/service/IProjectService.class | Bin 1165 -> 0 bytes .../com/eden/room/service/IRoomService.class | Bin 1492 -> 0 bytes .../room/service/ProjectTreeService.class | Bin 343 -> 0 bytes .../room/service/RoomTemplateService.class | Bin 3317 -> 0 bytes .../service/impl/BuildingServiceImpl.class | Bin 3436 -> 0 bytes .../room/service/impl/FloorServiceImpl.class | Bin 2828 -> 0 bytes .../service/impl/ProjectServiceImpl.class | Bin 2897 -> 0 bytes .../service/impl/ProjectTreeServiceImpl.class | Bin 2656 -> 0 bytes .../room/service/impl/RoomServiceImpl.class | Bin 27221 -> 0 bytes .../com/eden/room/util/ExcelUtil.class | Bin 4021 -> 0 bytes .../com/eden/room/utils/ExcelUtil$1.class | Bin 829 -> 0 bytes .../com/eden/room/utils/ExcelUtil.class | Bin 19050 -> 0 bytes .../room/utils/excel/Excel$ColumnType.class | Bin 1383 -> 0 bytes .../eden/room/utils/excel/Excel$Type.class | Bin 1387 -> 0 bytes .../com/eden/room/utils/excel/Excel.class | Bin 1240 -> 0 bytes target/classes/mapper/ProjectTreeMapper.xml | 49 -- target/classes/mapper/room/BuildingMapper.xml | 272 --------- target/classes/mapper/room/FloorMapper.xml | 172 ------ target/classes/mapper/room/ProjectMapper.xml | 213 ------- .../mapper/room/RoomBusinessInfoMapper.xml | 146 ----- .../mapper/room/RoomExtendInfoMapper.xml | 143 ----- .../classes/mapper/room/RoomImageMapper.xml | 134 ----- target/classes/mapper/room/RoomMapper.xml | 222 ------- .../classes/templates/excel/room_import.xlsx | Bin 37592 -> 0 bytes .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 21 - 158 files changed, 2036 insertions(+), 3157 deletions(-) create mode 100644 src/main/java/com/eden/room/common/enums/VirtualFlagEnum.java create mode 100644 src/main/java/com/eden/room/common/enums/WholeFloorFlagEnum.java create mode 100644 src/main/java/com/eden/room/constant/RoomConstants.java delete mode 100644 src/main/java/com/eden/room/service/RoomTemplateService.java create mode 100644 src/main/java/com/eden/room/utils/EnumConvert.java create mode 100644 src/main/java/com/eden/room/utils/EnumConverter.java create mode 100644 src/main/java/com/eden/room/utils/EnumValid.java create mode 100644 src/main/java/com/eden/room/utils/EnumValidator.java create mode 100644 src/main/java/com/eden/room/utils/excel/BigDecimalConverter.java create mode 100644 src/main/java/com/eden/room/utils/excel/ExcelImportListener.java create mode 100644 src/main/java/com/eden/room/utils/excel/RoomImportListener.java delete mode 100644 target/classes/application.yml delete mode 100644 target/classes/com/eden/common/core/controller/BaseController$1.class delete mode 100644 target/classes/com/eden/common/core/controller/BaseController.class delete mode 100644 target/classes/com/eden/common/core/domain/AjaxResult.class delete mode 100644 target/classes/com/eden/common/core/page/TableDataInfo.class delete mode 100644 target/classes/com/eden/common/exception/ServiceException.class delete mode 100644 target/classes/com/eden/common/utils/DateUtils.class delete mode 100644 target/classes/com/eden/common/utils/SecurityUtils.class delete mode 100644 target/classes/com/eden/room/RoomApplication.class delete mode 100644 target/classes/com/eden/room/common/ContextUser.class delete mode 100644 target/classes/com/eden/room/common/Result.class delete mode 100644 target/classes/com/eden/room/common/UserContextHolder.class delete mode 100644 target/classes/com/eden/room/common/enums/BusinessStatusEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/DecorationStatusEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/ImageTypeEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/PriceUnitEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/PropertyNatureEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/RentalStatusEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/RoomStatusEnum.class delete mode 100644 target/classes/com/eden/room/common/enums/RoomTypeEnum.class delete mode 100644 target/classes/com/eden/room/config/CorsConfig.class delete mode 100644 target/classes/com/eden/room/config/FeignConfig$FeignErrorDecoder.class delete mode 100644 target/classes/com/eden/room/config/FeignConfig.class delete mode 100644 target/classes/com/eden/room/config/SwaggerConfig.class delete mode 100644 target/classes/com/eden/room/config/WebMvcConfigurer.class delete mode 100644 target/classes/com/eden/room/controller/BuildingController.class delete mode 100644 target/classes/com/eden/room/controller/FloorController.class delete mode 100644 target/classes/com/eden/room/controller/OwnerController.class delete mode 100644 target/classes/com/eden/room/controller/ProjectController.class delete mode 100644 target/classes/com/eden/room/controller/ProjectForeignController.class delete mode 100644 target/classes/com/eden/room/controller/RoomController.class delete mode 100644 target/classes/com/eden/room/controller/RoomTemplateController.class delete mode 100644 target/classes/com/eden/room/domain/BaseEntity.class delete mode 100644 target/classes/com/eden/room/domain/Building.class delete mode 100644 target/classes/com/eden/room/domain/Floor.class delete mode 100644 target/classes/com/eden/room/domain/Project.class delete mode 100644 target/classes/com/eden/room/domain/Room.class delete mode 100644 target/classes/com/eden/room/domain/RoomBusinessInfo.class delete mode 100644 target/classes/com/eden/room/domain/RoomExport.class delete mode 100644 target/classes/com/eden/room/domain/RoomExtendInfo.class delete mode 100644 target/classes/com/eden/room/domain/RoomImage.class delete mode 100644 target/classes/com/eden/room/domain/dto/OwnerDTO.class delete mode 100644 target/classes/com/eden/room/domain/dto/RoomDTO.class delete mode 100644 target/classes/com/eden/room/domain/dto/RoomExportDTO.class delete mode 100644 target/classes/com/eden/room/domain/dto/RoomImportDTO.class delete mode 100644 target/classes/com/eden/room/domain/dto/RoomQueryDTO.class delete mode 100644 target/classes/com/eden/room/domain/dto/TagDTO.class delete mode 100644 target/classes/com/eden/room/domain/vo/BuildingTreeVO.class delete mode 100644 target/classes/com/eden/room/domain/vo/FloorTreeVO.class delete mode 100644 target/classes/com/eden/room/domain/vo/ProjectTreeVO.class delete mode 100644 target/classes/com/eden/room/domain/vo/RoomTreeVO.class delete mode 100644 target/classes/com/eden/room/feign/ContractFeignClient.class delete mode 100644 target/classes/com/eden/room/feign/ContractFeignFallback.class delete mode 100644 target/classes/com/eden/room/feign/CustomerFeignClient.class delete mode 100644 target/classes/com/eden/room/feign/CustomerFeignFallback.class delete mode 100644 target/classes/com/eden/room/feign/OwnerFeignClient.class delete mode 100644 target/classes/com/eden/room/feign/TagFeignClient.class delete mode 100644 target/classes/com/eden/room/feign/TagFeignFallback.class delete mode 100644 target/classes/com/eden/room/mapper/BuildingMapper.class delete mode 100644 target/classes/com/eden/room/mapper/FloorMapper.class delete mode 100644 target/classes/com/eden/room/mapper/ProjectMapper.class delete mode 100644 target/classes/com/eden/room/mapper/ProjectTreeMapper.class delete mode 100644 target/classes/com/eden/room/mapper/RoomBusinessInfoMapper.class delete mode 100644 target/classes/com/eden/room/mapper/RoomExtendInfoMapper.class delete mode 100644 target/classes/com/eden/room/mapper/RoomImageMapper.class delete mode 100644 target/classes/com/eden/room/mapper/RoomMapper.class delete mode 100644 target/classes/com/eden/room/service/IBuildingService.class delete mode 100644 target/classes/com/eden/room/service/IFloorService.class delete mode 100644 target/classes/com/eden/room/service/IProjectService.class delete mode 100644 target/classes/com/eden/room/service/IRoomService.class delete mode 100644 target/classes/com/eden/room/service/ProjectTreeService.class delete mode 100644 target/classes/com/eden/room/service/RoomTemplateService.class delete mode 100644 target/classes/com/eden/room/service/impl/BuildingServiceImpl.class delete mode 100644 target/classes/com/eden/room/service/impl/FloorServiceImpl.class delete mode 100644 target/classes/com/eden/room/service/impl/ProjectServiceImpl.class delete mode 100644 target/classes/com/eden/room/service/impl/ProjectTreeServiceImpl.class delete mode 100644 target/classes/com/eden/room/service/impl/RoomServiceImpl.class delete mode 100644 target/classes/com/eden/room/util/ExcelUtil.class delete mode 100644 target/classes/com/eden/room/utils/ExcelUtil$1.class delete mode 100644 target/classes/com/eden/room/utils/ExcelUtil.class delete mode 100644 target/classes/com/eden/room/utils/excel/Excel$ColumnType.class delete mode 100644 target/classes/com/eden/room/utils/excel/Excel$Type.class delete mode 100644 target/classes/com/eden/room/utils/excel/Excel.class delete mode 100644 target/classes/mapper/ProjectTreeMapper.xml delete mode 100644 target/classes/mapper/room/BuildingMapper.xml delete mode 100644 target/classes/mapper/room/FloorMapper.xml delete mode 100644 target/classes/mapper/room/ProjectMapper.xml delete mode 100644 target/classes/mapper/room/RoomBusinessInfoMapper.xml delete mode 100644 target/classes/mapper/room/RoomExtendInfoMapper.xml delete mode 100644 target/classes/mapper/room/RoomImageMapper.xml delete mode 100644 target/classes/mapper/room/RoomMapper.xml delete mode 100644 target/classes/templates/excel/room_import.xlsx delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 3cf5b38..09688b2 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 712ab9d..6325f64 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -1,11 +1,31 @@ + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 141ab30..04dd8e0 100644 --- a/pom.xml +++ b/pom.xml @@ -186,6 +186,16 @@ springfox-swagger-ui 2.9.2 + + com.alibaba + easyexcel + 3.3.2 + + + cglib + cglib + 3.3.0 + diff --git a/src/main/java/com/eden/room/common/enums/BusinessStatusEnum.java b/src/main/java/com/eden/room/common/enums/BusinessStatusEnum.java index d549b86..e45febf 100644 --- a/src/main/java/com/eden/room/common/enums/BusinessStatusEnum.java +++ b/src/main/java/com/eden/room/common/enums/BusinessStatusEnum.java @@ -10,34 +10,35 @@ public enum BusinessStatusEnum { /** 不招商 */ NO_BUSINESS("2","不招商"); - + + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; + public String getValue() { + return value; + } BusinessStatusEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static BusinessStatusEnum getByValue(String value) { + public static String getByValue(String value) { for (BusinessStatusEnum status : values()) { - if (status.getKey().equals(value)) { - return status; + if (status.getValue().equals(value)) { + return status.getKey(); } } return null; @@ -59,10 +60,15 @@ public enum BusinessStatusEnum { /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (BusinessStatusEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/DecorationStatusEnum.java b/src/main/java/com/eden/room/common/enums/DecorationStatusEnum.java index 7145ac5..881aae3 100644 --- a/src/main/java/com/eden/room/common/enums/DecorationStatusEnum.java +++ b/src/main/java/com/eden/room/common/enums/DecorationStatusEnum.java @@ -19,6 +19,8 @@ public enum DecorationStatusEnum { /** 豪装 */ LUXURY("5","豪装"); + + private final String key; private final String value; @@ -26,27 +28,25 @@ public enum DecorationStatusEnum { return key; } - private final String key; + public String getValue() { + return value; + } DecorationStatusEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static DecorationStatusEnum getByValue(String value) { + public static String getByValue(String value) { for (DecorationStatusEnum status : values()) { - if (status.getKey().equals(value)) { - return status; + if (status.getValue().equals(value)) { + return status.getKey(); } } return null; @@ -68,10 +68,15 @@ public enum DecorationStatusEnum { /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (DecorationStatusEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/ImageTypeEnum.java b/src/main/java/com/eden/room/common/enums/ImageTypeEnum.java index d47a058..6da999e 100644 --- a/src/main/java/com/eden/room/common/enums/ImageTypeEnum.java +++ b/src/main/java/com/eden/room/common/enums/ImageTypeEnum.java @@ -10,46 +10,65 @@ public enum ImageTypeEnum { /** 户型图 */ FLOOR_PLAN("2","户型图"); - + + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; + public String getValue() { + return value; + } ImageTypeEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static ImageTypeEnum getByValue(String value) { - for (ImageTypeEnum type : values()) { - if (type.getKey().equals(value)) { - return type; + public static String getByValue(String value) { + for (ImageTypeEnum status : values()) { + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (ImageTypeEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); } } return null; } - /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (ImageTypeEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/PriceUnitEnum.java b/src/main/java/com/eden/room/common/enums/PriceUnitEnum.java index 6390291..bae5094 100644 --- a/src/main/java/com/eden/room/common/enums/PriceUnitEnum.java +++ b/src/main/java/com/eden/room/common/enums/PriceUnitEnum.java @@ -5,42 +5,43 @@ package com.eden.room.common.enums; */ public enum PriceUnitEnum { - /** 元/㎡/天 */ - PRICE_UNIT_ENUM_1("1","元/㎡/天"), + /** 元/㎡·天 */ + PRICE_UNIT_ENUM_1("1","元/m²·天"), - /** 元/㎡/月 */ - PRICE_UNIT_ENUM_2("2","元/㎡/月"), + /** 元/㎡·月 */ + PRICE_UNIT_ENUM_2("2","元/m²·月"), PRICE_UNIT_ENUM_3("3","元/月"), PRICE_UNIT_ENUM_4("4","元/天"), PRICE_UNIT_ENUM_5("5","元/年"); + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; + public String getValue() { + return value; + } PriceUnitEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static PriceUnitEnum getByValue(String value) { + public static String getByValue(String value) { for (PriceUnitEnum status : values()) { if (status.getValue().equals(value)) { - return status; + return status.getKey(); } } return null; @@ -62,10 +63,15 @@ public enum PriceUnitEnum { /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (PriceUnitEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/PropertyNatureEnum.java b/src/main/java/com/eden/room/common/enums/PropertyNatureEnum.java index e6418fe..44bcd0a 100644 --- a/src/main/java/com/eden/room/common/enums/PropertyNatureEnum.java +++ b/src/main/java/com/eden/room/common/enums/PropertyNatureEnum.java @@ -13,46 +13,65 @@ public enum PropertyNatureEnum { /** 自持+承租 */ MIXED("3","自持+承租"); - + + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; + public String getValue() { + return value; + } PropertyNatureEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static PropertyNatureEnum getByValue(String value) { - for (PropertyNatureEnum nature : values()) { - if (nature.getKey().equals(value)) { - return nature; + public static String getByValue(String value) { + for (PropertyNatureEnum status : values()) { + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (PropertyNatureEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); } } return null; } - /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (PropertyNatureEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/RentalStatusEnum.java b/src/main/java/com/eden/room/common/enums/RentalStatusEnum.java index c962baf..fb24585 100644 --- a/src/main/java/com/eden/room/common/enums/RentalStatusEnum.java +++ b/src/main/java/com/eden/room/common/enums/RentalStatusEnum.java @@ -13,34 +13,34 @@ public enum RentalStatusEnum { /** 下架 */ - + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; + public String getValue() { + return value; + } RentalStatusEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static RentalStatusEnum getByValue(String value) { + public static String getByValue(String value) { for (RentalStatusEnum status : values()) { - if (status.getKey().equals(value)) { - return status; + if (status.getValue().equals(value)) { + return status.getKey(); } } return null; @@ -62,10 +62,15 @@ public enum RentalStatusEnum { /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (RentalStatusEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/RoomStatusEnum.java b/src/main/java/com/eden/room/common/enums/RoomStatusEnum.java index 7f4565d..b443268 100644 --- a/src/main/java/com/eden/room/common/enums/RoomStatusEnum.java +++ b/src/main/java/com/eden/room/common/enums/RoomStatusEnum.java @@ -13,48 +13,65 @@ public enum RoomStatusEnum { /** 私密 */ PRIVATE("3","私密"); - - ; + + private final String key; + private final String value; public String getKey() { return key; } - private final String key; - - RoomStatusEnum(String key,String value) { - this.key = key; - this.value = value; - } - public String getValue() { return value; } - + + RoomStatusEnum(String key, String value) { + this.value = value; + this.key = key; + } + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static RoomStatusEnum getByValue(String value) { + public static String getByValue(String value) { for (RoomStatusEnum status : values()) { - if (status.getKey().equals(value)) { - return status; + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (RoomStatusEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); } } return null; } - /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (RoomStatusEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/RoomTypeEnum.java b/src/main/java/com/eden/room/common/enums/RoomTypeEnum.java index 87a32de..518fb15 100644 --- a/src/main/java/com/eden/room/common/enums/RoomTypeEnum.java +++ b/src/main/java/com/eden/room/common/enums/RoomTypeEnum.java @@ -28,45 +28,65 @@ public enum RoomTypeEnum { /** 其他 */ OTHER("8","其他"); - - private final String value; + + private final String key; + private final String value; + public String getKey() { return key; } + public String getValue() { + return value; + } + RoomTypeEnum(String key, String value) { this.value = value; this.key = key; } - - public String getValue() { - return value; - } - + /** * 根据值获取枚举 * * @param value 枚举值 * @return 枚举 */ - public static RoomTypeEnum getByValue(String value) { - for (RoomTypeEnum type : values()) { - if (type.getKey().equals(value)) { - return type; + public static String getByValue(String value) { + for (RoomTypeEnum status : values()) { + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (RoomTypeEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); } } return null; } - /** * 校验枚举值是否有效 * - * @param value 枚举值 + * @param key 枚举值 * @return 是否有效 */ - public static boolean isValid(String value) { - return getByValue(value) != null; + public static boolean isValid(String key) { + for (RoomTypeEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/common/enums/VirtualFlagEnum.java b/src/main/java/com/eden/room/common/enums/VirtualFlagEnum.java new file mode 100644 index 0000000..2f3bdfa --- /dev/null +++ b/src/main/java/com/eden/room/common/enums/VirtualFlagEnum.java @@ -0,0 +1,71 @@ +package com.eden.room.common.enums; + +public enum VirtualFlagEnum { + + /** 是 */ + YES("1","是"), + + /** 否 */ + NO("0","否"); + + + private final String key; + + private final String value; + + public String getKey() { + return key; + } + + public String getValue() { + return value; + } + + VirtualFlagEnum(String key, String value) { + this.value = value; + this.key = key; + } + + /** + * 根据值获取枚举 + * + * @param value 枚举值 + * @return 枚举 + */ + public static String getByValue(String value) { + for (VirtualFlagEnum status : values()) { + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (VirtualFlagEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); + } + } + return null; + } + /** + * 校验枚举值是否有效 + * + * @param key 枚举值 + * @return 是否有效 + */ + public static boolean isValid(String key) { + for (VirtualFlagEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/eden/room/common/enums/WholeFloorFlagEnum.java b/src/main/java/com/eden/room/common/enums/WholeFloorFlagEnum.java new file mode 100644 index 0000000..a3859f2 --- /dev/null +++ b/src/main/java/com/eden/room/common/enums/WholeFloorFlagEnum.java @@ -0,0 +1,71 @@ +package com.eden.room.common.enums; + +public enum WholeFloorFlagEnum { + + /** 是 */ + YES("1","是"), + + /** 否 */ + NO("0","否"); + + + private final String key; + + private final String value; + + public String getKey() { + return key; + } + + public String getValue() { + return value; + } + + WholeFloorFlagEnum(String key, String value) { + this.value = value; + this.key = key; + } + + /** + * 根据值获取枚举 + * + * @param value 枚举值 + * @return 枚举 + */ + public static String getByValue(String value) { + for (WholeFloorFlagEnum status : values()) { + if (status.getValue().equals(value)) { + return status.getKey(); + } + } + return null; + } + /** + * 根据枚举获取值 + * + * @param key + * @return 枚举 + */ + public static String getValue(String key) { + for (WholeFloorFlagEnum status : values()) { + if (status.getKey().equals(key)) { + return status.getValue(); + } + } + return null; + } + /** + * 校验枚举值是否有效 + * + * @param key 枚举值 + * @return 是否有效 + */ + public static boolean isValid(String key) { + for (WholeFloorFlagEnum status : values()) { + if (status.getKey().equals(key)) { + return true; + } + } + return false; + } +} diff --git a/src/main/java/com/eden/room/constant/RoomConstants.java b/src/main/java/com/eden/room/constant/RoomConstants.java new file mode 100644 index 0000000..6835195 --- /dev/null +++ b/src/main/java/com/eden/room/constant/RoomConstants.java @@ -0,0 +1,32 @@ +package com.eden.room.constant; + +/** + * 房源相关常量 + */ +public class RoomConstants { + + // Excel相关常量 + public static final String EXCEL_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + public static final String UTF8 = "utf-8"; + public static final String EXCEL_EXTENSION = ".xlsx"; + public static final int EXCEL_DEFAULT_COLUMN_WIDTH = 15; + public static final String EXCEL_DATE_FORMAT = "yyyy-MM-dd"; + public static final int EXCEL_HEADER_ROW_NUMBER = 1; + public static final long MAX_FILE_SIZE = 1024 * 1024; // 1MB + + public static final String CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + public static final String CHARSET = "utf-8"; + private static final String EXPORT_FILE_PREFIX = "房源信息_"; + + // 文件相关常量 + public static final String ROOM_IMPORT_TEMPLATE = "room_import.xlsx"; + public static final String ROOM_IMPORT_RESULT = "room_import_result.xlsx"; + + // 业务相关常量 + public static final String DEL_FLAG_NORMAL = "0"; + public static final String DEFAULT_USERNAME = "admin"; + public static final int BATCH_SIZE = 500; + + + public static final int IMPORT_HEADER_ROW_INDEX = 2; +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/controller/BuildingController.java b/src/main/java/com/eden/room/controller/BuildingController.java index 62a11dd..46841dd 100644 --- a/src/main/java/com/eden/room/controller/BuildingController.java +++ b/src/main/java/com/eden/room/controller/BuildingController.java @@ -53,7 +53,7 @@ public class BuildingController extends BaseController { /** * 新增楼宇信息 */ - @PostMapping + @PostMapping("/add") public Result add(@RequestBody Building building) { if (buildingService.checkBuildingNameExists(building)) { return error("新增楼宇'" + building.getBuildingName() + "'失败,楼宇名称已存在"); @@ -65,7 +65,7 @@ public class BuildingController extends BaseController { /** * 修改楼宇信息 */ - @PutMapping + @PostMapping("/edit") public Result edit(@RequestBody Building building) { int rows = buildingService.updateBuilding(building); return toResult(rows); @@ -74,14 +74,10 @@ public class BuildingController extends BaseController { /** * 删除楼宇信息 */ - @DeleteMapping("/{ids}") - public Result remove(@PathVariable String[] ids) { - try { - int rows = buildingService.deleteBuildingByIds(ids); - return toResult(rows); - } catch (RuntimeException e) { - return error(e.getMessage()); - } + @PostMapping("/remove/{ids}") + public Result remove(@PathVariable List ids) { + int rows = buildingService.deleteBuildingByIds(ids); + return toResult(rows); } /** * 查询楼宇信息列表 diff --git a/src/main/java/com/eden/room/controller/FloorController.java b/src/main/java/com/eden/room/controller/FloorController.java index 333adc1..debaac3 100644 --- a/src/main/java/com/eden/room/controller/FloorController.java +++ b/src/main/java/com/eden/room/controller/FloorController.java @@ -50,7 +50,7 @@ public class FloorController extends BaseController { /** * 新增楼层信息 */ - @PostMapping + @PostMapping("/add") public Result add(@RequestBody Floor floor) { int rows = floorService.insertFloor(floor); return toResult(rows); @@ -59,7 +59,7 @@ public class FloorController extends BaseController { /** * 修改楼层信息 */ - @PutMapping + @PostMapping("/edit") public Result edit(@RequestBody Floor floor) { int rows = floorService.updateFloor(floor); return toResult(rows); @@ -68,14 +68,10 @@ public class FloorController extends BaseController { /** * 删除楼层信息 */ - @DeleteMapping("/{ids}") - public Result remove(@PathVariable String[] ids) { - try { - int rows = floorService.deleteFloorByIds(ids); - return toResult(rows); - } catch (RuntimeException e) { - return error(e.getMessage()); - } + @PostMapping("/remove/{ids}") + public Result remove(@PathVariable List ids) { + int rows = floorService.deleteFloorByIds(ids); + return toResult(rows); } /** diff --git a/src/main/java/com/eden/room/controller/ProjectController.java b/src/main/java/com/eden/room/controller/ProjectController.java index 971c3f5..21d2558 100644 --- a/src/main/java/com/eden/room/controller/ProjectController.java +++ b/src/main/java/com/eden/room/controller/ProjectController.java @@ -50,7 +50,7 @@ public class ProjectController extends BaseController { /** * 新增项目信息 */ - @PostMapping + @PostMapping("/add") public Result add(@RequestBody Project project) { // 校验项目名称是否唯一 if (projectService.checkProjectNameExists(project)) { @@ -63,12 +63,12 @@ public class ProjectController extends BaseController { /** * 修改项目信息 */ - @PutMapping + @PostMapping("/edit") public Result edit(@RequestBody Project project) { -// // 校验项目名称是否唯一 -// if (projectService.checkProjectNameExists(project)) { -// return error("修改项目'" + project.getProjectName() + "'失败,项目名称已存在"); -// } + // 校验项目名称是否唯一 + if (projectService.checkProjectNameExists(project)) { + return error("修改项目'" + project.getProjectName() + "'失败,项目名称已存在"); + } int rows = projectService.updateProject(project); return toResult(rows); } @@ -76,7 +76,7 @@ public class ProjectController extends BaseController { /** * 删除项目信息 */ - @DeleteMapping("/{ids}") + @PostMapping("/remove/{ids}") public Result remove(@PathVariable String[] ids) { try { int rows = projectService.deleteProjectByIds(ids); diff --git a/src/main/java/com/eden/room/controller/RoomController.java b/src/main/java/com/eden/room/controller/RoomController.java index dda7cef..92d6316 100644 --- a/src/main/java/com/eden/room/controller/RoomController.java +++ b/src/main/java/com/eden/room/controller/RoomController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Null; import java.util.List; import java.util.Map; @@ -42,25 +43,8 @@ public class RoomController { public Result> list(RoomQueryDTO queryDTO, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) { - Room room = new Room(); - if (queryDTO != null) { - // 设置查询条件 - room.setRoomNumber(queryDTO.getRoomNumber()); - room.setProjectId(queryDTO.getProjectId()); - room.setBuildingId(queryDTO.getBuildingId()); - room.setFloorId(queryDTO.getFloorId()); - room.setRoomType(queryDTO.getRoomType()); - room.setIsVirtual(queryDTO.getIsVirtual()); - room.setBusinessStatus(queryDTO.getBusinessStatus()); - - // 校验枚举值 - if (StringUtils.isNotEmpty(queryDTO.getRoomType()) && !RoomTypeEnum.isValid(queryDTO.getRoomType())) { - return Result.error("无效的房源类型"); - } - } - PageHelper.startPage(pageNum, pageSize); - List list = roomService.selectRoomList(room); + List list = roomService.selectRoomList(queryDTO); return Result.success(new PageInfo<>(list)); } @@ -68,7 +52,7 @@ public class RoomController { * 获取房源详情 */ @GetMapping("/{id}") - public Result getInfo(@PathVariable("id") @NotBlank(message = "房源ID不能为空") Long id) { + public Result getInfo(@PathVariable("id") @NotNull(message = "房源ID不能为空") Long id) { RoomDTO roomDTO = roomService.selectRoomDetailById(id); return Result.success(roomDTO); } @@ -76,42 +60,15 @@ public class RoomController { /** * 新增房源 */ - @PostMapping + @PostMapping("/add") public Result add(@RequestBody @Valid RoomDTO roomDTO) { - // 校验枚举值 - if (StringUtils.isNotEmpty(roomDTO.getRoomType()) && !RoomTypeEnum.isValid(roomDTO.getRoomType())) { - return Result.error("无效的房源类型"); - } - if (StringUtils.isNotEmpty(roomDTO.getRoomStatus()) && !RoomStatusEnum.isValid(roomDTO.getRoomStatus())) { - return Result.error("无效的房源状态"); - } - if (StringUtils.isNotEmpty(roomDTO.getPropertyNature()) && !PropertyNatureEnum.isValid(roomDTO.getPropertyNature())) { - return Result.error("无效的产权性质"); - } - - // 校验招商信息枚举值 - if (roomDTO.getBusinessInfo() != null) { - if (StringUtils.isNotEmpty(roomDTO.getBusinessInfo().getRentalStatus()) && - !RentalStatusEnum.isValid(roomDTO.getBusinessInfo().getRentalStatus())) { - return Result.error("无效的租赁状态"); - } - if (StringUtils.isNotEmpty(roomDTO.getBusinessInfo().getBusinessStatus()) && - !BusinessStatusEnum.isValid(roomDTO.getBusinessInfo().getBusinessStatus())) { - return Result.error("无效的招商状态"); - } - if (StringUtils.isNotEmpty(roomDTO.getBusinessInfo().getDecorationStatus()) && - !DecorationStatusEnum.isValid(roomDTO.getBusinessInfo().getDecorationStatus())) { - return Result.error("无效的装修情况"); - } - } - return Result.success(roomService.insertRoom(roomDTO)); } /** * 修改房源 */ - @PutMapping + @PostMapping("/edit") public Result edit(@RequestBody @Valid RoomDTO roomDTO) { if (roomDTO.getId() == null) { return Result.error("房源ID不能为空"); @@ -125,8 +82,8 @@ public class RoomController { /** * 删除房源 */ - @DeleteMapping("/{id}") - public Result remove(@PathVariable("id") @NotBlank(message = "房源ID不能为空") Long id) { + @PostMapping("/remove/{id}") + public Result remove(@PathVariable("id") @NotNull(message = "房源ID不能为空") Long id) { try { return Result.success(roomService.deleteRoomById(id)); } catch (Exception e) { @@ -134,22 +91,10 @@ public class RoomController { } } - /** - * 批量删除房源,无这个功能 - */ - @DeleteMapping("/batch") - public Result removeBatch(@RequestBody @NotEmpty(message = "房源ID列表不能为空") String[] ids) { - try { - return Result.success(roomService.deleteRoomByIds(ids)); - } catch (Exception e) { - return Result.error(e.getMessage()); - } - } - /** * 修改房源租赁状态 */ - @PutMapping("/status/{id}/{rentalStatus}") + @PostMapping("/status/{id}/{rentalStatus}") public Result updateRentalStatus( @PathVariable("id") @NotBlank(message = "房源ID不能为空") Long id, @PathVariable("rentalStatus") @NotBlank(message = "租赁状态不能为空") String rentalStatus) { @@ -179,7 +124,7 @@ public class RoomController { try { roomService.updateRoomRentalStatus(id, rentalStatus); - return Result.success("修改成功", "000000"); + return Result.success(); } catch (Exception e) { return Result.error(e.getMessage(), "1"); } diff --git a/src/main/java/com/eden/room/controller/RoomTemplateController.java b/src/main/java/com/eden/room/controller/RoomTemplateController.java index ef40304..ba2140f 100644 --- a/src/main/java/com/eden/room/controller/RoomTemplateController.java +++ b/src/main/java/com/eden/room/controller/RoomTemplateController.java @@ -1,34 +1,37 @@ package com.eden.room.controller; -import com.eden.room.common.Result; -import com.eden.room.domain.RoomExport; +import com.alibaba.excel.EasyExcel; +import com.eden.room.constant.RoomConstants; import com.eden.room.domain.dto.RoomExportDTO; import com.eden.room.domain.dto.RoomImportDTO; +import com.eden.room.domain.dto.RoomQueryDTO; +import com.eden.room.service.IBuildingService; +import com.eden.room.service.IFloorService; +import com.eden.room.service.IProjectService; import com.eden.room.service.IRoomService; -import com.eden.room.service.RoomTemplateService; import com.eden.room.utils.ExcelUtil; +import com.eden.room.utils.excel.BigDecimalConverter; +import com.eden.room.utils.excel.ExcelImportListener; +import com.eden.room.utils.excel.RoomImportListener; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpHeaders; +import org.springframework.validation.Validator; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; -import java.util.Map; /** * 房源模板下载控制器 @@ -37,15 +40,24 @@ import java.util.Map; @RestController @RequestMapping("/room/template") public class RoomTemplateController { - + private static final Logger log = LoggerFactory.getLogger(RoomTemplateController.class); - - @Autowired - private RoomTemplateService roomTemplateService; - + @Autowired private IRoomService roomService; + @Autowired + private IProjectService projectService; + + @Autowired + private IBuildingService buildingService; + + @Autowired + private IFloorService floorService; + + @Autowired + private Validator validator; + /** * 下载房源导入模板 * @@ -56,18 +68,18 @@ public class RoomTemplateController { public void downloadTemplate(HttpServletResponse response) throws IOException { try { // 设置要下载的文件的名称 - String fileName = "room_import.xlsx"; - + String fileName = RoomConstants.ROOM_IMPORT_TEMPLATE; + // 设置响应头 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); + response.setContentType(RoomConstants.CONTENT_TYPE); + response.setCharacterEncoding(RoomConstants.CHARSET); String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString()); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + encodedFileName + ";filename*=utf-8''" + encodedFileName); - + // 获取模板文件资源 ClassPathResource resource = new ClassPathResource("templates/excel/" + fileName); - + // 将文件内容写入响应流 try (InputStream inputStream = resource.getInputStream(); OutputStream outputStream = response.getOutputStream()) { @@ -82,7 +94,7 @@ public class RoomTemplateController { // 如果发生异常,写入错误响应 response.reset(); response.setContentType("application/json"); - response.setCharacterEncoding("utf-8"); + response.setCharacterEncoding(RoomConstants.CHARSET); response.getWriter().write("{\"code\":\"1\",\"message\":\"下载模板文件失败: " + e.getMessage() + "\"}"); } } @@ -90,45 +102,35 @@ public class RoomTemplateController { /** * 批量导出房源信息 - * - * @param ids 房源ID数组 + * + * @param queryDTO 房源ID数组 * @param response HTTP响应对象 */ - @ApiOperation(value = "批量导出房源", notes = "根据房源ID数组批量导出房源详细信息为Excel文件") - @ApiImplicitParam(name = "ids", value = "房源ID数组", required = true, dataType = "List") + @ApiOperation(value = "批量导出房源", notes = "根据查询条件批量导出房源详细信息为Excel文件") + @ApiImplicitParam(name = "queryDTO", value = "queryDTO", required = true, dataType = "List") @PostMapping("/export/batch") - public void exportRoomBatch(@RequestBody List ids, HttpServletResponse response) { + public void exportRoomBatch(@RequestBody RoomQueryDTO queryDTO, HttpServletResponse response) { try { - if (ids == null || ids.isEmpty()) { - throw new IllegalArgumentException("房源ID不能为空"); - } - - // 将List转换为String[] - String[] idArray = ids.toArray(new String[0]); - // 根据ID列表查询房源列表 - List list = roomService.exportRoomByIds(idArray); - + List list = roomService.exportRoom(queryDTO); + if (list.isEmpty()) { throw new IllegalArgumentException("未找到指定的房源信息"); } - + // 设置要下载的文件名称 String fileName = "房源信息_" + System.currentTimeMillis() + ".xlsx"; - - // 转换为符合导出模板的数据结构 - List exportData = roomTemplateService.convertToRoomImportList(list); - + // 设置响应头 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString()); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + encodedFileName + ";filename*=utf-8''" + encodedFileName); - + // 导出Excel - ExcelUtil excelUtil = new ExcelUtil<>(RoomExport.class); - excelUtil.exportExcel(exportData, "房源信息", response.getOutputStream()); + ExcelUtil excelUtil = new ExcelUtil<>(RoomExportDTO.class); + excelUtil.exportExcel(list, "房源信息", response.getOutputStream()); } catch (Exception e) { log.error("批量导出房源信息失败", e); @@ -146,7 +148,7 @@ public class RoomTemplateController { /** * 批量导入房源数据 - * + * * @param file 导入房源的Excel文件(必须遵循指定的模板格式) * @param response HTTP响应对象 */ @@ -154,47 +156,62 @@ public class RoomTemplateController { @ApiImplicitParam(name = "file", value = "Excel文件", required = true, dataType = "MultipartFile") @PostMapping("/import") public void importRoom(@RequestParam("file") MultipartFile file, HttpServletResponse response) throws IOException { - if (file.isEmpty()) { + // 校验文件 + validateFile(file); + + log.info("开始导入Excel文件: {}, 大小: {} bytes", file.getOriginalFilename(), file.getSize()); + + // 创建导入监听器 + RoomImportListener listener = new RoomImportListener(validator, roomService, projectService, buildingService, floorService); + + // 读取Excel文件,添加自定义转换器 + EasyExcel.read(file.getInputStream(), RoomImportDTO.class, listener) + .registerConverter(new BigDecimalConverter()) + .headRowNumber(1) + .sheet() + .doRead(); + + // 获取错误信息 + Boolean successFlag = listener.getSuccessFlag(); + + if (successFlag) { + // 如果没有错误,直接返回成功 + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().write("{\"code\":\"0\",\"message\":\"导入成功\"}"); + return; + } + + // 如果有错误,生成带错误信息的Excel文件 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String encodedFileName = URLEncoder.encode("room_import_result.xlsx", StandardCharsets.UTF_8.toString()); + response.setHeader("Content-Disposition", "attachment;filename=" + encodedFileName); + + // 写入带错误信息的Excel文件 + EasyExcel.write(response.getOutputStream(), RoomImportDTO.class) + .sheet("导入结果") + .doWrite(listener.getDataList()); + } + + + /** + * 校验文件 + */ + private void validateFile(MultipartFile file) { + if (file == null || file.isEmpty()) { throw new RuntimeException("请选择要上传的文件"); } - + + // 校验文件大小 + if (file.getSize() > RoomConstants.MAX_FILE_SIZE) { + throw new RuntimeException("文件大小不能超过1MB"); + } + // 校验文件格式 String filename = file.getOriginalFilename(); if (filename == null || !(filename.toLowerCase().endsWith(".xls") || filename.toLowerCase().endsWith(".xlsx"))) { throw new RuntimeException("文件格式不正确,请上传Excel文件"); } - - log.info("开始导入Excel文件: {}, 大小: {} bytes", filename, file.getSize()); - - try { - // 检查文件大小(10MB限制) - if (file.getSize() > 10 * 1024 * 1024) { - throw new RuntimeException("文件过大,请控制在10MB以内"); - } - - Map result = roomService.importRoom(file); - - // 获取Excel数据流 - byte[] excelBytes = (byte[]) result.get("excelBytes"); - if (excelBytes != null && excelBytes.length > 0) { - // 设置响应头 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); - String encodedFileName = URLEncoder.encode("room_import_result.xlsx", StandardCharsets.UTF_8.toString()); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, - "attachment; filename=" + encodedFileName + ";filename*=utf-8''" + encodedFileName); - - // 将数据流写入响应 - try (OutputStream outputStream = response.getOutputStream()) { - outputStream.write(excelBytes); - outputStream.flush(); - } - } else { - throw new RuntimeException("生成结果文件失败"); - } - } catch (Exception e) { - log.error("导入房源失败", e); - throw new RuntimeException("导入失败:" + e.getMessage()); - } } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/domain/Building.java b/src/main/java/com/eden/room/domain/Building.java index 4d08d21..b996b0e 100644 --- a/src/main/java/com/eden/room/domain/Building.java +++ b/src/main/java/com/eden/room/domain/Building.java @@ -16,7 +16,7 @@ import javax.persistence.Id; */ @Data @EqualsAndHashCode(callSuper = true) -@Table(name = "TB_BUILDING") +@Table(name = "TB_RES_BUILDING") public class Building extends BaseEntity { private static final long serialVersionUID = 1L; @@ -25,10 +25,6 @@ public class Building extends BaseEntity { @Column(name = "id") private Long id; - /** 租户ID */ - @Column(name = "tenant_id") - //@NotBlank(message = "租户ID不能为空") - private String tenantId; /** 所属项目ID */ @Column(name = "project_id") @@ -179,13 +175,7 @@ public class Building extends BaseEntity { this.id = id; } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } public String getProjectId() { return projectId; diff --git a/src/main/java/com/eden/room/domain/Floor.java b/src/main/java/com/eden/room/domain/Floor.java index d54148f..948bfda 100644 --- a/src/main/java/com/eden/room/domain/Floor.java +++ b/src/main/java/com/eden/room/domain/Floor.java @@ -13,7 +13,7 @@ import javax.persistence.Id; */ @Data @EqualsAndHashCode(callSuper = true) -@Table(name = "TB_FLOOR") +@Table(name = "TB_RES_FLOOR") public class Floor extends BaseEntity { private static final long serialVersionUID = 1L; @@ -22,10 +22,6 @@ public class Floor extends BaseEntity { @Column(name = "id") private Long id; - /** 租户ID */ - @Column(name = "tenant_id") - private String tenantId; - /** 所属楼宇ID */ @Column(name = "building_id") @NotBlank(message = "所属楼宇ID不能为空") diff --git a/src/main/java/com/eden/room/domain/Project.java b/src/main/java/com/eden/room/domain/Project.java index c4fff41..d29486d 100644 --- a/src/main/java/com/eden/room/domain/Project.java +++ b/src/main/java/com/eden/room/domain/Project.java @@ -13,11 +13,11 @@ import javax.persistence.Id; /** * 项目信息实体类 - * 对应数据库表: TB_PROJECT + * 对应数据库表: TB_RES_PROJECT */ @Data @EqualsAndHashCode(callSuper = true) -@Table(name = "TB_PROJECT") +@Table(name = "TB_RES_PROJECT") public class Project extends BaseEntity { private static final long serialVersionUID = 1L; @@ -27,10 +27,6 @@ public class Project extends BaseEntity { @NotBlank(message = "项目ID不能为空") private String id; - /** 租户ID */ - @Column(name = "tenant_id") - private String tenantId; - /** * 项目类型:写字楼、产业园区、商场、联合办公、公寓、小区、社区养老 */ @@ -99,13 +95,7 @@ public class Project extends BaseEntity { this.id = id; } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } public String getProjectType() { return projectType; diff --git a/src/main/java/com/eden/room/domain/Room.java b/src/main/java/com/eden/room/domain/Room.java index d0f336b..f9f0097 100644 --- a/src/main/java/com/eden/room/domain/Room.java +++ b/src/main/java/com/eden/room/domain/Room.java @@ -12,8 +12,8 @@ import org.springframework.format.annotation.DateTimeFormat; /** - * 房源基本信息实体类 TB_ROOM - * + * 房源基本信息实体类 TB_RES_ROOM + * * @author eden * @date 2023-08-01 */ @@ -27,7 +27,7 @@ public class Room extends BaseEntity /** 项目ID */ @Excel(name = "项目ID") private String projectId; - + /** 项目名称 */ @Excel(name = "项目名称") private String projectName; @@ -35,7 +35,7 @@ public class Room extends BaseEntity /** 楼宇ID */ @Excel(name = "楼宇ID") private Long buildingId; - + /** 楼宇名称 */ @Excel(name = "楼宇名称") private String buildingName; @@ -43,7 +43,7 @@ public class Room extends BaseEntity /** 楼层ID */ @Excel(name = "楼层ID") private Long floorId; - + /** 楼层名称 */ @Excel(name = "楼层名称") private String floorName; @@ -55,7 +55,7 @@ public class Room extends BaseEntity /** 房源数字编号 */ @Excel(name = "房间数字编号") private String roomDigitalNumber; - + /** 房源管理编号 */ @Excel(name = "房源管理编号") private String roomManageNumber; @@ -65,7 +65,7 @@ public class Room extends BaseEntity private String roomName; /** 房源类型 */ - @Excel(name = "房源类型", readConverterExp = "1=办公,2=商业,3=仓储,4=厂房,5=多经,6=公寓,7=住宅,8=其他") + @Excel(name = "房源类型") private String roomType; /** 楼层 */ @@ -73,52 +73,52 @@ public class Room extends BaseEntity private String floor; /** 是否整层 */ - @Excel(name = "是否整层", readConverterExp = "0=否,1=是") + @Excel(name = "是否整层") private String isWholeFloor; /** 建筑面积 */ @Excel(name = "建筑面积") private BigDecimal buildingArea; - + /** 计租面积 */ @Excel(name = "计租面积") private BigDecimal rentalArea; - + /** 计费面积 */ @Excel(name = "计费面积") private BigDecimal billingArea; - + /** 套内面积 */ @Excel(name = "套内面积") private BigDecimal innerArea; - + /** 是否虚拟房源 */ - @Excel(name = "是否虚拟房源", readConverterExp = "0=否,1=是") + @Excel(name = "是否虚拟房源") private String isVirtual; - + /** 房源交付时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "房源交付时间", width = 30, dateFormat = "yyyy-MM-dd") private Date deliveryTime; - + /** 绑定业主ID */ @Excel(name = "绑定业主ID") private Long ownerId; - + /** 产权性质 */ - @Excel(name = "产权性质", readConverterExp = "1=自持,2=承租,3=自持+承租") + @Excel(name = "产权性质") private String propertyNature; - + /** 层高(米) */ @Excel(name = "层高(米)") private BigDecimal height; - + /** 荷载值 */ @Excel(name = "荷载值") private BigDecimal loadValue; - + /** 房源状态 */ - @Excel(name = "房源状态", readConverterExp = "1=公开,2=关闭,3=私密") + @Excel(name = "房源状态") private String roomStatus; /** 房源面积 */ @@ -128,6 +128,29 @@ public class Room extends BaseEntity @Excel(name = "报价") private BigDecimal price; + /** 报价单位 */ + @Excel(name = "priceUnit") + private String priceUnit; + + /** 租赁状态 */ + @Excel(name = "租赁状态") + private String rentalStatus; + /** 可租日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date availableDate; + + /** 出租状态 */ + @Excel(name = "招商状态") + private String businessStatus; + /** 装修情况 */ + @Excel(name = "装修情况") + private String decorationStatus; + + /** 标签 */ + @Excel(name = "标签") + private String tags; + public String getPriceUnit() { return priceUnit; } @@ -136,12 +159,9 @@ public class Room extends BaseEntity this.priceUnit = priceUnit; } - /** 报价单位 */ - @Excel(name = "priceUnit") - private String priceUnit; - public String getPrice() { - return (price==null? "":price.toString()) + PriceUnitEnum.getValue(getPriceUnit()); + return (price==null? "":price )+ + (priceUnit==null?"":PriceUnitEnum.getValue(priceUnit)); } public void setPrice(BigDecimal price) { @@ -165,21 +185,6 @@ public class Room extends BaseEntity this.decorationStatus = decorationStatus; } - /** 租赁状态 */ - @Excel(name = "租赁状态") - private String rentalStatus; - /** 可租日期 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern = "yyyy-MM-dd") - private Date availableDate; - - /** 出租状态 */ - @Excel(name = "招商状态", readConverterExp = "1=招商,2=不招商") - private String businessStatus; - /** 装修情况 */ - @Excel(name = "装修情况") - private String decorationStatus; - public void setId(Long id) { this.id = id; @@ -190,22 +195,22 @@ public class Room extends BaseEntity return id; } - public void setProjectId(String projectId) + public void setProjectId(String projectId) { this.projectId = projectId; } - public String getProjectId() + public String getProjectId() { return projectId; } - - public void setProjectName(String projectName) + + public void setProjectName(String projectName) { this.projectName = projectName; } - public String getProjectName() + public String getProjectName() { return projectName; } @@ -219,13 +224,13 @@ public class Room extends BaseEntity { return buildingId; } - - public void setBuildingName(String buildingName) + + public void setBuildingName(String buildingName) { this.buildingName = buildingName; } - public String getBuildingName() + public String getBuildingName() { return buildingName; } @@ -239,83 +244,83 @@ public class Room extends BaseEntity { return floorId; } - - public void setFloorName(String floorName) + + public void setFloorName(String floorName) { this.floorName = floorName; } - public String getFloorName() + public String getFloorName() { return floorName; } - public void setRoomNumber(String roomNumber) + public void setRoomNumber(String roomNumber) { this.roomNumber = roomNumber; } - public String getRoomNumber() + public String getRoomNumber() { return roomNumber; } - public void setRoomDigitalNumber(String roomDigitalNumber) + public void setRoomDigitalNumber(String roomDigitalNumber) { this.roomDigitalNumber = roomDigitalNumber; } - public String getRoomDigitalNumber() + public String getRoomDigitalNumber() { return roomDigitalNumber; } - - public void setRoomManageNumber(String roomManageNumber) + + public void setRoomManageNumber(String roomManageNumber) { this.roomManageNumber = roomManageNumber; } - public String getRoomManageNumber() + public String getRoomManageNumber() { return roomManageNumber; } - public void setRoomName(String roomName) + public void setRoomName(String roomName) { this.roomName = roomName; } - public String getRoomName() + public String getRoomName() { return roomName; } - public void setRoomType(String roomType) + public void setRoomType(String roomType) { this.roomType = roomType; } - public String getRoomType() + public String getRoomType() { return roomType; } - public void setFloor(String floor) + public void setFloor(String floor) { this.floor = floor; } - public String getFloor() + public String getFloor() { return floor; } - public void setIsWholeFloor(String isWholeFloor) + public void setIsWholeFloor(String isWholeFloor) { this.isWholeFloor = isWholeFloor; } - public String getIsWholeFloor() + public String getIsWholeFloor() { return isWholeFloor; } @@ -329,7 +334,7 @@ public class Room extends BaseEntity { return buildingArea; } - + public void setRentalArea(BigDecimal rentalArea) { this.rentalArea = rentalArea; @@ -339,7 +344,7 @@ public class Room extends BaseEntity { return rentalArea; } - + public void setBillingArea(BigDecimal billingArea) { this.billingArea = billingArea; @@ -349,7 +354,7 @@ public class Room extends BaseEntity { return billingArea; } - + public void setInnerArea(BigDecimal innerArea) { this.innerArea = innerArea; @@ -359,27 +364,27 @@ public class Room extends BaseEntity { return innerArea; } - - public void setIsVirtual(String isVirtual) + + public void setIsVirtual(String isVirtual) { this.isVirtual = isVirtual; } - public String getIsVirtual() + public String getIsVirtual() { return isVirtual; } - - public void setDeliveryTime(Date deliveryTime) + + public void setDeliveryTime(Date deliveryTime) { this.deliveryTime = deliveryTime; } - public Date getDeliveryTime() + public Date getDeliveryTime() { return deliveryTime; } - + public void setOwnerId(Long ownerId) { this.ownerId = ownerId; @@ -389,17 +394,17 @@ public class Room extends BaseEntity { return ownerId; } - - public void setPropertyNature(String propertyNature) + + public void setPropertyNature(String propertyNature) { this.propertyNature = propertyNature; } - public String getPropertyNature() + public String getPropertyNature() { return propertyNature; } - + public void setHeight(BigDecimal height) { this.height = height; @@ -409,7 +414,7 @@ public class Room extends BaseEntity { return height; } - + public void setLoadValue(BigDecimal loadValue) { this.loadValue = loadValue; @@ -419,13 +424,13 @@ public class Room extends BaseEntity { return loadValue; } - - public void setRoomStatus(String roomStatus) + + public void setRoomStatus(String roomStatus) { this.roomStatus = roomStatus; } - public String getRoomStatus() + public String getRoomStatus() { return roomStatus; } @@ -440,45 +445,61 @@ public class Room extends BaseEntity return roomArea; } - public void setRentalStatus(String rentalStatus) + public void setRentalStatus(String rentalStatus) { this.rentalStatus = rentalStatus; } - public String getRentalStatus() + public String getRentalStatus() { return rentalStatus; } + public void setAvailableDate(Date availableDate) { + this.availableDate = availableDate; + } + + public Date getAvailableDate() { + return availableDate; + } + @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("tenantId", getTenantId()) - .append("projectId", getProjectId()) - .append("buildingId", getBuildingId()) - .append("floorId", getFloorId()) - .append("roomNumber", getRoomNumber()) - .append("roomDigitalNumber", getRoomDigitalNumber()) - .append("roomManageNumber", getRoomManageNumber()) - .append("buildingArea", getBuildingArea()) - .append("rentalArea", getRentalArea()) - .append("billingArea", getBillingArea()) - .append("innerArea", getInnerArea()) - .append("isVirtual", getIsVirtual()) - .append("deliveryTime", getDeliveryTime()) - .append("ownerId", getOwnerId()) - .append("propertyNature", getPropertyNature()) - .append("height", getHeight()) - .append("loadValue", getLoadValue()) - .append("roomStatus", getRoomStatus()) - .append("roomType", getRoomType()) - .append("createTime", getCreateTime()) - .append("lastModTime", getLastModTime()) - .append("createUserId", getCreateUserId()) - .append("lastModUserId", getLastModUserId()) - .append("delFlag", getDelFlag()) - .append("remark", getRemark()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("tenantId", getTenantId()) + .append("projectId", getProjectId()) + .append("buildingId", getBuildingId()) + .append("floorId", getFloorId()) + .append("roomNumber", getRoomNumber()) + .append("roomDigitalNumber", getRoomDigitalNumber()) + .append("roomManageNumber", getRoomManageNumber()) + .append("buildingArea", getBuildingArea()) + .append("rentalArea", getRentalArea()) + .append("billingArea", getBillingArea()) + .append("innerArea", getInnerArea()) + .append("isVirtual", getIsVirtual()) + .append("deliveryTime", getDeliveryTime()) + .append("ownerId", getOwnerId()) + .append("propertyNature", getPropertyNature()) + .append("height", getHeight()) + .append("loadValue", getLoadValue()) + .append("roomStatus", getRoomStatus()) + .append("roomType", getRoomType()) + .append("createTime", getCreateTime()) + .append("lastModTime", getLastModTime()) + .append("createUserId", getCreateUserId()) + .append("lastModUserId", getLastModUserId()) + .append("delFlag", getDelFlag()) + .append("remark", getRemark()) + .toString(); } -} \ No newline at end of file + + public String getTags() { + return tags; + } + + public void setTags(String tags) { + this.tags = tags; + } +} diff --git a/src/main/java/com/eden/room/domain/RoomBusinessInfo.java b/src/main/java/com/eden/room/domain/RoomBusinessInfo.java index 19bd020..0b25031 100644 --- a/src/main/java/com/eden/room/domain/RoomBusinessInfo.java +++ b/src/main/java/com/eden/room/domain/RoomBusinessInfo.java @@ -2,6 +2,9 @@ package com.eden.room.domain; import java.util.Date; import java.math.BigDecimal; + +import com.eden.room.common.enums.*; +import com.eden.room.utils.EnumValid; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -13,27 +16,15 @@ import org.springframework.format.annotation.DateTimeFormat; public class RoomBusinessInfo extends BaseEntity { /** 招商信息ID */ private Long id; - - /** 租户ID */ - private String tenantId; - + /** 房源ID */ private Long roomId; - /** 租赁状态:待租,已租,下架 */ - private String rentalStatus; - - /** 招商状态: 招商,不招商 */ - private String businessStatus; - /** 可租日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date availableDate; - /** 装修情况:精装,简装,毛坯,标准交付,豪装 */ - private String decorationStatus; - /** 报价 */ private BigDecimal price; @@ -72,6 +63,15 @@ public class RoomBusinessInfo extends BaseEntity { /** 备注 */ private String remark; + @EnumValid(value = RentalStatusEnum.class, message = "无效的租赁状态") + private String rentalStatus; + + @EnumValid(value = BusinessStatusEnum.class, message = "无效的招商状态") + private String businessStatus; + + @EnumValid(value = DecorationStatusEnum.class, message = "无效的装修情况") + private String decorationStatus; + public Long getId() { return id; } @@ -80,13 +80,7 @@ public class RoomBusinessInfo extends BaseEntity { this.id = id; } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } public Long getRoomId() { return roomId; @@ -226,7 +220,7 @@ public class RoomBusinessInfo extends BaseEntity { @Override public String toString() { - return "RoomBusinessInfo [id=" + id + ", tenantId=" + tenantId + ", roomId=" + roomId + ", rentalStatus=" + return "RoomBusinessInfo [id=" + id + ", tenantId=" + getTenantId() + ", roomId=" + roomId + ", rentalStatus=" + rentalStatus + ", businessStatus=" + businessStatus + ", availableDate=" + availableDate + ", decorationStatus=" + decorationStatus + ", price=" + price + ", priceUnit=" + priceUnit + ", floorPrice=" + floorPrice + ", floorPriceUnit=" + floorPriceUnit + ", businessNumber=" diff --git a/src/main/java/com/eden/room/domain/RoomExtendInfo.java b/src/main/java/com/eden/room/domain/RoomExtendInfo.java index 4d851e0..d0a955c 100644 --- a/src/main/java/com/eden/room/domain/RoomExtendInfo.java +++ b/src/main/java/com/eden/room/domain/RoomExtendInfo.java @@ -11,9 +11,7 @@ import lombok.Data; public class RoomExtendInfo extends BaseEntity { /** 拓展信息ID */ private Long id; - - /** 租户ID */ - private String tenantId; + /** 房源ID */ private Long roomId; @@ -76,13 +74,7 @@ public class RoomExtendInfo extends BaseEntity { this.id = id; } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } public Long getRoomId() { return roomId; @@ -222,7 +214,7 @@ public class RoomExtendInfo extends BaseEntity { @Override public String toString() { - return "RoomExtendInfo [id=" + id + ", tenantId=" + tenantId + ", roomId=" + roomId + ", roomRecordNumber=" + return "RoomExtendInfo [id=" + id + ", tenantId=" + getTenantId() + ", roomId=" + roomId + ", roomRecordNumber=" + roomRecordNumber + ", usageRate=" + usageRate + ", officeLayout=" + officeLayout + ", windowOrientation=" + windowOrientation + ", rentFreePeriod=" + rentFreePeriod + ", minLeaseTerm=" + minLeaseTerm + ", workstationMin=" + workstationMin + ", workstationMax=" + workstationMax diff --git a/src/main/java/com/eden/room/domain/RoomImage.java b/src/main/java/com/eden/room/domain/RoomImage.java index c398d2d..665c792 100644 --- a/src/main/java/com/eden/room/domain/RoomImage.java +++ b/src/main/java/com/eden/room/domain/RoomImage.java @@ -10,9 +10,6 @@ public class RoomImage extends BaseEntity { /** 图片ID */ private Long id; - /** 租户ID */ - private String tenantId; - /** 房源ID */ private Long roomId; @@ -50,13 +47,7 @@ public class RoomImage extends BaseEntity { this.id = id; } - public String getTenantId() { - return tenantId; - } - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } public Long getRoomId() { return roomId; @@ -132,7 +123,7 @@ public class RoomImage extends BaseEntity { @Override public String toString() { - return "RoomImage [id=" + id + ", tenantId=" + tenantId + ", roomId=" + roomId + ", imageUrl=" + imageUrl + return "RoomImage [id=" + id + ", tenantId=" + getTenantId() + ", roomId=" + roomId + ", imageUrl=" + imageUrl + ", imageType=" + imageType + ", sortOrder=" + sortOrder + ", createTime=" + createTime + ", updateTime=" + updateTime + ", delFlag=" + delFlag + "]"; } diff --git a/src/main/java/com/eden/room/domain/dto/RoomDTO.java b/src/main/java/com/eden/room/domain/dto/RoomDTO.java index 8b88e32..b76a045 100644 --- a/src/main/java/com/eden/room/domain/dto/RoomDTO.java +++ b/src/main/java/com/eden/room/domain/dto/RoomDTO.java @@ -1,14 +1,24 @@ package com.eden.room.domain.dto; +import com.eden.room.common.enums.BusinessStatusEnum; +import com.eden.room.common.enums.DecorationStatusEnum; +import com.eden.room.common.enums.PropertyNatureEnum; +import com.eden.room.common.enums.RentalStatusEnum; +import com.eden.room.common.enums.RoomStatusEnum; +import com.eden.room.common.enums.RoomTypeEnum; import com.eden.room.domain.Room; import com.eden.room.domain.RoomBusinessInfo; import com.eden.room.domain.RoomExtendInfo; import com.eden.room.domain.RoomImage; +import com.eden.room.utils.EnumValid; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.List; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + /** * 房源信息DTO,包含基础信息、招商信息和拓展信息 */ @@ -19,6 +29,7 @@ public class RoomDTO extends Room { private static final long serialVersionUID = 1L; /** 招商信息 */ + @Valid private RoomBusinessInfo businessInfo; /** 拓展信息 */ @@ -45,6 +56,15 @@ public class RoomDTO extends Room { /** 标签列表 */ private String tags; + @EnumValid(value = RoomTypeEnum.class, message = "无效的房源类型") + private String roomType; + + @EnumValid(value = RoomStatusEnum.class, message = "无效的房源状态") + private String roomStatus; + + @EnumValid(value = PropertyNatureEnum.class, message = "无效的产权性质") + private String propertyNature; + public RoomBusinessInfo getBusinessInfo() { return businessInfo; } diff --git a/src/main/java/com/eden/room/domain/dto/RoomExportDTO.java b/src/main/java/com/eden/room/domain/dto/RoomExportDTO.java index 14d78eb..0621c29 100644 --- a/src/main/java/com/eden/room/domain/dto/RoomExportDTO.java +++ b/src/main/java/com/eden/room/domain/dto/RoomExportDTO.java @@ -2,6 +2,10 @@ package com.eden.room.domain.dto; import java.math.BigDecimal; import java.util.Date; + +import com.eden.room.common.enums.*; +import com.eden.room.utils.EnumConvert; +import com.eden.room.utils.excel.Excel; import lombok.Data; /** @@ -9,6 +13,99 @@ import lombok.Data; */ @Data public class RoomExportDTO { + + /** + * 项目名称 + */ + @Excel(name = "项目名称", required = true, sort = 1) + private String projectName; + + /** + * 楼宇名称 + */ + @Excel(name = "楼宇名称", required = true, sort = 2) + private String buildingName; + + /** + * 楼层 + */ + @Excel(name = "楼层", required = true, sort = 3) + private String floorName; + + /** + * 房源编号 + */ + @Excel(name = "房号", required = true, sort = 4) + private String roomNumber; + /** + * 计租面积 + */ + @Excel(name = "计租面积", required = true, sort = 5) + private BigDecimal rentalArea; + + /** + * 报价+单位 + */ + @Excel(name = "报价", required = true, sort = 6) + private String priceAndUnit; + + /** + * 租赁状态 + */ + @Excel(name = "租赁状态", required = true, sort = 7) + @EnumConvert(RentalStatusEnum.class) + private String rentalStatus; + + /** + * 可租日期 + */ + @Excel(name = "可租日期", required = true, sort = 8) + private Date availableDate; + /** + * 房源标签 + */ + @Excel(name = "房源标签", required = true, sort = 9) + private String tags; + /** + * 虚拟房源 + */ + @Excel(name = "虚拟房源", sort =10) + @EnumConvert(VirtualFlagEnum.class) + private String isVirtual; + + /** + * 招商状态 + */ + @Excel(name = "招商状态", sort = 11) + @EnumConvert(BusinessStatusEnum.class) + private String businessStatus; + + /** + * 装修情况 + */ + @Excel(name = "装修情况", sort = 12) + @EnumConvert(DecorationStatusEnum.class) + private String decorationStatus; + + /** + * 房源交付时间 + */ + @Excel(name = "房源交付时间", sort = 13) + private Date deliveryTime; + /** + * 创建时间 + */ + @Excel(name = "创建时间", sort = 14) + private Date createTime; + + + /** + * 房源类型 + * 使用EnumConverter将枚举类型的key转换为对应的value + */ + @Excel(name = "房源类型", sort = 15) + @EnumConvert(RoomTypeEnum.class) + private String roomType; /** * 房源ID @@ -19,37 +116,19 @@ public class RoomExportDTO { * 项目ID */ private String projectId; - - /** - * 项目名称 - */ - private String projectName; + /** * 楼宇ID */ private Long buildingId; - - /** - * 楼宇名称 - */ - private String buildingName; + /** * 楼层ID */ private Long floorId; - /** - * 楼层名称 - */ - private String floorName; - - /** - * 房源编号 - */ - private String roomNumber; - /** * 房源数字编号 */ @@ -64,31 +143,16 @@ public class RoomExportDTO { * 房源名称 */ private String roomName; - - /** - * 房源类型 - */ - private String roomType; - /** * 楼层 */ private String floor; - - /** - * 是否整层 - */ - private String isWholeFloor; - + /** * 建筑面积 */ private BigDecimal buildingArea; - - /** - * 计租面积 - */ - private BigDecimal rentalArea; + /** * 计费面积 @@ -100,16 +164,6 @@ public class RoomExportDTO { */ private BigDecimal innerArea; - /** - * 是否虚拟房源 - */ - private String isVirtual; - - /** - * 房源交付时间 - */ - private Date deliveryTime; - /** * 绑定业主ID */ @@ -145,43 +199,13 @@ public class RoomExportDTO { */ private String roomStatus; - /** - * 租赁状态 - */ - private String rentalStatus; - - /** - * 业务状态 - */ - private String businessStatus; - - /** - * 装修状态 - */ - private String decorationStatus; - /** * 价格 */ - private BigDecimal price; + private String price; /** * 价格单位 */ private String priceUnit; - - /** - * 可租日期 - */ - private Date availableDate; - - /** - * 房源标签 - */ - private String tags; - - /** - * 创建时间 - */ - private Date createTime; } \ No newline at end of file diff --git a/src/main/java/com/eden/room/domain/dto/RoomImportDTO.java b/src/main/java/com/eden/room/domain/dto/RoomImportDTO.java index 3280f34..6d461be 100644 --- a/src/main/java/com/eden/room/domain/dto/RoomImportDTO.java +++ b/src/main/java/com/eden/room/domain/dto/RoomImportDTO.java @@ -1,82 +1,81 @@ package com.eden.room.domain.dto; -import com.eden.room.utils.excel.Excel; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; -import java.io.Serializable; +import javax.validation.constraints.NotBlank; import java.math.BigDecimal; /** * 房源导入DTO */ @Data -public class RoomImportDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - /** 项目 */ - @Excel(name = "项目", sort = 1, required = true,cellType = Excel.ColumnType.STRING) +public class RoomImportDTO { + + @ExcelProperty("项目") + @NotBlank(message = "项目名称不能为空。") private String projectName; - - /** 楼宇 */ - @Excel(name = "楼宇", sort = 2, required = true,cellType = Excel.ColumnType.STRING) + + @ExcelProperty("楼宇") + @NotBlank(message = "楼宇名称不能为空。") private String buildingName; - - /** 楼层 */ - @Excel(name = "楼层", sort = 3, required = true,cellType = Excel.ColumnType.STRING) + + @ExcelProperty("楼层") + @NotBlank(message = "楼层名称不能为空。") private String floorName; /** 房号 */ - @Excel(name = "房号", sort = 4, required = true,cellType = Excel.ColumnType.STRING) + @ExcelProperty("房号") + @NotBlank(message = "房号不能为空。") private String roomNumber; /** 房间数字编号 */ - @Excel(name = "房间数字编号", sort = 5, required = true,cellType = Excel.ColumnType.STRING) + @ExcelProperty("房间数字编号") private String roomDigitalNumber; /** 计租面积 */ - @Excel(name = "计租面积(m²)", sort = 6, suffix = "㎡", cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("计租面积(m²)") private BigDecimal rentalArea; /** 计费面积 */ - @Excel(name = "计费面积(m²)", sort = 7, suffix = "㎡", cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("计费面积(m²)") private BigDecimal billingArea; /** 建筑面积 */ - @Excel(name = "建筑面积", sort = 8, suffix = "㎡", cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("建筑面积") private BigDecimal buildingArea; /** 层高 */ - @Excel(name = "层高(m)", sort = 9, suffix = "m", cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("层高(m)") private BigDecimal height; /** 报价 */ - @Excel(name = "报价", sort = 10, cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("报价") private BigDecimal price; /** 底价 */ - @Excel(name = "底价", sort = 11, cellType = Excel.ColumnType.NUMERIC) + @ExcelProperty("底价") private BigDecimal floorPrice; /** 单位 */ - @Excel(name = "单位", sort = 12,cellType = Excel.ColumnType.STRING) + @ExcelProperty("单位") private String priceUnit; /** 房源备案号 */ - @Excel(name = "房源备案号", sort = 13, cellType = Excel.ColumnType.STRING) + @ExcelProperty("房源备案号") private String roomRecordNumber; /** 标签 */ - @Excel(name = "标签", sort = 14,cellType = Excel.ColumnType.STRING) + @ExcelProperty("标签") private String tags; /** 房源管理编号 */ - @Excel(name = "房源管理编号", sort = 15,cellType = Excel.ColumnType.STRING) + @ExcelProperty("房源管理编号") private String roomManageNumber; /** 导入结果说明 */ - @Excel(name = "导入结果说明", sort = 16,cellType = Excel.ColumnType.STRING) - private String importResult; + @ExcelProperty("导入结果说明") + private String importResult=""; public String getProjectName() { diff --git a/src/main/java/com/eden/room/domain/dto/RoomQueryDTO.java b/src/main/java/com/eden/room/domain/dto/RoomQueryDTO.java index 83cf41f..332d4e3 100644 --- a/src/main/java/com/eden/room/domain/dto/RoomQueryDTO.java +++ b/src/main/java/com/eden/room/domain/dto/RoomQueryDTO.java @@ -3,6 +3,7 @@ package com.eden.room.domain.dto; import lombok.Data; import java.io.Serializable; +import java.util.Set; /** * 房源查询条件DTO @@ -48,6 +49,13 @@ public class RoomQueryDTO implements Serializable { /** 截止创建时间 */ private String endCreateTime; + /** 房源状态 */ + private String roomStatus; + + /** 房号 */ + private Set RoomNumbers; + + public String getRoomNumber() { return roomNumber; } diff --git a/src/main/java/com/eden/room/interceptor/TenantInterceptor.java b/src/main/java/com/eden/room/interceptor/TenantInterceptor.java index 7464a01..e69de29 100644 --- a/src/main/java/com/eden/room/interceptor/TenantInterceptor.java +++ b/src/main/java/com/eden/room/interceptor/TenantInterceptor.java @@ -1,139 +0,0 @@ -//package com.eden.room.interceptor; -// -//import java.util.Properties; -//import java.util.Set; -//import java.util.HashSet; -// -//import org.apache.ibatis.cache.CacheKey; -//import org.apache.ibatis.executor.Executor; -//import org.apache.ibatis.mapping.BoundSql; -//import org.apache.ibatis.mapping.MappedStatement; -//import org.apache.ibatis.mapping.SqlCommandType; -//import org.apache.ibatis.plugin.Interceptor; -//import org.apache.ibatis.plugin.Intercepts; -//import org.apache.ibatis.plugin.Invocation; -//import org.apache.ibatis.plugin.Plugin; -//import org.apache.ibatis.plugin.Signature; -//import org.apache.ibatis.session.ResultHandler; -//import org.apache.ibatis.session.RowBounds; -// -//import com.eden.room.common.ContextUser; -// -///** -// * 租户拦截器 -// */ -//@Intercepts({ -// @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}), -// @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}), -// @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}) -//}) -//public class TenantInterceptor implements Interceptor { -// -// // 需要添加租户条件的表名集合 -// private static final Set TENANT_TABLES = new HashSet<>(); -// static { -// TENANT_TABLES.add("TB_ROOM_BASE"); -// TENANT_TABLES.add("TB_ROOM_BUSINESS"); -// TENANT_TABLES.add("TB_ROOM_EXTEND"); -// TENANT_TABLES.add("TB_ROOM_IMAGE"); -// TENANT_TABLES.add("TB_PROJECT"); -// TENANT_TABLES.add("TB_BUILDING"); -// TENANT_TABLES.add("TB_FLOOR"); -// } -// -// @Override -// public Object intercept(Invocation invocation) throws Throwable { -// Object[] args = invocation.getArgs(); -// MappedStatement ms = (MappedStatement) args[0]; -// Object parameter = args[1]; -// -// // 获取当前用户信息 -// ContextUser user = ContextUser.getCurrentUser(); -// if (user == null || user.getTenantId() == null) { -// return invocation.proceed(); -// } -// -// // 获取SQL类型 -// SqlCommandType sqlCommandType = ms.getSqlCommandType(); -// -// // 获取SQL语句 -// BoundSql boundSql = ms.getBoundSql(parameter); -// String sql = boundSql.getSql().toUpperCase(); -// -// // 判断是否需要添加租户条件 -// if (needTenant(sql)) { -// // 添加租户条件 -// String tenantSql = addTenantCondition(sql, user.getTenantId()); -// // 创建新的BoundSql -// BoundSql newBoundSql = new BoundSql(ms.getConfiguration(), tenantSql, boundSql.getParameterMappings(), parameter); -// // 创建新的MappedStatement -// MappedStatement newMs = copyMappedStatement(ms, newBoundSql); -// // 替换参数 -// args[0] = newMs; -// } -// -// return invocation.proceed(); -// } -// -// /** -// * 判断是否需要添加租户条件 -// */ -// private boolean needTenant(String sql) { -// // 排除不需要添加租户条件的SQL -// if (sql.contains("COUNT(*)") || sql.contains("MAX(") || sql.contains("MIN(") || -// sql.contains("SUM(") || sql.contains("AVG(")) { -// return false; -// } -// -// // 检查SQL中是否包含需要添加租户条件的表 -// for (String table : TENANT_TABLES) { -// if (sql.contains(table)) { -// return true; -// } -// } -// -// return false; -// } -// -// /** -// * 添加租户条件 -// */ -// private String addTenantCondition(String sql, String tenantId) { -// // 使用参数化查询防止SQL注入 -// String tenantCondition = " tenant_id = #{tenantId} AND "; -// if (sql.contains("WHERE")) { -// return sql.replaceFirst("(?i)WHERE", "WHERE " + tenantCondition); -// } else { -// return sql.replaceFirst("(?i)FROM", "FROM WHERE " + tenantCondition); -// } -// } -// -// /** -// * 复制MappedStatement -// */ -// private MappedStatement copyMappedStatement(MappedStatement ms, BoundSql boundSql) { -// MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), ms.getId(), -// boundSql, ms.getSqlCommandType()); -// builder.resource(ms.getResource()); -// builder.fetchSize(ms.getFetchSize()); -// builder.statementType(ms.getStatementType()); -// builder.keyGenerator(ms.getKeyGenerator()); -// builder.timeout(ms.getTimeout()); -// builder.parameterMap(ms.getParameterMap()); -// builder.resultMaps(ms.getResultMaps()); -// builder.resultSetType(ms.getResultSetType()); -// builder.cache(ms.getCache()); -// builder.flushCacheRequired(ms.isFlushCacheRequired()); -// builder.useCache(ms.isUseCache()); -// return builder.build(); -// } -// -// @Override -// public Object plugin(Object target) { -// return Plugin.wrap(target, this); -// } -// -// @Override -// public void setProperties(Properties properties) { -// } -//} \ No newline at end of file diff --git a/src/main/java/com/eden/room/interceptor/UserContextInterceptor.java b/src/main/java/com/eden/room/interceptor/UserContextInterceptor.java index 6aeb1db..e69de29 100644 --- a/src/main/java/com/eden/room/interceptor/UserContextInterceptor.java +++ b/src/main/java/com/eden/room/interceptor/UserContextInterceptor.java @@ -1,69 +0,0 @@ -//package com.eden.room.interceptor; -// -//import javax.servlet.http.HttpServletRequest; -//import javax.servlet.http.HttpServletResponse; -// -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.web.servlet.HandlerInterceptor; -// -//import com.eden.room.common.ContextUser; -// -///** -// * 用户上下文拦截器 -// */ -//public class UserContextInterceptor implements HandlerInterceptor { -// -// private static final Logger logger = LoggerFactory.getLogger(UserContextInterceptor.class); -// -// @Override -// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { -// try { -// // 从请求头或token中获取用户信息 -// String tenantId = request.getHeader("X-Tenant-ID"); -// String userId = request.getHeader("X-User-ID"); -// String username = request.getHeader("X-Username"); -// -// // 参数校验 -// if (tenantId == null || tenantId.trim().isEmpty()) { -// logger.warn("Missing tenant ID in request headers"); -// response.setStatus(HttpServletResponse.SC_BAD_REQUEST); -// return false; -// } -// -// if (userId == null || userId.trim().isEmpty()) { -// logger.warn("Missing user ID in request headers"); -// response.setStatus(HttpServletResponse.SC_BAD_REQUEST); -// return false; -// } -// -// // 设置用户上下文 -// ContextUser user = new ContextUser(); -// user.setTenantId(tenantId.trim()); -// user.setUserId(userId.trim()); -// user.setUsername(username != null ? username.trim() : null); -// ContextUser.setCurrentUser(user); -// -// logger.debug("Set user context: tenantId={}, userId={}, username={}", -// tenantId, userId, username); -// -// return true; -// -// } catch (Exception e) { -// logger.error("Error setting user context", e); -// response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); -// return false; -// } -// } -// -// @Override -// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { -// try { -// // 清理用户上下文 -// ContextUser.clear(); -// logger.debug("Cleared user context"); -// } catch (Exception e) { -// logger.error("Error clearing user context", e); -// } -// } -//} \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/BuildingMapper.java b/src/main/java/com/eden/room/mapper/BuildingMapper.java index c51b133..00083b9 100644 --- a/src/main/java/com/eden/room/mapper/BuildingMapper.java +++ b/src/main/java/com/eden/room/mapper/BuildingMapper.java @@ -1,7 +1,9 @@ package com.eden.room.mapper; import java.util.List; +import java.util.Set; import com.eden.room.domain.Building; +import org.apache.ibatis.annotations.Param; /** * 楼宇信息数据访问层 @@ -45,7 +47,7 @@ public interface BuildingMapper { * @param ids 需要删除的楼宇ID数组 * @return 结果 */ - int deleteBuildingByIds(String[] ids); + int deleteBuildingByIds(List ids); /** * 删除楼宇信息 @@ -97,4 +99,13 @@ public interface BuildingMapper { boolean checkBuildingHasFloors(Long id); List getBuildByIds(List ids); + + /** + * 根据项目ID和楼栋名称列表查询楼栋列表 + * + * @param projectId 项目ID + * @param buildingNames 楼栋名称列表 + * @return 楼栋列表 + */ + List selectBuildingListByNames(@Param("projectId") String projectId, @Param("buildingNames") Set buildingNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/FloorMapper.java b/src/main/java/com/eden/room/mapper/FloorMapper.java index 7ab5338..9d13e3c 100644 --- a/src/main/java/com/eden/room/mapper/FloorMapper.java +++ b/src/main/java/com/eden/room/mapper/FloorMapper.java @@ -1,7 +1,9 @@ package com.eden.room.mapper; import java.util.List; +import java.util.Set; import com.eden.room.domain.Floor; +import org.apache.ibatis.annotations.Param; /** * 楼层信息数据访问层 @@ -45,7 +47,7 @@ public interface FloorMapper { * @param ids 需要删除的楼层ID数组 * @return 结果 */ - int deleteFloorByIds(String[] ids); + int deleteFloorByIds(List ids); /** * 删除楼层信息 @@ -95,4 +97,13 @@ public interface FloorMapper { * @return 结果 */ int checkFloorHasRooms(Long id); + + /** + * 根据楼栋ID和楼层名称列表查询楼层列表 + * + * @param buildingId 楼栋ID + * @param floorNames 楼层名称列表 + * @return 楼层列表 + */ + List selectFloorListByNames(@Param("buildingId") Long buildingId, @Param("floorNames") Set floorNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/ProjectMapper.java b/src/main/java/com/eden/room/mapper/ProjectMapper.java index 279ab67..403601b 100644 --- a/src/main/java/com/eden/room/mapper/ProjectMapper.java +++ b/src/main/java/com/eden/room/mapper/ProjectMapper.java @@ -1,7 +1,9 @@ package com.eden.room.mapper; import java.util.List; +import java.util.Set; import com.eden.room.domain.Project; +import org.apache.ibatis.annotations.Param; /** * 项目信息Mapper接口 @@ -88,4 +90,12 @@ public interface ProjectMapper { public Integer checkProjectShortNameExists(Project project); List selectProjectListByIds(List ids); + + /** + * 根据项目名称列表查询项目列表 + * + * @param projectNames 项目名称列表 + * @return 项目列表 + */ + List selectProjectListByNames(@Param("projectNames") Set projectNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/RoomBusinessInfoMapper.java b/src/main/java/com/eden/room/mapper/RoomBusinessInfoMapper.java index 52fcc69..6bd2901 100644 --- a/src/main/java/com/eden/room/mapper/RoomBusinessInfoMapper.java +++ b/src/main/java/com/eden/room/mapper/RoomBusinessInfoMapper.java @@ -35,14 +35,14 @@ public interface RoomBusinessInfoMapper { * @return 房源招商信息 */ RoomBusinessInfo selectRoomBusinessInfoByRoomId(@Param("roomId") Long roomId); - + /** - * 新增房源招商信息 + * 批量插入房源招商信息 * - * @param businessInfo 房源招商信息 - * @return 结果 + * @param businessInfos 房源招商信息列表 + * @return 插入结果 */ - int insertRoomBusinessInfo(RoomBusinessInfo businessInfo); + int batchInsertBusinessInfos(@Param("list") List businessInfos); /** * 修改房源招商信息 @@ -67,20 +67,5 @@ public interface RoomBusinessInfoMapper { * @return 结果 */ int deleteRoomBusinessInfoByRoomId(@Param("roomId") Long roomId); - - /** - * 批量删除房源招商信息 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - int deleteRoomBusinessInfoByIds(@Param("ids") String[] ids); - - /** - * 批量删除房源招商信息(根据房源ID) - * - * @param roomIds 房源ID数组 - * @return 结果 - */ - int deleteRoomBusinessInfoByRoomIds(@Param("roomIds") String[] roomIds); + } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/RoomExtendInfoMapper.java b/src/main/java/com/eden/room/mapper/RoomExtendInfoMapper.java index 6000a63..6335b7c 100644 --- a/src/main/java/com/eden/room/mapper/RoomExtendInfoMapper.java +++ b/src/main/java/com/eden/room/mapper/RoomExtendInfoMapper.java @@ -35,15 +35,14 @@ public interface RoomExtendInfoMapper { * @return 房源拓展信息 */ RoomExtendInfo selectRoomExtendInfoByRoomId(@Param("roomId") Long roomId); - + /** - * 新增房源拓展信息 + * 批量插入房源扩展信息 * - * @param extendInfo 房源拓展信息 - * @return 结果 + * @param extendInfos 房源扩展信息列表 + * @return 插入结果 */ - int insertRoomExtendInfo(RoomExtendInfo extendInfo); - + int batchInsertExtendInfos(List extendInfos); /** * 修改房源拓展信息 * @@ -67,20 +66,5 @@ public interface RoomExtendInfoMapper { * @return 结果 */ int deleteRoomExtendInfoByRoomId(@Param("roomId") Long roomId); - - /** - * 批量删除房源拓展信息 - * - * @param ids 需要删除的数据ID - * @return 结果 - */ - int deleteRoomExtendInfoByIds(@Param("ids") String[] ids); - - /** - * 批量删除房源拓展信息(根据房源ID) - * - * @param roomIds 房源ID数组 - * @return 结果 - */ - int deleteRoomExtendInfoByRoomIds(@Param("roomIds") String[] roomIds); + } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/RoomImageMapper.java b/src/main/java/com/eden/room/mapper/RoomImageMapper.java index c9d168d..e429f8e 100644 --- a/src/main/java/com/eden/room/mapper/RoomImageMapper.java +++ b/src/main/java/com/eden/room/mapper/RoomImageMapper.java @@ -83,7 +83,7 @@ public interface RoomImageMapper { * @param ids 需要删除的数据ID * @return 结果 */ - int deleteRoomImageByIds(@Param("ids") String[] ids); + int deleteRoomImageByIds(@Param("ids") List ids); /** * 批量删除房源图片(根据房源ID) @@ -91,5 +91,5 @@ public interface RoomImageMapper { * @param roomIds 房源ID数组 * @return 结果 */ - int deleteRoomImagesByRoomIds(@Param("roomIds") String[] roomIds); + int deleteRoomImagesByRoomIds(@Param("roomIds") List roomIds); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/mapper/RoomMapper.java b/src/main/java/com/eden/room/mapper/RoomMapper.java index 5c99337..f56098e 100644 --- a/src/main/java/com/eden/room/mapper/RoomMapper.java +++ b/src/main/java/com/eden/room/mapper/RoomMapper.java @@ -1,6 +1,9 @@ package com.eden.room.mapper; import java.util.List; +import java.util.Set; + +import com.eden.room.domain.dto.RoomQueryDTO; import org.apache.ibatis.annotations.Param; import com.eden.room.domain.Room; import org.apache.ibatis.annotations.Mapper; @@ -13,10 +16,10 @@ public interface RoomMapper { /** * 查询房源列表 * - * @param room 房源信息 + * @param queryDTO 房源信息 * @return 房源列表 */ - List selectRoomList(Room room); + List selectRoomList( RoomQueryDTO queryDTO); /** * 根据ID查询房源 @@ -25,15 +28,7 @@ public interface RoomMapper { * @return 房源信息 */ Room selectRoomById(@Param("id") Long id); - - /** - * 新增房源 - * - * @param room 房源信息 - * @return 结果 - */ - int insertRoom(Room room); - + /** * 修改房源 * @@ -56,7 +51,7 @@ public interface RoomMapper { * @param ids 房源ID数组 * @return 结果 */ - int deleteRoomByIds(@Param("ids") String[] ids); + int deleteRoomByIds(@Param("ids") List ids); /** * 检查房号是否已存在 @@ -69,9 +64,9 @@ public interface RoomMapper { */ boolean checkRoomNumberExist(@Param("roomNumber") String roomNumber, @Param("projectId") String projectId, - @Param("buildingId") String buildingId, - @Param("floorId") String floorId); - + @Param("buildingId") Long buildingId, + @Param("floorId") Long floorId); + /** * 检查房间数字编号是否已存在 * @@ -81,16 +76,26 @@ public interface RoomMapper { * @param floorId 楼层ID * @return 是否存在 */ - boolean checkRoomDigitalNumberExist(@Param("roomDigitalNumber") String roomDigitalNumber, - @Param("projectId") String projectId, - @Param("buildingId") String buildingId, - @Param("floorId") String floorId); - + boolean checkRoomDigitalNumberExist(@Param("roomDigitalNumber") String roomDigitalNumber, + @Param("projectId") String projectId, + @Param("buildingId") Long buildingId, + @Param("floorId") Long floorId); + + /** - * 根据ID数组查询房源列表 + * 批量插入房源信息 * - * @param ids 房源ID数组 - * @return 房源列表 + * @param rooms 房源信息列表 + * @return 插入结果 */ - List selectRoomByIds(@Param("ids") String[] ids); + int batchInsertRooms(@Param("list") List rooms); + + /** + * 获取指定项目下已存在的房间号 + * + * @param projectId 项目ID + * @param roomNumbers 待检查的房间号列表 + * @return 已存在的房间号集合 + */ + Set getExistingRoomNumbers(@Param("projectId") String projectId, @Param("roomNumbers") Set roomNumbers); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/IBuildingService.java b/src/main/java/com/eden/room/service/IBuildingService.java index 0109acf..0245bab 100644 --- a/src/main/java/com/eden/room/service/IBuildingService.java +++ b/src/main/java/com/eden/room/service/IBuildingService.java @@ -1,6 +1,9 @@ package com.eden.room.service; import java.util.List; +import java.util.Map; +import java.util.Set; + import com.eden.room.domain.Building; import com.eden.room.domain.Project; @@ -46,7 +49,7 @@ public interface IBuildingService { * @param ids 需要删除的楼宇ID数组 * @return 结果 */ - int deleteBuildingByIds(String[] ids); + int deleteBuildingByIds(List ids); /** * 删除楼宇信息 @@ -67,4 +70,13 @@ public interface IBuildingService { boolean checkBuildingNameExists(Building building); List getBuildByIds(List ids); + + /** + * 根据楼宇名称列表获取楼宇ID映射 + * + * @param projectId 项目ID + * @param buildingNames 楼宇名称列表 + * @return 楼宇名称到ID的映射 + */ + Map getBuildingIdsByNames(String projectId, Set buildingNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/IFloorService.java b/src/main/java/com/eden/room/service/IFloorService.java index cfb50ef..3644c48 100644 --- a/src/main/java/com/eden/room/service/IFloorService.java +++ b/src/main/java/com/eden/room/service/IFloorService.java @@ -1,6 +1,9 @@ package com.eden.room.service; import java.util.List; +import java.util.Map; +import java.util.Set; + import com.eden.room.domain.Floor; /** @@ -45,7 +48,7 @@ public interface IFloorService { * @param ids 需要删除的楼层ID数组 * @return 结果 */ - int deleteFloorByIds(String[] ids); + int deleteFloorByIds(List ids); /** * 删除楼层信息 @@ -62,4 +65,13 @@ public interface IFloorService { * @return 楼层列表 */ List selectFloorListByBuildingId(Long buildingId); + + /** + * 根据楼层名称列表获取楼层ID映射 + * + * @param buildingId 楼宇ID + * @param floorNames 楼层名称列表 + * @return 楼层名称到ID的映射 + */ + Map getFloorIdsByNames(Long buildingId, Set floorNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/IProjectService.java b/src/main/java/com/eden/room/service/IProjectService.java index ac49f76..9be8421 100644 --- a/src/main/java/com/eden/room/service/IProjectService.java +++ b/src/main/java/com/eden/room/service/IProjectService.java @@ -1,6 +1,9 @@ package com.eden.room.service; import java.util.List; +import java.util.Map; +import java.util.Set; + import com.eden.room.domain.Project; /** @@ -74,4 +77,12 @@ public interface IProjectService { List selectProjectListByIds(List ids); List selectProjectListByName(String name); + + /** + * 根据项目名称列表获取项目ID映射 + * + * @param projectNames 项目名称列表 + * @return 项目名称到ID的映射 + */ + Map getProjectIdsByNames(Set projectNames); } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/IRoomService.java b/src/main/java/com/eden/room/service/IRoomService.java index 1865906..2d97204 100644 --- a/src/main/java/com/eden/room/service/IRoomService.java +++ b/src/main/java/com/eden/room/service/IRoomService.java @@ -3,13 +3,14 @@ package com.eden.room.service; import com.eden.room.domain.Room; import com.eden.room.domain.RoomBusinessInfo; import com.eden.room.domain.RoomExtendInfo; -import com.eden.room.domain.RoomImage; import com.eden.room.domain.dto.RoomDTO; import com.eden.room.domain.dto.RoomExportDTO; +import com.eden.room.domain.dto.RoomQueryDTO; import org.springframework.web.multipart.MultipartFile; import java.util.List; import java.util.Map; +import java.util.Set; /** * 房源服务接口 @@ -19,10 +20,10 @@ public interface IRoomService { /** * 查询房源列表 * - * @param room 房源信息 + * @param queryDTO 房源信息 * @return 房源列表 */ - List selectRoomList(Room room); + List selectRoomList(RoomQueryDTO queryDTO); /** * 根据ID查询房源 @@ -64,23 +65,15 @@ public interface IRoomService { */ int deleteRoomById(Long id); - /** - * 批量删除房源信息 - * - * @param ids 房源ID数组 - * @return 结果 - */ - int deleteRoomByIds(String[] ids); - /** * 导出房源信息 * - * @param room 查询条件 + * @param queryDTO 查询条件 * @return 房源信息列表 */ - List exportRoom(Room room); + List exportRoom( RoomQueryDTO queryDTO); /** * 修改房源租赁状态 @@ -100,18 +93,18 @@ public interface IRoomService { boolean checkRoomContract(Long id); /** - * 根据ID列表导出房源信息 - * - * @param ids 房源ID数组 - * @return 房源信息列表 + * 批量插入房源信息 + * @param rooms + * @param businessInfos + * @param extendInfos */ - List exportRoomByIds(String[] ids); - + void batchInsertRooms(List rooms, List businessInfos, List extendInfos); + /** - * 批量导入房源信息 - * - * @param file 导入文件 - * @return 导入结果 + * 获取项目下已存在的房源编号 + * @param projectId + * @param roomNumbers + * @return */ - Map importRoom(MultipartFile file) throws Exception; -} \ No newline at end of file + Set getExistingRoomNumbers(String projectId, Set roomNumbers); +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/RoomTemplateService.java b/src/main/java/com/eden/room/service/RoomTemplateService.java deleted file mode 100644 index 7a6d5d2..0000000 --- a/src/main/java/com/eden/room/service/RoomTemplateService.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.eden.room.service; - -import com.eden.room.common.enums.BusinessStatusEnum; -import com.eden.room.common.enums.DecorationStatusEnum; -import com.eden.room.common.enums.PriceUnitEnum; -import com.eden.room.common.enums.RentalStatusEnum; -import com.eden.room.domain.RoomExport; -import com.eden.room.domain.dto.RoomExportDTO; -import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; - -/** - * 房源模板服务 - */ -@Service -public class RoomTemplateService { - /** - * 将房源导出DTO数据转换为房源导入模板格式 - * - * @param roomList 房源数据列表 - * @return 转换后的数据列表 - */ - public List convertToRoomImportList(List roomList) { - List result = new ArrayList<>(); - - if (roomList == null || roomList.isEmpty()) { - return result; - } - - for (RoomExportDTO roomDTO : roomList) { - RoomExport roomExport = new RoomExport(); - - // 设置基本信息 - roomExport.setProjectName(roomDTO.getProjectName()); - roomExport.setBuildingName(roomDTO.getBuildingName()); - roomExport.setFloorName(roomDTO.getFloorName()); - roomExport.setRoomNumber(roomDTO.getRoomNumber()); // 使用管理编号作为房源编号 - roomExport.setRentalArea(roomDTO.getRentalArea()); - roomExport.setPriceAndUnit((roomDTO.getPrice()==null?"":roomDTO.getPrice().toString()) + PriceUnitEnum.getValue(roomDTO.getPriceUnit())); - roomExport.setRentalStatus(RentalStatusEnum.getValue(roomDTO.getRentalStatus())); - roomExport.setAvailableDate(roomDTO.getAvailableDate()); - //TODO 根据tags 调接口去查对应的tagName - roomExport.setTags(roomDTO.getTags()); - roomExport.setIsVirtual("1".equals(roomDTO.getIsVirtual())? "是":"否"); - roomExport.setBusinessStatus(BusinessStatusEnum.getValue(roomDTO.getBusinessStatus())); - roomExport.setDecorationStatus(DecorationStatusEnum.getValue(roomDTO.getDecorationStatus())); - roomExport.setDeliveryTime(roomDTO.getDeliveryTime()); - roomExport.setCreateTime(roomDTO.getCreateTime()); - result.add(roomExport); - } - - return result; - } - - -} \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/impl/BuildingServiceImpl.java b/src/main/java/com/eden/room/service/impl/BuildingServiceImpl.java index d649698..fd1f8d4 100644 --- a/src/main/java/com/eden/room/service/impl/BuildingServiceImpl.java +++ b/src/main/java/com/eden/room/service/impl/BuildingServiceImpl.java @@ -1,6 +1,10 @@ package com.eden.room.service.impl; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Collections; +import java.util.stream.Collectors; import com.eden.room.domain.Project; import org.springframework.beans.factory.annotation.Autowired; @@ -90,9 +94,9 @@ public class BuildingServiceImpl implements IBuildingService { * @return 结果 */ @Override - public int deleteBuildingByIds(String[] ids) { - for (String id : ids) { - if (buildingMapper.checkBuildingHasFloors(Long.valueOf(id))) { + public int deleteBuildingByIds(List ids) { + for (Long id : ids) { + if (buildingMapper.checkBuildingHasFloors(id)) { throw new ServiceException("楼宇下存在楼层信息,不允许删除"); } } @@ -148,4 +152,19 @@ public class BuildingServiceImpl implements IBuildingService { private boolean checkBuildingCodeExists(Building building) { return buildingMapper.checkBuildingCodeExists(building) > 0; } + + @Override + public Map getBuildingIdsByNames(String projectId, Set buildingNames) { + if (projectId == null || buildingNames == null || buildingNames.isEmpty()) { + return Collections.emptyMap(); + } + + List buildings = buildingMapper.selectBuildingListByNames(projectId, buildingNames); + return buildings.stream() + .collect(Collectors.toMap( + Building::getBuildingName, + Building::getId, + (existing, replacement) -> existing + )); + } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/impl/FloorServiceImpl.java b/src/main/java/com/eden/room/service/impl/FloorServiceImpl.java index 743e098..c492b02 100644 --- a/src/main/java/com/eden/room/service/impl/FloorServiceImpl.java +++ b/src/main/java/com/eden/room/service/impl/FloorServiceImpl.java @@ -1,6 +1,10 @@ package com.eden.room.service.impl; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Collections; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -81,11 +85,11 @@ public class FloorServiceImpl implements IFloorService { */ @Override @Transactional - public int deleteFloorByIds(String[] ids) { - for (String id : ids) { + public int deleteFloorByIds(List ids) { + for (Long id : ids) { // 检查楼层是否有关联的房源 - if (floorMapper.checkFloorHasRooms(Long.valueOf(id)) > 0) { - Floor floor = floorMapper.selectFloorById(Long.valueOf(id)); + if (floorMapper.checkFloorHasRooms(id) > 0) { + Floor floor = floorMapper.selectFloorById(id); throw new ServiceException(String.format("楼层'%s'已分配房源,不能删除", floor.getFloorName())); } } @@ -115,4 +119,19 @@ public class FloorServiceImpl implements IFloorService { floor.setBuildingId(buildingId); return floorMapper.selectFloorList(floor); } + + @Override + public Map getFloorIdsByNames(Long buildingId, Set floorNames) { + if (buildingId == null || floorNames == null || floorNames.isEmpty()) { + return Collections.emptyMap(); + } + + List floors = floorMapper.selectFloorListByNames(buildingId, floorNames); + return floors.stream() + .collect(Collectors.toMap( + Floor::getFloorName, + Floor::getId, + (existing, replacement) -> existing + )); + } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/impl/ProjectServiceImpl.java b/src/main/java/com/eden/room/service/impl/ProjectServiceImpl.java index b662072..067e74d 100644 --- a/src/main/java/com/eden/room/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/eden/room/service/impl/ProjectServiceImpl.java @@ -1,6 +1,10 @@ package com.eden.room.service.impl; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Collections; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.eden.room.mapper.ProjectMapper; @@ -114,4 +118,19 @@ public class ProjectServiceImpl implements IProjectService { project.setProjectName(name); return projectMapper.selectProjectList(project); } + + @Override + public Map getProjectIdsByNames(Set projectNames) { + if (projectNames == null || projectNames.isEmpty()) { + return Collections.emptyMap(); + } + + List projects = projectMapper.selectProjectListByNames(projectNames); + return projects.stream() + .collect(Collectors.toMap( + Project::getProjectName, + Project::getId, + (existing, replacement) -> existing + )); + } } \ No newline at end of file diff --git a/src/main/java/com/eden/room/service/impl/RoomServiceImpl.java b/src/main/java/com/eden/room/service/impl/RoomServiceImpl.java index d6776d6..09aa534 100644 --- a/src/main/java/com/eden/room/service/impl/RoomServiceImpl.java +++ b/src/main/java/com/eden/room/service/impl/RoomServiceImpl.java @@ -3,9 +3,7 @@ package com.eden.room.service.impl; import com.eden.room.common.ContextUser; import com.eden.room.common.UserContextHolder; -import com.eden.room.common.enums.ImageTypeEnum; -import com.eden.room.common.enums.PriceUnitEnum; -import com.eden.room.common.enums.RentalStatusEnum; +import com.eden.room.common.enums.*; import com.eden.room.domain.*; import com.eden.room.domain.dto.*; import com.eden.room.feign.ContractFeignClient; @@ -19,6 +17,7 @@ import com.eden.room.mapper.RoomExtendInfoMapper; import com.eden.room.mapper.RoomImageMapper; import com.eden.room.mapper.RoomMapper; import com.eden.room.service.IRoomService; +import com.eden.room.utils.EnumConverter; import com.eden.room.utils.ExcelUtil; import com.eden.room.utils.excel.Excel; import lombok.extern.slf4j.Slf4j; @@ -36,6 +35,8 @@ import java.lang.reflect.Field; import java.util.*; import java.util.stream.Collectors; +import com.eden.room.constant.RoomConstants; + /** * 房源服务实现类 */ @@ -77,10 +78,8 @@ public class RoomServiceImpl implements IRoomService { * 查询房源列表 */ @Override - public List selectRoomList(Room room) { - // 设置租户ID - //setTenantId(room); - return roomMapper.selectRoomList(room); + public List selectRoomList(RoomQueryDTO queryDTO) { + return roomMapper.selectRoomList(queryDTO); } /** @@ -170,54 +169,59 @@ public class RoomServiceImpl implements IRoomService { public int insertRoom(RoomDTO roomDTO) { // 获取当前用户 ContextUser user = new ContextUser(); - user.setUsername("admin"); + user.setUsername(RoomConstants.DEFAULT_USERNAME); Date now = new Date(); // 设置房源基础信息 Room room = new Room(); BeanUtils.copyProperties(roomDTO, room); - //setTenantId(room); room.setCreateTime(now); room.setLastModTime(now); room.setCreateUserId(user.getUserName()); room.setLastModUserId(user.getUserName()); - room.setDelFlag("0"); - + room.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + + // todo 数据库校验 + roomMapper.checkRoomDigitalNumberExist(room.getRoomDigitalNumber(), room.getProjectId(), + room.getBuildingId(), room.getFloorId()); + + // todo 数据库校验 + roomMapper.checkRoomNumberExist(room.getRoomNumber(), room.getProjectId(), + room.getBuildingId(), room.getFloorId()); + // 插入房源基础信息 - int rows = roomMapper.insertRoom(room); + int rows = roomMapper.batchInsertRooms(Collections.singletonList(room)); Long roomId = room.getId(); // 设置招商信息 RoomBusinessInfo businessInfo = roomDTO.getBusinessInfo(); if (businessInfo != null) { businessInfo.setRoomId(roomId); - //setTenantId(businessInfo); businessInfo.setCreateTime(now); businessInfo.setLastModTime(now); businessInfo.setCreateUserId(user.getUserName()); businessInfo.setLastModUserId(user.getUserName()); - businessInfo.setDelFlag("0"); + businessInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); // 默认设置为待租状态 if (StringUtils.isEmpty(businessInfo.getRentalStatus())) { businessInfo.setRentalStatus(RentalStatusEnum.WAITING.getKey()); } - businessInfo.setPriceUnit(PriceUnitEnum.getByValue(businessInfo.getPriceUnit()).getKey()); + businessInfo.setPriceUnit(businessInfo.getPriceUnit()); // 插入招商信息 - businessInfoMapper.insertRoomBusinessInfo(businessInfo); + businessInfoMapper.batchInsertBusinessInfos(Collections.singletonList(businessInfo)); } // 设置拓展信息 RoomExtendInfo extendInfo = roomDTO.getExtendInfo(); if (extendInfo != null) { extendInfo.setRoomId(roomId); - //setTenantId(extendInfo); extendInfo.setCreateTime(now); extendInfo.setLastModTime(now); extendInfo.setCreateUserId(user.getUserName()); extendInfo.setLastModUserId(user.getUserName()); - extendInfo.setDelFlag("0"); + extendInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); // 处理标签 if (roomDTO.getTags() != null && !roomDTO.getTags().isEmpty()) { @@ -225,7 +229,7 @@ public class RoomServiceImpl implements IRoomService { } // 插入拓展信息 - extendInfoMapper.insertRoomExtendInfo(extendInfo); + extendInfoMapper.batchInsertExtendInfos(Collections.singletonList(extendInfo)); } // 插入房源图片 @@ -245,7 +249,7 @@ public class RoomServiceImpl implements IRoomService { public int updateRoom(RoomDTO roomDTO) { // 获取当前用户 ContextUser user = new ContextUser(); - user.setUsername("admin"); + user.setUsername(RoomConstants.DEFAULT_USERNAME); Date now = new Date(); Long roomId = roomDTO.getId(); @@ -270,11 +274,10 @@ public class RoomServiceImpl implements IRoomService { if (existBusinessInfo != null) { businessInfoMapper.updateRoomBusinessInfo(businessInfo); } else { - //setTenantId(businessInfo); businessInfo.setCreateTime(now); businessInfo.setCreateUserId(user.getUserName()); - businessInfo.setDelFlag("0"); - businessInfoMapper.insertRoomBusinessInfo(businessInfo); + businessInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + businessInfoMapper.batchInsertBusinessInfos(Collections.singletonList(businessInfo)); } } @@ -295,11 +298,10 @@ public class RoomServiceImpl implements IRoomService { if (existExtendInfo != null) { extendInfoMapper.updateRoomExtendInfo(extendInfo); } else { - //setTenantId(extendInfo); extendInfo.setCreateTime(now); extendInfo.setCreateUserId(user.getUserName()); - extendInfo.setDelFlag("0"); - extendInfoMapper.insertRoomExtendInfo(extendInfo); + extendInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + extendInfoMapper.batchInsertExtendInfos(Collections.singletonList(extendInfo)); } } @@ -344,94 +346,67 @@ public class RoomServiceImpl implements IRoomService { return rows; } - /** - * 批量删除房源信息 - */ - @Override - @Transactional - public int deleteRoomByIds(String[] ids) { - // 检查房源是否有正在执行的合同 - for (String id : ids) { - if (checkRoomContract(Long.valueOf(id))) { - throw new RuntimeException("房源ID为" + id + "的房源有正在执行的合同,不能删除"); - } - } - - // 批量删除房源基础信息 - int rows = roomMapper.deleteRoomByIds(ids); - - // 批量删除招商信息 - businessInfoMapper.deleteRoomBusinessInfoByRoomIds(ids); - - // 批量删除拓展信息 - extendInfoMapper.deleteRoomExtendInfoByRoomIds(ids); - - // 批量删除图片信息 - imageMapper.deleteRoomImagesByRoomIds(ids); - - return rows; - } /** * 导出房源信息 */ @Override - public List exportRoom(Room room) { - // 设置租户ID - //setTenantId(room); - + public List exportRoom(RoomQueryDTO queryDTO) { + // 查询房源信息 - List roomList = roomMapper.selectRoomList(room); + List roomList = roomMapper.selectRoomList(queryDTO); if (roomList == null || roomList.isEmpty()) { return new ArrayList<>(); } // 转换为导出DTO List exportList = new ArrayList<>(); + if (roomList.isEmpty()) { + return exportList; + } + // 转换为导出DTO for (Room r : roomList) { RoomExportDTO exportDTO = new RoomExportDTO(); - - // 设置项目名称 - if (StringUtils.isNotEmpty(r.getProjectId())) { - exportDTO.setProjectName(projectMapper.selectProjectById(r.getProjectId()).getProjectName()); - } - - // 设置楼宇名称 - if (r.getBuildingId()!=null) { - exportDTO.setBuildingName(buildingMapper.selectBuildingById(r.getBuildingId()).getBuildingName()); - } - - // 设置楼层名称 - if (r.getFloorId()!=null) { - exportDTO.setFloorName(floorMapper.selectFloorById(r.getFloorId()).getFloorName()); - } - - // 设置基础信息 + + // 复制基本信息 + exportDTO.setId(r.getId()); + exportDTO.setProjectId(r.getProjectId()); + exportDTO.setProjectName(r.getProjectName()); + exportDTO.setBuildingId(r.getBuildingId()); + exportDTO.setBuildingName(r.getBuildingName()); + exportDTO.setFloorId(r.getFloorId()); + exportDTO.setFloorName(r.getFloorName()); exportDTO.setRoomNumber(r.getRoomNumber()); exportDTO.setRoomDigitalNumber(r.getRoomDigitalNumber()); + exportDTO.setRoomManageNumber(r.getRoomManageNumber()); + exportDTO.setRoomName(r.getRoomName()); + exportDTO.setRoomType(r.getRoomType()); + exportDTO.setFloor(r.getFloor()); + exportDTO.setBuildingArea(r.getBuildingArea()); exportDTO.setRentalArea(r.getRentalArea()); exportDTO.setBillingArea(r.getBillingArea()); - exportDTO.setBuildingArea(r.getBuildingArea()); exportDTO.setInnerArea(r.getInnerArea()); - exportDTO.setRoomManageNumber(r.getRoomManageNumber()); + exportDTO.setIsVirtual(r.getIsVirtual()); + exportDTO.setDeliveryTime(r.getDeliveryTime()); + exportDTO.setOwnerId(r.getOwnerId()); + exportDTO.setPropertyNature(r.getPropertyNature()); + exportDTO.setHeight(r.getHeight()); + exportDTO.setLoadValue(r.getLoadValue()); + exportDTO.setRoomStatus(r.getRoomStatus()); + exportDTO.setCreateTime(r.getCreateTime()); + exportDTO.setPrice(r.getPrice()); + exportDTO.setPriceUnit(r.getPriceUnit()); + exportDTO.setRentalStatus(r.getRentalStatus()); + exportDTO.setAvailableDate(r.getAvailableDate()); + exportDTO.setBusinessStatus(r.getBusinessStatus()); + exportDTO.setDecorationStatus(r.getDecorationStatus()); + // todo 查询接口进行转换 注意不要在for循环里面调用 + exportDTO.setTags(r.getTags()); + exportDTO.setPriceAndUnit((exportDTO.getPrice())); + + // 转换枚举字段 + EnumConverter.convert(exportDTO); - // 查询招商信息 - RoomBusinessInfo businessInfo = businessInfoMapper.selectRoomBusinessInfoByRoomId(r.getId()); - if (businessInfo != null) { - exportDTO.setPrice(businessInfo.getPrice()); - exportDTO.setPriceUnit(businessInfo.getPriceUnit()); - exportDTO.setRentalStatus(businessInfo.getRentalStatus()); - exportDTO.setAvailableDate(businessInfo.getAvailableDate()); - exportDTO.setBusinessStatus(businessInfo.getBusinessStatus()); - exportDTO.setDecorationStatus(businessInfo.getDecorationStatus()); - } - - // 查询拓展信息 - RoomExtendInfo extendInfo = extendInfoMapper.selectRoomExtendInfoByRoomId(r.getId()); - if (extendInfo != null) { - exportDTO.setTags(extendInfo.getTags()); - } - exportList.add(exportDTO); } @@ -470,83 +445,7 @@ public class RoomServiceImpl implements IRoomService { // 调用合同服务接口,检查房源是否有正在执行的合同 return contractFeignClient.checkRoomContract(id, null); } - - /** - * 根据ID列表导出房源信息 - * - * @param ids 房源ID数组 - * @return 房源信息列表 - */ - @Override - public List exportRoomByIds(String[] ids) { - if (ids == null || ids.length == 0) { - return new ArrayList<>(); - } - - List exportList = new ArrayList<>(); - - // 查询指定ID的房源信息 - List roomList = roomMapper.selectRoomByIds(ids); - if (roomList.isEmpty()) { - return exportList; - } - - // 转换为导出DTO - for (Room r : roomList) { - RoomExportDTO exportDTO = new RoomExportDTO(); - - // 复制基本信息 - exportDTO.setId(r.getId()); - exportDTO.setProjectId(r.getProjectId()); - exportDTO.setProjectName(r.getProjectName()); - exportDTO.setBuildingId(r.getBuildingId()); - exportDTO.setBuildingName(r.getBuildingName()); - exportDTO.setFloorId(r.getFloorId()); - exportDTO.setFloorName(r.getFloorName()); - exportDTO.setRoomNumber(r.getRoomNumber()); - exportDTO.setRoomDigitalNumber(r.getRoomDigitalNumber()); - exportDTO.setRoomManageNumber(r.getRoomManageNumber()); - exportDTO.setRoomName(r.getRoomName()); - exportDTO.setRoomType(r.getRoomType()); - exportDTO.setFloor(r.getFloor()); - exportDTO.setIsWholeFloor(r.getIsWholeFloor()); - exportDTO.setBuildingArea(r.getBuildingArea()); - exportDTO.setRentalArea(r.getRentalArea()); - exportDTO.setBillingArea(r.getBillingArea()); - exportDTO.setInnerArea(r.getInnerArea()); - exportDTO.setIsVirtual(r.getIsVirtual()); - exportDTO.setDeliveryTime(r.getDeliveryTime()); - exportDTO.setOwnerId(r.getOwnerId()); - exportDTO.setPropertyNature(r.getPropertyNature()); - exportDTO.setHeight(r.getHeight()); - exportDTO.setLoadValue(r.getLoadValue()); - exportDTO.setRoomStatus(r.getRoomStatus()); - exportDTO.setCreateTime(r.getCreateTime()); - - // 查询招商信息 - RoomBusinessInfo businessInfo = businessInfoMapper.selectRoomBusinessInfoByRoomId(r.getId()); - if (businessInfo != null) { - exportDTO.setPrice(businessInfo.getPrice()); - exportDTO.setPriceUnit(businessInfo.getPriceUnit()); - exportDTO.setRentalStatus(businessInfo.getRentalStatus()); - exportDTO.setAvailableDate(businessInfo.getAvailableDate()); - exportDTO.setBusinessStatus(businessInfo.getBusinessStatus()); - exportDTO.setDecorationStatus(businessInfo.getDecorationStatus()); - } - - // 查询拓展信息 - RoomExtendInfo extendInfo = extendInfoMapper.selectRoomExtendInfoByRoomId(r.getId()); - if (extendInfo != null) { - exportDTO.setTags(extendInfo.getTags()); - } - - exportList.add(exportDTO); - } - - return exportList; - } - /** * 插入房源图片 * @@ -564,259 +463,17 @@ public class RoomServiceImpl implements IRoomService { image.setRoomId(roomId); image.setImageType(imageType); image.setSortOrder(sortOrder++); - //setTenantId(image); image.setCreateTime(now); image.setLastModTime(now); image.setCreateUserId(user.getUserName()); image.setLastModUserId(user.getUserName()); - image.setDelFlag("0"); + image.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); imageMapper.insertRoomImage(image); } } } - - /** - * 设置租户ID - * - * @param obj 需要设置租户ID的对象 - */ -// private void setTenantId(Object obj) { -// if (obj instanceof Room) { -// ((Room) obj).setTenantId(UserContextHolder.get().getTenantId()); -// } else if (obj instanceof RoomBusinessInfo) { -// ((RoomBusinessInfo) obj).setTenantId(UserContextHolder.get().getTenantId()); -// } else if (obj instanceof RoomExtendInfo) { -// ((RoomExtendInfo) obj).setTenantId(UserContextHolder.get().getTenantId()); -// } else if (obj instanceof RoomImage) { -// ((RoomImage) obj).setTenantId(UserContextHolder.get().getTenantId()); -// } -// } - /** - * 批量导入房源信息 - * - * @param file 导入文件 - * @return 导入结果信息 - */ - @Override - @Transactional(rollbackFor = Exception.class) - public Map importRoom(MultipartFile file) throws Exception { - // 初始化结果 - Map result = new HashMap<>(); - int successCount = 0; - int failCount = 0; - StringBuilder failMsg = new StringBuilder(); - - // 解析Excel文件 - ExcelUtil excelUtil = new ExcelUtil<>(RoomImportDTO.class); - List roomImportList = excelUtil.importExcel(file.getInputStream()); - - if (roomImportList.isEmpty()) { - throw new RuntimeException("Excel文件中没有数据"); - } - - // 当前用户 - ContextUser user = UserContextHolder.get(); - Date now = new Date(); - - // 处理每一行数据 - for (int i = 0; i < roomImportList.size(); i++) { - RoomImportDTO roomImport = roomImportList.get(i); - try { - // 1. 查找项目 - String projectId = getProjectIdByName(roomImport.getProjectName()); - if (projectId == null) { - failCount++; - String errorMsg = "项目[" + roomImport.getProjectName() + "]不存在"; - failMsg.append("第").append(i + 2).append("行:").append(errorMsg).append("
"); - roomImport.setImportResult(errorMsg); - continue; - } - - // 2. 查找楼宇 - Long buildingId = getBuildingIdByName(projectId, roomImport.getBuildingName()); - if (buildingId == null) { - failCount++; - String errorMsg = "楼宇[" + roomImport.getBuildingName() + "]不存在"; - failMsg.append("第").append(i + 2).append("行:").append(errorMsg).append("
"); - roomImport.setImportResult(errorMsg); - continue; - } - - // 3. 查找楼层 - Long floorId = getFloorIdByName(buildingId, roomImport.getFloorName()); - if (floorId == null) { - failCount++; - String errorMsg = "楼层[" + roomImport.getFloorName() + "]不存在"; - failMsg.append("第").append(i + 2).append("行:").append(errorMsg).append("
"); - roomImport.setImportResult(errorMsg); - continue; - } - - // 4. 检查房源编号是否重复 - boolean roomExists = checkRoomCodeExists(roomImport.getRoomNumber(), projectId, buildingId, floorId); - if (roomExists) { - failCount++; - String errorMsg = "房源编号[" + roomImport.getRoomNumber() + "]已存在"; - failMsg.append("第").append(i + 2).append("行:").append(errorMsg).append("
"); - roomImport.setImportResult(errorMsg); - continue; - } - - // 5. 保存房源基本信息 - Room room = new Room(); - room.setProjectId(projectId); - room.setProjectName(roomImport.getProjectName()); - room.setBuildingId(buildingId); - room.setBuildingName(roomImport.getBuildingName()); - room.setFloorId(floorId); - room.setFloorName(roomImport.getFloorName()); - room.setRoomNumber(roomImport.getRoomNumber()); - room.setRoomDigitalNumber(roomImport.getRoomDigitalNumber()); - room.setRoomManageNumber(roomImport.getRoomManageNumber()); - room.setBuildingArea(roomImport.getBuildingArea()); - room.setRentalArea(roomImport.getRentalArea()); - room.setBillingArea(roomImport.getBillingArea()); - room.setHeight(roomImport.getHeight()); - room.setIsVirtual("0"); // 默认非虚拟房源 - room.setRoomStatus("1"); // 默认公开状态 - room.setDelFlag("0"); - room.setCreateTime(now); - room.setLastModTime(now); - - // 插入房源基本信息 - roomMapper.insertRoom(room); - - // 6. 创建招商信息 - RoomBusinessInfo businessInfo = new RoomBusinessInfo(); - businessInfo.setRoomId(room.getId()); - businessInfo.setPrice(roomImport.getPrice()); - businessInfo.setFloorPrice(roomImport.getFloorPrice()); - businessInfo.setPriceUnit(roomImport.getPriceUnit()); - businessInfo.setRentalStatus("1"); // 默认待租状态 - businessInfo.setBusinessStatus("1"); // 默认招商状态 - businessInfo.setDecorationStatus("3"); // 默认毛坯状态 - businessInfo.setDelFlag("0"); - businessInfo.setCreateTime(now); - businessInfo.setLastModTime(now); - - // 插入招商信息 - businessInfoMapper.insertRoomBusinessInfo(businessInfo); - - // 7. 创建拓展信息 - if (StringUtils.isNotBlank(roomImport.getTags())) { - RoomExtendInfo extendInfo = new RoomExtendInfo(); - extendInfo.setRoomId(room.getId()); - extendInfo.setTags(roomImport.getTags()); - extendInfo.setDelFlag("0"); - extendInfo.setCreateTime(now); - extendInfo.setLastModTime(now); - - // 插入拓展信息 - extendInfoMapper.insertRoomExtendInfo(extendInfo); - } - - successCount++; - roomImport.setImportResult("导入成功"); - } catch (Exception e) { - failCount++; - String errorMsg = "导入失败:" + e.getMessage(); - failMsg.append("第").append(i + 2).append("行:").append(errorMsg).append("
"); - roomImport.setImportResult(errorMsg); - } - } - - // 只有在有导入失败的情况下才生成Excel文件 - byte[] excelBytes = null; - if (failCount > 0) { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - exportToExcelWithTemplate(roomImportList, outputStream); - excelBytes = outputStream.toByteArray(); - result.put("excelBytes", excelBytes); - } - result.put("successCount", successCount); - result.put("failCount", failCount); - result.put("failMsg", failMsg.toString()); - result.put("allSuccess", failCount == 0); - - return result; - } - /** - * 使用模板文件导出Excel - * - * @param roomList 房源数据列表 - * @param outputStream 输出流 - * @throws IOException IO异常 - */ - public void exportToExcelWithTemplate(List roomList, OutputStream outputStream) throws IOException { - // 加载模板文件 - ClassPathResource resource = new ClassPathResource("templates/room_import.xlsx"); - InputStream inputStream = resource.getInputStream(); - Workbook workbook = WorkbookFactory.create(inputStream); - inputStream.close(); - - // 获取第一个工作表 - Sheet sheet = workbook.getSheetAt(0); - - // 获取标题行 - Row headerRow = sheet.getRow(0); - if (headerRow == null) { - throw new RuntimeException("模板文件格式错误:未找到标题行"); - } - - // 获取字段映射 - List fields = getExcelFields(RoomExport.class); - Map columnMap = new HashMap<>(); - for (int i = 0; i < headerRow.getLastCellNum(); i++) { - Cell cell = headerRow.getCell(i); - if (cell != null) { - String headerName = cell.getStringCellValue(); - for (Field field : fields) { - Excel excel = field.getAnnotation(Excel.class); - if (excel != null && excel.name().equals(headerName)) { - columnMap.put(i, field); - break; - } - } - } - } - - // 填充数据行 - int startRow = 4; // 从第4行开始填充数据 - for (RoomImportDTO room : roomList) { - Row row = sheet.getRow(startRow); - if (row == null) { - row = sheet.createRow(startRow); - } - - for (Map.Entry entry : columnMap.entrySet()) { - int columnIndex = entry.getKey(); - Field field = entry.getValue(); - - Cell cell = row.getCell(columnIndex); - if (cell == null) { - cell = row.createCell(columnIndex); - } - - field.setAccessible(true); - try { - Object value = field.get(room); - if (value != null) { - cell.setCellValue(value.toString()); - } - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - startRow++; - } - - // 写入输出流 - workbook.write(outputStream); - workbook.close(); - } private List getExcelFields(Class clazz) { List fields = new ArrayList<>(); Field[] declaredFields = clazz.getDeclaredFields(); @@ -899,8 +556,8 @@ public class RoomServiceImpl implements IRoomService { if (StringUtils.isBlank(roomCode)) { return false; } - - Room param = new Room(); + + RoomQueryDTO param = new RoomQueryDTO(); param.setRoomNumber(roomCode); param.setProjectId(projectId); param.setBuildingId(buildingId); @@ -908,4 +565,84 @@ public class RoomServiceImpl implements IRoomService { List rooms = roomMapper.selectRoomList(param); return !rooms.isEmpty(); } -} \ No newline at end of file + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchInsertRooms(List rooms, List businessInfos, List extendInfos) { + if (rooms == null || rooms.isEmpty()) { + return; + } + + // 设置批量插入的批次大小 + int batchSize = RoomConstants.BATCH_SIZE; + + // 分批处理房间信息 + for (int i = 0; i < rooms.size(); i += batchSize) { + int end = Math.min(i + batchSize, rooms.size()); + List batch = rooms.subList(i, end); + roomMapper.batchInsertRooms(batch); + } + + // 获取所有插入的Room的ID + List roomIds = rooms.stream() + .map(Room::getId) + .collect(Collectors.toList()); + + // 设置RoomBusinessInfo和RoomExtendInfo的roomId + if (businessInfos != null && !businessInfos.isEmpty()) { + for (int i = 0; i < businessInfos.size(); i++) { + if (i < roomIds.size()) { + businessInfos.get(i).setRoomId(roomIds.get(i)); + } + } + + // 分批处理招商信息 + for (int i = 0; i < businessInfos.size(); i += batchSize) { + int end = Math.min(i + batchSize, businessInfos.size()); + List batch = businessInfos.subList(i, end); + businessInfoMapper.batchInsertBusinessInfos(batch); + } + } + + // 设置RoomExtendInfo的roomId并分批处理扩展信息 + if (extendInfos != null && !extendInfos.isEmpty()) { + for (int i = 0; i < extendInfos.size(); i++) { + if (i < roomIds.size()) { + extendInfos.get(i).setRoomId(roomIds.get(i)); + } + } + + for (int i = 0; i < extendInfos.size(); i += batchSize) { + int end = Math.min(i + batchSize, extendInfos.size()); + List batch = extendInfos.subList(i, end); + extendInfoMapper.batchInsertExtendInfos(batch); + } + } + } + @Override + public Set getExistingRoomNumbers(String projectId, Set roomNumbers) { + if (projectId == null || roomNumbers == null || roomNumbers.isEmpty()) { + return Collections.emptySet(); + } + + // 1. 查询数据库中已存在的房间号 + Set existingInDB = roomMapper.getExistingRoomNumbers(projectId, roomNumbers); + + // 2. 检查当前批次中是否有重复的房间号 + Set duplicatesInBatch = new HashSet<>(); + Set seen = new HashSet<>(); + + for (String roomNumber : roomNumbers) { + if (!seen.add(roomNumber)) { + duplicatesInBatch.add(roomNumber); + } + } + + // 3. 合并所有重复的房间号 + Set allDuplicates = new HashSet<>(existingInDB); + allDuplicates.addAll(duplicatesInBatch); + + return allDuplicates; + } + +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/EnumConvert.java b/src/main/java/com/eden/room/utils/EnumConvert.java new file mode 100644 index 0000000..c478884 --- /dev/null +++ b/src/main/java/com/eden/room/utils/EnumConvert.java @@ -0,0 +1,24 @@ +package com.eden.room.utils; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 枚举转换注解 + * 用于标记需要将枚举key转换为value的字段 + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface EnumConvert { + /** + * 枚举类 + */ + Class> value(); + + /** + * 获取value的方法名 + */ + String method() default "getValue"; +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/EnumConverter.java b/src/main/java/com/eden/room/utils/EnumConverter.java new file mode 100644 index 0000000..02611d7 --- /dev/null +++ b/src/main/java/com/eden/room/utils/EnumConverter.java @@ -0,0 +1,50 @@ +package com.eden.room.utils; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * 枚举转换工具类 + */ +public class EnumConverter { + + /** + * 转换对象中的枚举字段 + */ + public static void convert(Object obj) { + if (obj == null) { + return; + } + + Class clazz = obj.getClass(); + Field[] fields = clazz.getDeclaredFields(); + + for (Field field : fields) { + EnumConvert annotation = field.getAnnotation(EnumConvert.class); + if (annotation != null) { + try { + convertField(obj, field, annotation); + } catch (Exception e) { + throw new RuntimeException("枚举转换失败: " + field.getName(), e); + } + } + } + } + + /** + * 转换字段值 + */ + private static void convertField(Object obj, Field field, EnumConvert annotation) throws Exception { + field.setAccessible(true); + Object value = field.get(obj); + + if (value != null) { + Class> enumClass = annotation.value(); + // 获取getValue静态方法 + Method getValueMethod = enumClass.getMethod(annotation.method(), String.class); + // 直接调用getValue方法获取转换后的值 + Object convertedValue = getValueMethod.invoke(null, value.toString()); + field.set(obj, convertedValue); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/EnumValid.java b/src/main/java/com/eden/room/utils/EnumValid.java new file mode 100644 index 0000000..611fcd7 --- /dev/null +++ b/src/main/java/com/eden/room/utils/EnumValid.java @@ -0,0 +1,32 @@ +package com.eden.room.utils; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +/** + * 枚举校验注解 + */ +@Target({ElementType.FIELD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = EnumValidator.class) +public @interface EnumValid { + /** + * 枚举类 + */ + Class> value(); + + /** + * 校验方法名 + */ + String method() default "isValid"; + + /** + * 错误信息 + */ + String message() default "无效的枚举值"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/EnumValidator.java b/src/main/java/com/eden/room/utils/EnumValidator.java new file mode 100644 index 0000000..2847ce6 --- /dev/null +++ b/src/main/java/com/eden/room/utils/EnumValidator.java @@ -0,0 +1,34 @@ +package com.eden.room.utils; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.lang.reflect.Method; + +/** + * 枚举校验器 + */ +public class EnumValidator implements ConstraintValidator { + + private Class> enumClass; + private String methodName; + + @Override + public void initialize(EnumValid constraintAnnotation) { + this.enumClass = constraintAnnotation.value(); + this.methodName = constraintAnnotation.method(); + } + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + if (value == null || value.isEmpty()) { + return true; + } + + try { + Method method = enumClass.getMethod(methodName, String.class); + return (boolean) method.invoke(null, value); + } catch (Exception e) { + return false; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/ExcelUtil.java b/src/main/java/com/eden/room/utils/ExcelUtil.java index 4556794..3de8250 100644 --- a/src/main/java/com/eden/room/utils/ExcelUtil.java +++ b/src/main/java/com/eden/room/utils/ExcelUtil.java @@ -11,6 +11,7 @@ import java.util.HashMap; import java.util.Map; import java.io.IOException; +import com.alibaba.excel.EasyExcel; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.ss.usermodel.WorkbookFactory; @@ -271,7 +272,6 @@ public class ExcelUtil { } } } - // 写入输出流 workbook.write(os); } finally { diff --git a/src/main/java/com/eden/room/utils/excel/BigDecimalConverter.java b/src/main/java/com/eden/room/utils/excel/BigDecimalConverter.java new file mode 100644 index 0000000..9f9c43f --- /dev/null +++ b/src/main/java/com/eden/room/utils/excel/BigDecimalConverter.java @@ -0,0 +1,42 @@ +package com.eden.room.utils.excel; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.math.BigDecimal; + +// 自定义转换器 +public class BigDecimalConverter implements Converter { + + @Override + public Class supportJavaTypeKey() { + return BigDecimal.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public BigDecimal convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { + String stringValue = cellData.getStringValue(); + if (stringValue == null || stringValue.trim().isEmpty()) { + return BigDecimal.ZERO; + } + try { + return new BigDecimal(stringValue.trim()); + } catch (NumberFormatException e) { + return BigDecimal.ZERO; + } + } + + @Override + public WriteCellData convertToExcelData(BigDecimal value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { + return new WriteCellData(value.toString()); + } +} diff --git a/src/main/java/com/eden/room/utils/excel/ExcelImportListener.java b/src/main/java/com/eden/room/utils/excel/ExcelImportListener.java new file mode 100644 index 0000000..bb19b6c --- /dev/null +++ b/src/main/java/com/eden/room/utils/excel/ExcelImportListener.java @@ -0,0 +1,62 @@ +package com.eden.room.utils.excel; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.metadata.style.WriteFont; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import org.apache.poi.ss.usermodel.*; +import org.springframework.validation.Validator; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Excel导入监听器 + * @param 导入数据类型 + */ +public abstract class ExcelImportListener extends AnalysisEventListener { + + protected final List dataList = new ArrayList<>(); + protected final Map errorMap = new ConcurrentHashMap<>(); + protected Boolean successFlag = true; + protected final Validator validator; + + public ExcelImportListener(Validator validator) { + this.validator = validator; + } + + @Override + public void invoke(T data, AnalysisContext context) { + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + // 处理剩余数据 + if (!dataList.isEmpty()) { + batchProcess(); + } + } + + /** + * 批量处理数据 + */ + protected abstract void batchProcess(); + + /** + * 获取错误信息 + */ + public Map getErrorMap() { + return errorMap; + } + + public Boolean getSuccessFlag() { + return successFlag; + } + + + public abstract List getDataList(); +} \ No newline at end of file diff --git a/src/main/java/com/eden/room/utils/excel/RoomImportListener.java b/src/main/java/com/eden/room/utils/excel/RoomImportListener.java new file mode 100644 index 0000000..3e6b639 --- /dev/null +++ b/src/main/java/com/eden/room/utils/excel/RoomImportListener.java @@ -0,0 +1,220 @@ +package com.eden.room.utils.excel; + +import com.alibaba.excel.context.AnalysisContext; +import com.eden.room.common.enums.*; +import com.eden.room.domain.Room; +import com.eden.room.domain.RoomBusinessInfo; +import com.eden.room.domain.RoomExtendInfo; +import com.eden.room.domain.dto.RoomImportDTO; +import com.eden.room.service.IBuildingService; +import com.eden.room.service.IFloorService; +import com.eden.room.service.IProjectService; +import com.eden.room.service.IRoomService; +import org.springframework.validation.BeanPropertyBindingResult; +import org.springframework.validation.BindingResult; +import org.springframework.validation.Validator; +import com.eden.room.constant.RoomConstants; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 房源导入监听器 + */ +public class RoomImportListener extends ExcelImportListener { + + + private final IRoomService roomService; + + private final IProjectService projectService; + + private final IBuildingService buildingService; + + private final IFloorService floorService; + + // 用于存储待导入的数据 + private final List rooms = new ArrayList<>(); + private final List businessInfos = new ArrayList<>(); + private final List extendInfos = new ArrayList<>(); + + public RoomImportListener(Validator validator, IRoomService roomService, IProjectService projectService, IBuildingService buildingService, IFloorService floorService) { + super(validator); + this.roomService = roomService; + this.projectService = projectService; + this.buildingService = buildingService; + this.floorService = floorService; + } + + @Override + public void invoke(RoomImportDTO data, AnalysisContext context) { + // 获取当前行号 + int rowIndex = context.readRowHolder().getRowIndex(); + if (rowIndex <= RoomConstants.IMPORT_HEADER_ROW_INDEX) { + return; + } + dataList.add(data); + // 数据校验 + BindingResult bindingResult = new BeanPropertyBindingResult(data, RoomImportDTO.class.getName()); + validator.validate(data, bindingResult); + + if (bindingResult.hasErrors()) { + // 记录错误信息 + data.setImportResult(bindingResult.getAllErrors().get(0).getDefaultMessage()); + successFlag = false; + } + + } + @Override + protected void batchProcess() { + if (dataList.isEmpty()) { + return; + } + + Date now = new Date(); + + // 1. 收集所有需要查询的项目、楼宇、楼层信息 + Set projectNames = dataList.stream() + .map(RoomImportDTO::getProjectName) + .collect(Collectors.toSet()); + + Map> projectBuildingMap = new HashMap<>(); + Map> buildingFloorMap = new HashMap<>(); + + for (RoomImportDTO dto : dataList) { + projectBuildingMap.computeIfAbsent(dto.getProjectName(), k -> new HashSet<>()) + .add(dto.getBuildingName()); + buildingFloorMap.computeIfAbsent(dto.getBuildingName(), k -> new HashSet<>()) + .add(dto.getFloorName()); + } + + // 2. 批量查询项目、楼宇、楼层信息 + Map projectIdMap = projectService.getProjectIdsByNames(projectNames); + Map> buildingIdMap = new HashMap<>(); + Map> floorIdMap = new HashMap<>(); + + for (Map.Entry> entry : projectBuildingMap.entrySet()) { + String projectId = projectIdMap.get(entry.getKey()); + if (projectId != null) { + buildingIdMap.put(projectId, + buildingService.getBuildingIdsByNames(projectId, entry.getValue())); + } + } + + for (Map.Entry> entry : buildingFloorMap.entrySet()) { + for (Map buildingMap : buildingIdMap.values()) { + Long buildingId = buildingMap.get(entry.getKey()); + if (buildingId != null) { + floorIdMap.put(buildingId.toString(), + floorService.getFloorIdsByNames(buildingId, entry.getValue())); + } + } + } + + // 3. 收集所有需要检查的房间号 + Map> projectRoomMap = new HashMap<>(); + for (RoomImportDTO dto : dataList) { + String projectId = projectIdMap.get(dto.getProjectName()); + if (projectId != null) { + projectRoomMap.computeIfAbsent(projectId, k -> new HashSet<>()) + .add(dto.getRoomNumber()); + } + } + + // 4. 批量查询已存在的房间号 + Map> existingRoomMap = new HashMap<>(); + for (Map.Entry> entry : projectRoomMap.entrySet()) { + existingRoomMap.put(entry.getKey(), + roomService.getExistingRoomNumbers(entry.getKey(), entry.getValue())); + } + + // 5. 处理每一行数据 + for (RoomImportDTO dto : dataList) { + + String projectId = projectIdMap.get(dto.getProjectName()); + if (projectId == null) { + dto.setImportResult("项目不存在。"); + successFlag = false; + } + + Map buildingMap = buildingIdMap.get(projectId); + Long buildingId = buildingMap != null ? buildingMap.get(dto.getBuildingName()) : null; + if (buildingId == null) { + dto.setImportResult("楼宇不存在。"); + successFlag = false; + } + + Map floorMap = floorIdMap.get(buildingId.toString()); + Long floorId = floorMap != null ? floorMap.get(dto.getFloorName()) : null; + if (floorId == null) { + dto.setImportResult("楼层不存在。"); + successFlag = false; + } + + // 检查房间号是否重复 + Set existingRooms = existingRoomMap.get(projectId); + if (existingRooms != null && existingRooms.contains(dto.getRoomNumber())) { + dto.setImportResult("房间号已存在。"); + successFlag = false; + } + + if (!successFlag){ + continue; + } + + // 创建Room对象 + Room room = new Room(); + room.setProjectId(projectId); + room.setProjectName(dto.getProjectName()); + room.setBuildingId(buildingId); + room.setBuildingName(dto.getBuildingName()); + room.setFloorId(floorId); + room.setFloorName(dto.getFloorName()); + room.setRoomNumber(dto.getRoomNumber()); + room.setRoomDigitalNumber(dto.getRoomDigitalNumber()); + room.setRoomManageNumber(dto.getRoomManageNumber()); + room.setBuildingArea(dto.getBuildingArea()); + room.setRentalArea(dto.getRentalArea()); + room.setBillingArea(dto.getBillingArea()); + room.setHeight(dto.getHeight()); + room.setIsVirtual(VirtualFlagEnum.NO.getKey()); + room.setRoomStatus(RoomStatusEnum.PUBLIC.getKey()); + room.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + room.setCreateTime(now); + room.setLastModTime(now); + rooms.add(room); + + // 创建RoomBusinessInfo对象 + RoomBusinessInfo businessInfo = new RoomBusinessInfo(); + businessInfo.setPrice(dto.getPrice()); + businessInfo.setFloorPrice(dto.getFloorPrice()); + businessInfo.setPriceUnit(PriceUnitEnum.getByValue(dto.getPriceUnit())); + businessInfo.setRentalStatus(RentalStatusEnum.WAITING.getKey()); + businessInfo.setBusinessStatus(BusinessStatusEnum.BUSINESS.getKey()); + businessInfo.setDecorationStatus(DecorationStatusEnum.ROUGH.getKey()); + businessInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + businessInfo.setCreateTime(now); + businessInfo.setLastModTime(now); + businessInfos.add(businessInfo); + + // 创建RoomExtendInfo对象 + RoomExtendInfo extendInfo = new RoomExtendInfo(); + extendInfo.setTags(dto.getTags()); + extendInfo.setDelFlag(RoomConstants.DEL_FLAG_NORMAL); + extendInfo.setCreateTime(now); + extendInfo.setLastModTime(now); + extendInfos.add(extendInfo); + + } + + // 6. 批量保存数据 + if (!rooms.isEmpty() && successFlag) { + roomService.batchInsertRooms(rooms, businessInfos, extendInfos); + } + } + + @Override + public List getDataList() { + return dataList; + } + +} \ No newline at end of file diff --git a/src/main/resources/mapper/ProjectTreeMapper.xml b/src/main/resources/mapper/ProjectTreeMapper.xml index 5da2acf..362b74f 100644 --- a/src/main/resources/mapper/ProjectTreeMapper.xml +++ b/src/main/resources/mapper/ProjectTreeMapper.xml @@ -7,7 +7,7 @@ id, project_name as projectName, project_type as projectType - FROM tb_project + FROM TB_RES_PROJECT WHERE del_flag = '0' @@ -16,7 +16,7 @@ id, building_name as buildingName, building_code as buildingCode - FROM tb_building + FROM TB_RES_BUILDING WHERE project_id = #{projectId} AND del_flag = '0' @@ -26,7 +26,7 @@ id, floor_name as floorName, floor_number as floorNumber - FROM tb_floor + FROM TB_RES_FLOOR WHERE building_id = #{buildingId} AND del_flag = '0' ORDER BY floor_number @@ -40,7 +40,7 @@ room_status as roomStatus, building_area as buildingArea, rental_area as rentalArea - FROM tb_room + FROM TB_RES_ROOM WHERE floor_id = #{floorId} AND del_flag = '0' ORDER BY room_digital_number diff --git a/src/main/resources/mapper/room/BuildingMapper.xml b/src/main/resources/mapper/room/BuildingMapper.xml index bb1724d..3a8c2e6 100644 --- a/src/main/resources/mapper/room/BuildingMapper.xml +++ b/src/main/resources/mapper/room/BuildingMapper.xml @@ -49,8 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" b.last_mod_time, b.create_user_id, b.last_mod_user_id, b.del_flag, b.remark, b.reserve1, b.reserve2, b.reserve3, p.project_name - from TB_BUILDING b - left join TB_PROJECT p on b.project_id = p.id and p.del_flag = '0' + from TB_RES_BUILDING b + left join TB_RES_PROJECT p on b.project_id = p.id and p.del_flag = '0' - where b.id = #{id} and b.del_flag = '0' - insert into TB_BUILDING + insert into TB_RES_BUILDING - tenant_id, project_id, building_code, building_name, @@ -124,7 +123,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" last_mod_time - #{tenantId}, #{projectId}, #{buildingCode}, #{buildingName}, @@ -160,7 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update TB_BUILDING + update TB_RES_BUILDING building_code = #{buildingCode}, building_name = #{buildingName}, @@ -193,22 +191,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = '0' - - update TB_BUILDING set del_flag = '1' where id = #{id} + + update TB_RES_BUILDING set del_flag = '1' where id = #{id} - - update TB_BUILDING set del_flag = '1' where id in - + + update TB_RES_BUILDING set del_flag = '1' where id in + #{id} - select b.*, - (select count(*) from TB_ROOM_BASE where building_id = b.id and del_flag = '0') as total_rooms, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM where building_id = b.id and del_flag = '0') as total_rooms, + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_rooms, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_rooms, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_area, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_area, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.business_status = '招商') as available_rooms, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.building_id = b.id and rb.del_flag = '0' and rbs.business_status = '招商') as available_area - from TB_BUILDING b + from TB_RES_BUILDING b where b.id = #{id} and b.del_flag = '0' - + select count(1) > 0 from TB_RES_FLOOR where building_id = #{id} and del_flag = '0' + \ No newline at end of file diff --git a/src/main/resources/mapper/room/FloorMapper.xml b/src/main/resources/mapper/room/FloorMapper.xml index fc88629..64b14fa 100644 --- a/src/main/resources/mapper/room/FloorMapper.xml +++ b/src/main/resources/mapper/room/FloorMapper.xml @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, tenant_id, building_id, floor_number, floor_name, create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag, remark, reserve1, reserve2, reserve3 - from TB_FLOOR + from TB_RES_FLOOR - where id = #{id} and del_flag = '0' - insert into TB_FLOOR + insert into TB_RES_FLOOR - tenant_id, building_id, floor_number, floor_name, @@ -68,7 +67,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" last_mod_time - #{tenantId}, #{buildingId}, #{floorNumber}, #{floorName}, @@ -85,7 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update TB_FLOOR + update TB_RES_FLOOR floor_number = #{floorNumber}, floor_name = #{floorName}, @@ -99,22 +97,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = '0' - - update TB_FLOOR set del_flag = '1' where id = #{id} and del_flag = '0' + + update TB_RES_FLOOR set del_flag = '1' where id = #{id} and del_flag = '0' - - update TB_FLOOR set del_flag = '1' where id in - + + update TB_RES_FLOOR set del_flag = '1' where id in + #{id} - select f.*, - (select count(*) from TB_ROOM_BASE where floor_id = f.id and del_flag = '0') as total_rooms, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM where floor_id = f.id and del_flag = '0') as total_rooms, + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_rooms, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_rooms, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_area, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_area, - (select count(*) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.business_status = '招商') as available_rooms, - (select COALESCE(sum(rb.building_area), 0) from TB_ROOM_BASE rb - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(rb.building_area), 0) from TB_RES_ROOM rb + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where rb.floor_id = f.id and rb.del_flag = '0' and rbs.business_status = '招商') as available_area - from TB_FLOOR f + from TB_RES_FLOOR f where f.id = #{id} and f.del_flag = '0' - + select count(*) from TB_RES_ROOM where floor_id = #{id} and del_flag = '0' + + + \ No newline at end of file diff --git a/src/main/resources/mapper/room/ProjectMapper.xml b/src/main/resources/mapper/room/ProjectMapper.xml index 3c8b5ec..93582d6 100644 --- a/src/main/resources/mapper/room/ProjectMapper.xml +++ b/src/main/resources/mapper/room/ProjectMapper.xml @@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" address, project_tags, project_desc, project_image, manager_id, create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag, remark, reserve1, reserve2, reserve3 - from TB_PROJECT + from TB_RES_PROJECT - insert into TB_PROJECT + insert into TB_RES_PROJECT - tenant_id, project_type, project_name, project_short_name, @@ -90,7 +89,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" last_mod_time - #{tenantId}, #{projectType}, #{projectName}, #{projectShortName}, @@ -113,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update TB_PROJECT + update TB_RES_PROJECT project_type = #{projectType}, project_name = #{projectName}, @@ -135,27 +133,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update TB_PROJECT set del_flag = '1' where id = #{id} + update TB_RES_PROJECT set del_flag = '1' where id = #{id} - update TB_PROJECT set del_flag = '1' where id in + update TB_RES_PROJECT set del_flag = '1' where id in #{id} select p.*, - (select COALESCE(sum(building_area), 0) from TB_BUILDING where project_id = p.id and del_flag = '0') as total_area, - (select COALESCE(sum(building_area), 0) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(building_area), 0) from TB_RES_BUILDING where project_id = p.id and del_flag = '0') as total_area, + (select COALESCE(sum(building_area), 0) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.business_status = '招商') as available_area, - (select count(*) from TB_BUILDING where project_id = p.id and del_flag = '0') as total_buildings, - (select count(*) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_BUILDING where project_id = p.id and del_flag = '0') as total_buildings, + (select count(*) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.business_status = '招商') as available_buildings, - (select COALESCE(sum(building_area), 0) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(building_area), 0) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_area, - (select count(*) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.rental_status = '已租') as rented_buildings, - (select COALESCE(sum(building_area), 0) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select COALESCE(sum(building_area), 0) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_area, - (select count(*) from TB_BUILDING b - inner join TB_ROOM_BASE rb on b.id = rb.building_id - inner join TB_ROOM_BUSINESS rbs on rb.id = rbs.room_id + (select count(*) from TB_RES_BUILDING b + inner join TB_RES_ROOM rb on b.id = rb.building_id + inner join TB_RES_ROOM_BUSINESS rbs on rb.id = rbs.room_id where b.project_id = p.id and b.del_flag = '0' and rb.del_flag = '0' and rbs.rental_status = '待租') as waiting_buildings - from TB_PROJECT p + from TB_RES_PROJECT p where p.id = #{id} and p.del_flag = '0' + + \ No newline at end of file diff --git a/src/main/resources/mapper/room/RoomBusinessInfoMapper.xml b/src/main/resources/mapper/room/RoomBusinessInfoMapper.xml index 50a1ad6..0b60b87 100644 --- a/src/main/resources/mapper/room/RoomBusinessInfoMapper.xml +++ b/src/main/resources/mapper/room/RoomBusinessInfoMapper.xml @@ -32,15 +32,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" floor_price_unit, business_number, business_condition, create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag, remark - from TB_ROOM_BUSINESS_INFO + from TB_RES_ROOM_BUSINESS_INFO - where id = #{id} and del_flag = '0' - where room_id = #{roomId} and del_flag = '0' - - - - SELECT nextval('SEQ_ROOM_BUSINESS_INFO_1')::VARCHAR as id - - insert into TB_ROOM_BUSINESS_INFO - - id, - tenant_id, - room_id, - rental_status, - business_status, - available_date, - decoration_status, - price, - price_unit, - floor_price, - floor_price_unit, - business_number, - business_condition, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{roomId}, - #{rentalStatus}, - #{businessStatus}, - #{availableDate}, - #{decorationStatus}, - #{price}, - #{priceUnit}, - #{floorPrice}, - #{floorPriceUnit}, - #{businessNumber}, - #{businessCondition}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, + + + insert into TB_RES_ROOM_BUSINESS_INFO + ( + id, + room_id, + rental_status, + business_status, + available_date, + decoration_status, + price, + price_unit, + floor_price, + floor_price_unit, + business_number, + business_condition, + create_user_id, + last_mod_user_id, + del_flag, + remark, + create_time, + last_mod_time + ) + values + + ( + nextval('SEQ_ROOM_BUSINESS_INFO_1'), + #{item.roomId}, + #{item.rentalStatus}, + #{item.businessStatus}, + #{item.availableDate}, + #{item.decorationStatus}, + #{item.price}, + #{item.priceUnit}, + #{item.floorPrice}, + #{item.floorPriceUnit}, + #{item.businessNumber}, + #{item.businessCondition}, + #{item.createUserId}, + #{item.lastModUserId}, + #{item.delFlag}, + #{item.remark}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP - + ) + - update TB_ROOM_BUSINESS_INFO + update TB_RES_ROOM_BUSINESS_INFO rental_status = #{rentalStatus}, business_status = #{businessStatus}, @@ -136,11 +131,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where room_id = #{roomId} and del_flag = '0' - - update TB_ROOM_BUSINESS_INFO set del_flag = '1' where id = #{id} and del_flag = '0' + + update TB_RES_ROOM_BUSINESS_INFO set del_flag = '1' where id = #{id} and del_flag = '0' - - update TB_ROOM_BUSINESS_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' + + update TB_RES_ROOM_BUSINESS_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' \ No newline at end of file diff --git a/src/main/resources/mapper/room/RoomExtendInfoMapper.xml b/src/main/resources/mapper/room/RoomExtendInfoMapper.xml index a09246f..17defe8 100644 --- a/src/main/resources/mapper/room/RoomExtendInfoMapper.xml +++ b/src/main/resources/mapper/room/RoomExtendInfoMapper.xml @@ -32,15 +32,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" workstation_min, workstation_max, floor_plan_desc, tags, create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag, remark - from TB_ROOM_EXTEND_INFO + from TB_RES_ROOM_EXTEND_INFO - where id = #{id} and del_flag = '0' - where room_id = #{roomId} and del_flag = '0' - - - - SELECT nextval('SEQ_ROOM_EXTEND_INFO_1')::VARCHAR as id - - insert into TB_ROOM_EXTEND_INFO - - id, - tenant_id, - room_id, - room_record_number, - usage_rate, - office_layout, - window_orientation, - rent_free_period, - min_lease_term, - workstation_min, - workstation_max, - floor_plan_desc, - tags, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{roomId}, - #{roomRecordNumber}, - #{usageRate}, - #{officeLayout}, - #{windowOrientation}, - #{rentFreePeriod}, - #{minLeaseTerm}, - #{workstationMin}, - #{workstationMax}, - #{floorPlanDesc}, - #{tags}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, + + + insert into TB_RES_ROOM_EXTEND_INFO + ( + id, + room_id, + room_record_number, + usage_rate, + office_layout, + window_orientation, + rent_free_period, + min_lease_term, + workstation_min, + workstation_max, + floor_plan_desc, + tags, + create_user_id, + last_mod_user_id, + del_flag, + remark, + create_time, + last_mod_time + ) + values + + ( + nextval('SEQ_ROOM_EXTEND_INFO_1'), + #{item.roomId}, + #{item.roomRecordNumber}, + #{item.usageRate}, + #{item.officeLayout}, + #{item.windowOrientation}, + #{item.rentFreePeriod}, + #{item.minLeaseTerm}, + #{item.workstationMin}, + #{item.workstationMax}, + #{item.floorPlanDesc}, + #{item.tags}, + #{item.createUserId}, + #{item.lastModUserId}, + #{item.delFlag}, + #{item.remark}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP - + ) + - update TB_ROOM_EXTEND_INFO + update TB_RES_ROOM_EXTEND_INFO room_record_number = #{roomRecordNumber}, usage_rate = #{usageRate}, @@ -133,11 +128,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where room_id = #{roomId} and del_flag = '0' - - update TB_ROOM_EXTEND_INFO set del_flag = '1' where id = #{id} and del_flag = '0' + + update TB_RES_ROOM_EXTEND_INFO set del_flag = '1' where id = #{id} and del_flag = '0' - - update TB_ROOM_EXTEND_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' + + update TB_RES_ROOM_EXTEND_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' \ No newline at end of file diff --git a/src/main/resources/mapper/room/RoomImageMapper.xml b/src/main/resources/mapper/room/RoomImageMapper.xml index 50a670d..84d5dee 100644 --- a/src/main/resources/mapper/room/RoomImageMapper.xml +++ b/src/main/resources/mapper/room/RoomImageMapper.xml @@ -21,15 +21,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, tenant_id, room_id, image_url, image_type, sort_order, create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag - from TB_ROOM_IMAGE + from TB_RES_ROOM_IMAGE - where id = #{id} and del_flag = '0' - where room_id = #{roomId} and del_flag = '0' order by sort_order asc @@ -59,13 +56,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - SELECT nextval('SEQ_ROOM_IMAGE_1')::VARCHAR as id + + SELECT nextval('SEQ_ROOM_IMAGE_1') as id - insert into TB_ROOM_IMAGE + insert into TB_RES_ROOM_IMAGE id, - tenant_id, room_id, image_url, image_type, @@ -78,7 +74,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id}, - #{tenantId}, #{roomId}, #{imageUrl}, #{imageType}, @@ -92,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update TB_ROOM_IMAGE + update TB_RES_ROOM_IMAGE image_url = #{imageUrl}, image_type = #{imageType}, @@ -103,29 +98,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = '0' - - update TB_ROOM_IMAGE set del_flag = '1' where id = #{id} and del_flag = '0' + + update TB_RES_ROOM_IMAGE set del_flag = '1' where id = #{id} and del_flag = '0' - - update TB_ROOM_IMAGE set del_flag = '1' where room_id = #{roomId} and del_flag = '0' + + update TB_RES_ROOM_IMAGE set del_flag = '1' where room_id = #{roomId} and del_flag = '0' - update TB_ROOM_IMAGE set del_flag = '1' + update TB_RES_ROOM_IMAGE set del_flag = '1' where room_id = #{roomId} and image_type = #{imageType} and del_flag = '0' - - update TB_ROOM_IMAGE set del_flag = '1' where id in + + update TB_RES_ROOM_IMAGE set del_flag = '1' where id in #{id} and del_flag = '0' - - update TB_ROOM_IMAGE set del_flag = '1' where room_id in + + update TB_RES_ROOM_IMAGE set del_flag = '1' where room_id in #{roomId} diff --git a/src/main/resources/mapper/room/RoomMapper.xml b/src/main/resources/mapper/room/RoomMapper.xml index df8ba3e..7fff7d1 100644 --- a/src/main/resources/mapper/room/RoomMapper.xml +++ b/src/main/resources/mapper/room/RoomMapper.xml @@ -46,23 +46,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select r.id, r.tenant_id, r.project_id, r.building_id, r.floor_id, r.room_number, + SELECT + r.id, r.tenant_id, r.project_id, r.building_id, r.floor_id, r.room_number, r.room_digital_number, r.room_manage_number, r.building_area, r.rental_area, r.billing_area, r.inner_area, r.is_virtual, r.delivery_time, r.owner_id, r.property_nature, r.height, r.load_value, r.room_status, r.room_type, r.create_time, r.last_mod_time, r.create_user_id, r.last_mod_user_id, - r.del_flag, r.remark, b.project_name, c.building_name, d.floor_name,rb.price,rb.price_unit, - rb.rental_status,rb.available_date,rb.business_status,rb.decoration_status - from TB_ROOM r, TB_PROJECT b,TB_BUILDING c,TB_FLOOR d,TB_ROOM_BUSINESS_INFO rb, TB_ROOM_EXTEND_INFO re - where r.project_id=b.id and r.building_id=c.id and r.floor_id=d.id - and r.id = rb.room_id and r.id=re.room_id + r.del_flag, r.remark, b.project_name, c.building_name, d.floor_name, + rb.price, rb.price_unit, rb.rental_status, rb.available_date, rb.business_status, + rb.decoration_status,re.tags + FROM + TB_RES_ROOM r + LEFT JOIN TB_RES_PROJECT b ON r.project_id = b.id + LEFT JOIN TB_RES_BUILDING c ON r.building_id = c.id + LEFT JOIN TB_RES_FLOOR d ON r.floor_id = d.id + LEFT JOIN TB_RES_ROOM_BUSINESS_INFO rb ON r.id = rb.room_id + LEFT JOIN TB_RES_ROOM_EXTEND_INFO re ON r.id = re.room_id + WHERE r.del_flag = '0' - - - AND r.tenant_id = #{tenantId} - AND r.project_id = #{projectId} @@ -73,10 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND r.floor_id = #{floorId} - AND r.room_number like concat('%', #{roomNumber}, '%') - - - AND r.room_digital_number = #{roomDigitalNumber} + AND r.room_number LIKE CONCAT('%', #{roomNumber}, '%') AND r.is_virtual = #{isVirtual} @@ -87,83 +89,82 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND r.room_type = #{roomType} - + AND rb.business_status = #{businessStatus} - AND r.del_flag = '0' - order by r.room_digital_number asc + + AND re.tags LIKE CONCAT('%,', #{tags}, ',%') + + ORDER BY r.room_digital_number ASC - - and r.id = #{id} and r.del_flag = '0' + and r.id = #{id} - - - - SELECT nextval('SEQ_ROOM_1')::VARCHAR as id - - insert into TB_ROOM - - id, - tenant_id, - project_id, - building_id, - floor_id, - room_number, - room_digital_number, - room_manage_number, - building_area, - rental_area, - billing_area, - inner_area, - is_virtual, - delivery_time, - owner_id, - property_nature, - height, - load_value, - room_status, - room_type, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{projectId}, - #{buildingId}, - #{floorId}, - #{roomNumber}, - #{roomDigitalNumber}, - #{roomManageNumber}, - #{buildingArea}, - #{rentalArea}, - #{billingArea}, - #{innerArea}, - #{isVirtual}, - #{deliveryTime}, - #{ownerId}, - #{propertyNature}, - #{height}, - #{loadValue}, - #{roomStatus}, - #{roomType}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, + + insert into TB_RES_ROOM + ( + id, + project_id, + building_id, + floor_id, + room_number, + room_digital_number, + room_manage_number, + building_area, + rental_area, + billing_area, + inner_area, + is_virtual, + delivery_time, + owner_id, + property_nature, + height, + load_value, + room_status, + room_type, + create_user_id, + last_mod_user_id, + del_flag, + remark, + create_time, + last_mod_time + ) + values + + ( + nextval('SEQ_ROOM_1'), + #{item.projectId}, + #{item.buildingId}, + #{item.floorId}, + #{item.roomNumber}, + #{item.roomDigitalNumber}, + #{item.roomManageNumber}, + #{item.buildingArea}, + #{item.rentalArea}, + #{item.billingArea}, + #{item.innerArea}, + #{item.isVirtual}, + #{item.deliveryTime}, + #{item.ownerId}, + #{item.propertyNature}, + #{item.height}, + #{item.loadValue}, + #{item.roomStatus}, + #{item.roomType}, + #{item.createUserId}, + #{item.lastModUserId}, + #{item.delFlag}, + #{item.remark}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP - + ) + - update TB_ROOM + update TB_RES_ROOM room_number = #{roomNumber}, room_digital_number = #{roomDigitalNumber}, @@ -187,36 +188,59 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = '0' - - update TB_ROOM set del_flag = '1' where id = #{id} and del_flag = '0' + + update TB_RES_ROOM set del_flag = '1' where id = #{id} and del_flag = '0' - - update TB_ROOM set del_flag = '1' where id in + + update TB_RES_ROOM set del_flag = '1' where id in #{id} - - + + + + + + \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml deleted file mode 100644 index 127d20f..0000000 --- a/target/classes/application.yml +++ /dev/null @@ -1,89 +0,0 @@ -server: - port: 8082 - servlet: - context-path: /api - -spring: - application: - name: room-service - - # 数据库配置 - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driver-class-name: org.postgresql.Driver - url: jdbc:postgresql://1.14.121.39:5432/edendb?currentSchema=public&charSet=UTF-8 - username: edenuser - password: edenpswd - druid: - initial-size: 5 - min-idle: 5 - max-active: 20 - max-wait: 60000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 300000 - validation-query: SELECT 1 - test-while-idle: true - test-on-borrow: false - test-on-return: false - pool-prepared-statements: true - max-pool-prepared-statement-per-connection-size: 20 - - # 启用Swagger - mvc: - pathmatch: - matching-strategy: ant_path_matcher - - # Redis配置 - redis: - host: 1.14.121.39 - port: 6379 - password: edenpswd - database: 0 - timeout: 10000 - lettuce: - pool: - max-active: 8 - max-wait: -1 - max-idle: 8 - min-idle: 0 - -# Feign客户端配置 -feign: - client: - config: - default: - connectTimeout: 5000 # 连接超时时间 - readTimeout: 5000 # 读取超时时间 - hystrix: - enabled: true # 启用熔断器 - -# 服务注册与发现配置 -eureka: - client: - register-with-eureka: false - fetch-registry: false - service-url: - defaultZone: http://localhost:8761/eureka/ - instance: - prefer-ip-address: true - -# MyBatis配置 -mybatis: - mapper-locations: classpath:mapper/**/*.xml - type-aliases-package: com.eden.room.domain - configuration: - map-underscore-to-camel-case: true - cache-enabled: true - -# PageHelper分页插件 -pagehelper: - helper-dialect: postgresql - reasonable: true - support-methods-arguments: true - params: count=countSql - -# 日志配置 -logging: - level: - com.eden.room: debug - org.springframework: warn \ No newline at end of file diff --git a/target/classes/com/eden/common/core/controller/BaseController$1.class b/target/classes/com/eden/common/core/controller/BaseController$1.class deleted file mode 100644 index e678bee3d85078ee4230716bb2f2e374434e7586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmb7D+iuf95Ix&mZ43=*%e^#(0BIt1Ti~szQd^3I6rfT{cwQ$%>f(5#^@hS5zr+I< z@xTZ0QHWV5DinB$CC_cooSB`mfBgLR9l%4hJQQ%^F@_9#m0 z8v+~co*qi-QzF?IYNrgbNUYIuOh)dil=e>DEzW%uC6V10c+i+Nd95pu-_v~(m~Tf3 zJs%H4GKVURIZ|!wo{GE5M9!ZE^R7{W;AxVO*^5=061(?jEL`8@zAMkj9_jvpGHOVc z4D)y?*`4%|-dTaAM*CR3RWeq|Kz6K&lEGHiug#9D|DFo?9X&QZdJ?(*7tT&<-LdgK z_mf_%Q)Zi#FX2{z+o%U9p&Y=&of7T_xQ9l7H8go6vn`~)DNxHA4@o7dJTQ7h#=hV0 zM^>B8cr?<6Z?`@hD__kmc{fV>WCUcRt<6BDBR7@TZhj})ypbmq%8()Q6@`zLRTFqN zwOqr^ZsqT)V;jY(WGuaO7H?prOiC^wQ2*ZsCS!MbSsL%L%uDO4c+44RcJ?AXrk>^M zsPU&>L1MBDYJ(~EHT-Xd6B_6F7Fz@ Uj4Q13xQc6-XUk_;fi*wB001WZBme*a diff --git a/target/classes/com/eden/common/core/controller/BaseController.class b/target/classes/com/eden/common/core/controller/BaseController.class deleted file mode 100644 index 4a40e6916bcc9422d78537cd380dbb572394d134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5808 zcmb7H{dW{+6@Dh!-AN`(5(2?Sq{ISk!cqn(r6ma|B+wGO5J(^tkjm_4vKiRSgxOg> zYPD+ptX8e{gVx$=ZHwQQb38QKQ;$FO2mcQB_%Ha2`rLPBcZVdq2^=yX@7(u3&wcKF z-}mm{|NED}0@#b&1~$RhQPL3@Xhzw`13`&SKo4PTebH*|c{z&d=(z)SeHT)xwSm*xIlxqMG9-`iWZRX!WL>q)qU9D$4lr6;w~581^PH_rbl<*Gwo8GAhm`Skvt;{Mi*{hn2En{} zl$XhHU?Mc62R*{jur3BL<_31b_W8Y~f}ml|WMJhlAG79F23Zg~eyrmsI&QMWH1zi^ z<6xN~$w690IqowLBR4d3$EQZYiJ9(IEZPdT5@pPt@igp-?8|{uG_y`A80=SNRB(dX za?TXWvvzTw#dCs>GKY~QiZo;zLrS%&8aCWrpEu?!HQK$%cIecp!C|^;opcJW6_kA@ zX=3QqKrG7f+$B373=S`57*1V@W(8nP6z+swDi=wbRj#sMV;y=@>&ExEf}+I}PN?K9 zRI7JoZMLmoQsH&w-h-_}acEVDB6dsQRb=Sx8(S&vgzsJB>eI$_yryBW4&TOZD$(}# zom&Ym6QJw{iGw!%euS!kDam)r}1e#prO6CC$q<(?XG+4 zWw!1XN3ZMnX&P_fXFA?Y<1PGL!@+tjjkHDf^}vh{dh_n%{7}HYAXg6TQX0R&+dP}o z_$A)qF`dS{aCuOt@g8oa@hkkAfz|qnBiHlxy!0(;{06_(@w+rk{639CIH=)%39A0d zDk1!Vn{67OgDsbfJl_BH>dXK5=#78AbNkM8Rs5xgtcFMWYC8!HSJAvmQ?tEZ za+mh28rJ)Efo%($?s6&c=8jA|fvm(zKcKon)sGK`<(#uEw`891JvKkVjnG_my+id- z7nfAj8cN5_N;~QmRj<6B4N3H+R%P7rcp}`R$&BaES!A<+na%2aEW+wBPzyTRdASld^M|7R>w?C& z2YB7WH(~KYwV-fJYhFjXhsNz<-;u~|v74{HeD4}&y2$hw{oFQllo?5wVOfpGu}PeP4O5`q=kVCoV%B(9cuPIhTDw^`r1eQ z$7#6*iT@EKrDMO20Ud+t|B#L$;6Lad(Q$w$D9H?Ss$}OT@6EgqXFf(-hH)j{hMu?u zU7jgLb_d5LW{$UX8vGzHqLCPc&msgO0lMfNWN;r2lKdeYz=#U2H$b(q2LV<1FU z^qUlY1F3ZLsMe7f4b$D)L^IGp()+bEjt(&{d<+uHcTM4P(^m z=~!KLRw;Cn-fnsl-I}3wR0`~nLL0#-M@6D>-UY4oL##WS`2g$RR}*S0;AG5wYt?-# z4&w;jKS}Fwb;!t59El3~Fh3mSUlTbd@ENiU@rt}lO4=)U$962By9OGrmuJw5voUGg ztHA9Ma4Tyki(~XJ6v9;{--JT=?KrWy!rbpac0p{45+3%IXF zC)@=t#x#gaJb_7i5Q%j(8HaV8svu5qEDZm&LY!KH_*z56LLJ02TpG(Go~a_9Rfy*z zM3?p=_*%wjh}Q8S6S1w%jp@C%s`py1Knao#a2}tH^bS)lBNsRl3D8y*fR!x*oUc-P zmLAyr&{k@0C*Qe z$g4FGRYjiDL)X*FwH>*Bns4Gd$yFDt%&-(*jCoF0Jtvhm@#P>R7w9O$s!1`UunG~@ z6p!PVn}wPbEIWrnAkN$pzfM81TJVEb-0Aix-qfh$hUd>lO6!ZV;-OcmDf7-40sl diff --git a/target/classes/com/eden/common/core/domain/AjaxResult.class b/target/classes/com/eden/common/core/domain/AjaxResult.class deleted file mode 100644 index b2ca0ff6fea227f40571b332a67de1346dcb24ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2227 zcmbtUOK%%h6#lMXv4=_5^@$zzgIpl#B$#%WVS(jXiHtkA?BoJsAOYCMkE zvO`EnNUV^M*ub7jNQqj(k_EqmR{Q|gz<2MA-AU?*w#3SPp7WjWeD|FB{qOs~0=S5G zGbrFK4VTh5oxx>Xk^6--&ZaSu#$pCBT$RI;9ImBtUCw1Wyse=kaI9l_w%OXWypHWU zA5@nG#5)4{itBWI)A2XWR@X{0l>8F{>B{=@jZZepD+0yU9dp+-TBg%9YQASX%>@B% zt+on@D5{Q>3Hw6+Ew_ynsR&B?+-ED7K-iEo=;z@DUt&@vMM%;&o z34hz}2$WXqZriXLmSb?ycID(*M#F8Jwqulc%+KDpI^C8}4kM-Nlhjn;x(Y0+WYX?5 znf;pOZ@Z26OwVjvJ~d#RLCz7l^{pMN?k^~~hUuFJbqH@MV9ht{ch=0iDhs}khGh*m zC{U+cuUj2P(o2(1pVMM#0Eg#v4yUdEWf#M2d^hMPI8 z;8qS*u#<9+zWM5pU%q?v#n%tN{62?i7;>1CnCJSp4}ZA#=g&XpFfVWCF()vrdMla> ztMzcd9XJX~uji?{vg-I&)1u7Uu59D=PgQSBMnnlMs6hN~*B7`Hedw^5Bj&y0fAR>Y z`AI488Fn@GGrqvDOyVuW$V={FSPF?bM!KNp7omd+A({D|-~zags^wV583 zIAnTbNO7E|=M1ULl8V7(=7@elQPKm9xQpNN>hJNCSP~1}L{ED)j4YQo*EMG}0ruBVfq;V`_ zT#3Aqrf3Dxlk6&*%BV(&G#4VJbTI&EEdrEMnf8IC@DfM@Ncz{1KLz-RDscmn^8=*G?IV9!8k0QO$svye3B7Qb!kzz0h+l&cs2nDg zmkAAvzXqnX8%ZhOPbq(NN*6-(19FW`i2-tb9>LD4f}=E{aDBOYJrHB($|AUkH`M&* EzgS75YybcN diff --git a/target/classes/com/eden/common/core/page/TableDataInfo.class b/target/classes/com/eden/common/core/page/TableDataInfo.class deleted file mode 100644 index 3718d42938aab74b3b556ef8a7eb4a277b8e0cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1714 zcma)-+fEZv6o&uZ!xUH;y}d)K6U`Ph1E znXSO7n`NgNtP1p3oSJI|E#DRx3SF-iinNGTy+dA#l0dZ4tO;baS>1ALW+m_)w?->t z&2gQ8h|&D)KAkp{(_qX!${c9ks~R!5F!R@4)BKFIfhDgFQw zpz?@g6#YnYeTi>7f)u~ZuhxX&`4zR!@SI3$O)AdPhs+$Wakt1>aE=$gLwr?cqsl14 zaSSnxa|FXHBkrzqCj;C-R0XJWj`A!m0~F>?5h;v+JVjK-iV_mYFbZ&+<1~@)P^%dg zb5i@YV=@9J6u4Xs5IKTL`svK_F2lT2Jn4^c1Dc>+<4s=NVgg-}Nk?7LH$*?vD559~ zby(?nCg9s5M1^GdGtpcYi;e!Jvimv-zFF-dz~$s%djFQAprwX5V19R(g>p$AhutmLzv hOpE+G>2&v;g7GlZ7MY%3z$AYOsB-p(nMn7 zgCF2W8P`733zQ*Yk~#Za)?RDh{{H*@2f#B}IZWVQ7HQm<<$)~A8PqbUE0nrAaGmy{ z4!W-IecIhtP;V6qTfWx~9WOj|+C7~nk9*;sB&XEp2I!A3o z<~JCk!$5iNU#7xix2v$a*YG>GZfeiwrsI3I{?^c6LndP%=-|X{=+}b_hESFAKfP*{$E#yi)}A_vuohpt}@8t2O%Qa;<(5#TF0~)v05xE1u7c}&aE7h)ym+g_XI*;p^%3~76JW8_UQBbh1UVMd_(a3!0d7;}Gbp{KZ z$q7za3Ny&y8WgfTC6MD!C9|itv6QD33`62N&C?pKqD@=Bpne!wnX9-1v!tCvg}ZzN zLKQc75`vpV2*D1mU~@uXt(+n;VwpseFAHQ@WLQgvsT!gCOrj*=DcmA5t$2v&XZrM? zX@#UXq_SL-tq3TnTtX-liO^^ad`a{(`uLil!^;O%nl1zD!YouyDJeP2l9S5Eh`GV5xWZ7UN zHjTU$`45vWn;8)KGI5f$>?Hl9NxzUJAPOWZ!EM}Ow9;3bHX4kdNPOo-f}Y^4$>l4f fHa--0F(2cc8h74~bzX>7PL4ajiFIBy@h$xa58L&g diff --git a/target/classes/com/eden/common/utils/DateUtils.class b/target/classes/com/eden/common/utils/DateUtils.class deleted file mode 100644 index f4159ade8cd651f42b0af20287b74daeee353021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1490 zcma)6U2hXd6g`vJ-gwy<#|bH)36L+xG;B*k8bV4*9fw4+10p68eW^C~G+FB1wbo+< zKZR%hK>9)uNIbSue^k{oV^hZs0xa#!+&lNoIdktF|NYOq4*-_1ZDRzkjqmWi9&YJj z(ZZ62+e28kk;D&rSQ)|{3#)p0*TR~OVGT;*M?KuL@RNYEv0g3x`e?mcEj`{5$d#XY z&po%{g$M4giv955uE20H3R}tx)t=XAOM$G$RJSW9aH%yv^wm9q!TkK5K%yAc8F;qr zhjOPK?8~_7?KkMjm7|*1*z;mv+g)cu9r`VSYvo!LxUw!omx~|@-L~=@EqB9H@`+wi zO1kOAEvY>M)A`e4=Q}P9G&n*8LoasRO1@C;BYi^YMNKx9AB7CC>O78@`Q5<-xUqp|wE1^Gy3C+RNPRq;mPOJI>V=@O)729zv z!!E^G{*y=M`r|radpBywHM!~QWM{NQlewF^st(5SjfMLT)^WqZ&nPbFWkQ@u1D`HMiRA;SZ8Xv}Sa zbD!!RHg3}N7sESM!8JaV5k9#ATtE(^5EwI-Mf=|H$MS7f0050J&tu(G+f;1ZZ8iQN`D}_HXTzG?lHyC_{q&VU_k+olAGU#Szh2%;GlAV2=M5dLE=;kip`31sSfgxK7^`BW4&ehh^lAu5qH5`Ay=g zQMke+j1qO7UmA&w7_V4_P18*B(Hbv{M1= e#aVp~VbZB<4wNbE+s^>9{|7uFY=OW5-24}C(kDa! diff --git a/target/classes/com/eden/common/utils/SecurityUtils.class b/target/classes/com/eden/common/utils/SecurityUtils.class deleted file mode 100644 index db492cf8a85883ec94aa74196ece0ff67e96177d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1575 zcmbu8Sx*yD7>3_NOQ#G4YQ_0VKlct4BYQ zItDNph7rb47{g(VXc*NnCJ>smY)efG1mcNhf#7U0Ck2{PmMx!`3mNGwnwdN;u~ac@ z=9f*!a`zQuP_0`ff$mhcSTJNx+6EVeqHUCwl`k1-nJqh(+FNpW69V;XQY}i`wAFl0 zpgEpMZJ67pkvHu%Bdr|EUZa!d$TwwKQUbl+=Ut;Do$b6-#=25l#vF&VZ+PiD@}IE! zb!zOiGj&t(_)J+z(mqNRoi(Ghgi(H$;zjem)v8S8g#P~K_i+p z+>YQ5?h4HOFLMOrxW^K#4EPlon18I{egqSk)G!snG#&^v=H#kb&a2mcJ{i->fJ;wj z##GuXDOnKEeWM>oXBDLvh#nRCMP@^0S>4HMBdVl-)-TRnF`ttTyN8KAQ5b(uKG0L66S#YlH`vCEtiyB+5Z}?Gp@nFz)u7d#hNl0C)=HT+qO}vD ygTkFe>mpkG479d$(Auj(tFH>pAleYohKV*pv{8bM5pDbow2r@`35MpDz3V5J#dvi9 diff --git a/target/classes/com/eden/room/RoomApplication.class b/target/classes/com/eden/room/RoomApplication.class deleted file mode 100644 index 508134dc456eaf717300894765693a7d6fcca487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1209 zcmaJ=T~8D-6g>r&g>?m7J`@!YKVj9aCO(*8NB|{1EJ|2{4?J~e%Tkyq!f@%<3f5_V(U;?&_JmF5CS{Huoh*Fyhu1y8krb3X!FibZku9{vZ!)TCaKs;ZB&XWhD<8Byxfrl~d*Iuf3{z{Z2s>o1--=Y$qj84$~fEIQE1 zF!WzFq%oGoIPz)S&f*U4G7KMV{y5m(K79Z7aQn^S=e@(do&D_(`&;i0Hn;b;cG4(h z!Euj-aH5^(kVef)AT ziWYj`?rQ;a?WZwA7N?ofoXUR%`I>RWaJtY+as5+f!SW) diff --git a/target/classes/com/eden/room/common/ContextUser.class b/target/classes/com/eden/room/common/ContextUser.class deleted file mode 100644 index 72e92a1c0a7bd73b051827b0d400a7854d2de7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2806 zcma)8ZF5sq5PnW_-;&<6p;AhqV1a^d(h`v(kWxS@m1@LTSr%lu zn#47HD$8|Q7Lypnl8xmgZ8v23Of;X1bW@gFa{R)^?IilJP9%!CeQQoK|d< z6r8}Xd9`3}RiS_Wp7))XuX?q${9@3k)YhgHtmcN_5UV3X&0F^sde;14Y3thV(Xnn9 zjhXr?ef#DsHGiSGzT!8Qyp<|7{qyybSH0miDsqmLMo_M7C>)+I)z|a>s$a`D>Xdj| zuh;T3^;+OR2$qR}ka{-SpC1@~`Sr0I3hAOBlxod(4>>_yx2!^PvEFQy{Mm{$Te_`vj!S#H*o%ydeX{IF#>T1( zA6XY)W5UI8gD1COu87t0T(AlIw8_KvRuN9!eHkxU20aUtHSv}8>Z0~ z_0ulaP-d#*!#cldc7T>8L!Q)_i;r=DIc-PQ^;9_4740$$6TNk%uHTNcwb@{7CerKO zzwg&r)roE+^wLyC_@{7)-P$7>nd+ggsg8EX6z{}zl$ega0+X=5 zg=s%AB`}6884*k;X;R$H>{A$>QBS~NzYo*gDnTwRK}1`Qh6Khj5#=`&MgokdFeN<| z)oB zJSL!cTU~S#w>8kM`FMy^c%K{$-~mpvvvW!~OUb}Tm_>n-i6SdDMae>y zG0su4(cl+!nv%mQ1#)n0=U?>NxbPf%Y+U58qn=~078C7aYb;M8%~$v#je7Mg5y`Zh z!lWdkhrPWTdeF_SL`=e$M52y8&4^0Az+Bn=>NrDK478k{I%iCWg&0atm01QSoqGg( zViUc0Mei02F=UL$;z)6{DOE5-6YCOQax!LU8tP8LZ-KE0hdUIEXn)W=Q7uuwGDMkW8gWAe4GR_w92`6az3@4lN&Jrz&!@+T6B1 zJGFEsO#Y40+~E$PDsngZJNj-uLArm}Ci;a!ZvAg**%f)WmQx}RaM{G3&N*x!rOAjI KMH-~U^Zx@qRM*%5 diff --git a/target/classes/com/eden/room/common/Result.class b/target/classes/com/eden/room/common/Result.class deleted file mode 100644 index 79cd0ebba63dfcd3929a94a942af3d67c3a67e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3601 zcma)8TW=dx5S|m?9oq?R8fZ&eQ(EFUZQYa>XquXflR}Hr1UpG-Ku8;Bm2R=U;7cX? z01^*SRRSvUio^@N@j#)W5(s_(zk^o%3dA?(ob|3RacwDkE_>#iZ@!r`o4^12{VyUq zOYcW1L6;*Gpey`%n;(S`E%SIaOe;~0tNeH;OvNyjqO?ZqVcH1MwGh24XuM(8Eu*qw z)*F^xTfe+0NL&#V&)c;|)2KB!j7rN4z!m?5pipT&pI<7K1SJbMjax>xV$^oBrDol# z?OYHPSSl7*ih}%Qd)vh6s@Z55JDB;mji%9Qw6b;6EH_~kDOo!;quHwCoNsLnJHZ93 zW;JtIre`)_oR?^01*>LWZB@6-`kJv-!RchdE`z**5U|#p{^kvlwyRll+pJ~l zHfC5=?OL{IHd+<-I@xLa$w!X;(Lsg_;Fp8-bhK^HaCgk6y7Ut$z&?#8)Nl^$?^6a``%yqFJMAZmSf^Nn7#*e~F?xn3V|0KY2kDTYLj(F;jP}!{pxEPYzxwCT?;hW|_vr5Tj55uS z8T9(O_RB{<-2eB%k0H7qqfL4bed~1B4_j^`R0x75Z|1@ zJ%^7}f&`6G5OIyuQ;46EZEJ1=0xkkhb9Vg4aTAI33;%*^i6 zNan;Y`CRZMUpC98DR!L3UxY(uAry}pz@#w0 z0|Rz6(a9roa+mxrnMp`Y0P`cV2pl8;yAQE2p^UO`6Pjofn$U!R&IJdLOpPh>j-saC zP2nArjQiRo4`QjZk%7xuIsvm3_Kr(;IQj<#uKz;8WauGojr-UB7eid#0_Dpj!jZbDrPd+$Rl4eNB0C`az4ox z6SlpTbgM(J?yfMZZvg(Qqj?SbIz|Q!Fk*LM-uA!+^mTKo^NwmV7idA>l~s(aeo!_T z_d2V_^(ln=%p*)tW8%EN!Y(?$b2}WiT6vhY2`BWX2^@HQd_^%Y?lzaPP9K;miODJIeM85SuR&9dY diff --git a/target/classes/com/eden/room/common/UserContextHolder.class b/target/classes/com/eden/room/common/UserContextHolder.class deleted file mode 100644 index 8cf5c1a51141a50a5ff23ff14006280ed33c9c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1556 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 Kz%i~5ApIZquK$Yw diff --git a/target/classes/com/eden/room/common/enums/ImageTypeEnum.class b/target/classes/com/eden/room/common/enums/ImageTypeEnum.class deleted file mode 100644 index 585d5480e89049ec47b59f6da86cff1ce1334abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1985 zcmb7EO>^615Pn`uwq;jNY^6!-;IySRsqK)Ogrq>?ntYIyP&*EBYG`4mqd3Aj55PIUk@1Wr?a4PIdV&XJDG@6m#-PL|Q&#v_6v&Xvt zCh%bZGBQD2Le`H{e!LyT0A|=Y%hDW6^FeyN!;gg^7IB%ScNLsau%zHU)~>KyPC-;b zUcoYJ1wU2{>D;%_VR*2Dp#)8(#D2ir5kmUNUPPYv|+Vt&Gb@DuNZ5acZ>y6 zrzvtVS17FBSjo*U3wZD9)wUs^kIYD(PaYVOkaPlx`cF0{(buHg|QQC@}KT zQR?{Y)J=iWMDj?1@_c=RTI$W2ma*Kfts9LseZ5K+zn!u0i9j}SxZmVan$vRivR*Ce z4U<#5`DIJ5QJHYwXx*%Dtmq9=TSkK*_$o&03X^d>kvv>kKyKYM*)3yQW-BW&)uq3s z!-0n_$r24H&V!3P&4e7K-qx^~iYj7wNyP}(R1C6o8fR1_ko4oKiV{9hF^;%^ z7!y$U?)|>^_?xHS?f(7MmmKq|iW4|VFUN`ey?Z-PzyF$Es)(|&XaB2V(DXf(t96SY z9Nd$_`Yof}BAAn%bk0}xW^=lOH}}Kq+%Wf>9q5d6-Ikd4@O}f1nU>J_w5?ZZ8xPFR zZ6SGmW{mzJ1N4jX&O{j*KqrAAi^lBOC-DV@2bpxz6$F?v2)s<%SvvU&Zb59r^90fZ z(gfK7pZ(59{^t;f$M&C~lOuwfocaacCy?3SbHM)=AtXEaV>-PQtffX`JMgEX@*^mz(MRz8L{_IGjo1P4 z<0EcV$`B!LIO`dTWrm!rEHOupjaiey9Y_8zrnYhHTlk{#gD)g;|KGm^SCDMJ z2kgjU^ij8`iPp2kc7hmUgaeef550JuP%{T9cN->1?t%0S0Y4-mPX0qV-03jB048zK zZEen-PKbI_|A1e<4_W$=oSf>;c1(8Q3w6}+!gFkfern`SgXh!=-oTrbl2MmvB79x^ z74kJLBxyZb?+(Hb5wQ)Lto3QfZ9~8JH*%4-5Gh`hx6ogF2*LApHk6Q%9H6mk9s> diff --git a/target/classes/com/eden/room/common/enums/PriceUnitEnum.class b/target/classes/com/eden/room/common/enums/PriceUnitEnum.class deleted file mode 100644 index 6ccf8d85e4f41fb4a6602faf3ee46471a7ada6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2475 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 diff --git a/target/classes/com/eden/room/common/enums/RoomStatusEnum.class b/target/classes/com/eden/room/common/enums/RoomStatusEnum.class deleted file mode 100644 index 9235a192c2cb82acb077dc9a5794e2698eb491a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2054 zcmb7FS##S|6#lLy%d#V9Q5sXHanqy$ytFY{%95=~+!RcmCd7#$ZCMmsq-q_Rdg)Bx z3IqHFhF4zlQihVylws-gi3ffM8HRtrQ{fy*Oq|9K#52;p=jg28ckcD?&whFWU>qL> zA!9Ctd1L}O8^EOyda=OD%e;G&cW;I0mF3slAzVR@cZ(`csko|QiKS&Wdq+h~#fpkN zORFkQt5{P}VCmfe-V;!k*XDECj6f<^tZb#tl4+-_721)sRk72i-Po$7S4fku8}&wQ zf#gYY%jA~w3zq}}%PZN!-0FgW|E^JPm;!q4mT}iemkoO}ov&9ddz0*?+vYto9xBY` z))w*t=dK?wofEqzFdR=D&r{A+N>o%w&a%y`jjau{x@v5cNfU5FE`2O;F@Ch-#IefL zbCse|E*MpdV|xi?+t{K!or`AuW~H=jR7tFxRcb=nH0xIwj}!64(bNKR{ielcQQksX%nqgD)i+RSz3owss4gXc8Ip~ z_dG$VIU^zvrdcW8UNk=W4{NJNCRRzHr$v&)H34<1SoXS=;#~H0Q)-^Msbdf_LjxDe zR~pr#dD&vFyARLrFb}APK|Wk(HLQaQNc`{V*AT~b4Ffo%;T7D_(9gReyr|(kh68wC z!w2|K!)r(gh!Ns(|BDCvzuaf*5e=u%N9s{Wz5CZ!-)e|CnlaM+x&7(>cVB8a&6@Uu zW5fW^0V|d(Hg$7&YL+%`nZ-JFe4!cIOxdW_CYvzyPGa-Cc}F?Y?B|(fnS#!P0$ep! zXx?cUWtz=HJbEQ0uFa0nz0ymUm@*sXMgdx>J!hq+=!?#9IV%AOboMe0B&!HAh7fp( zq(NHw7utc?gYPM%ha}OA(pz!9DP$i<0zSunoL2S->2mT%_@6>%d*31ZBxy9)3Mr?C zbENUp&3B(e6L<9H`cB2EYQ|F99(wl}iXx|R$8G->w zLY(}YVtDLue?d%O(kpG=V<$|tX}=*LZ$p+Ikdd3+osNm7{=!W;{P4BS(!URx6Y(5c z#T2F~BzJv>7~$XI&yd&ku%x%^9goqui!Mi@%X+td!cp`%iilr-K|kpzqROx2BkiCo pzb@~fC%^9BK{US$!L+-B>(U-1y7}(uz!;_TdECw5BH8&c`!C|Rqu~Gm diff --git a/target/classes/com/eden/room/common/enums/RoomTypeEnum.class b/target/classes/com/eden/room/common/enums/RoomTypeEnum.class deleted file mode 100644 index 521d1732c257258b6ef6b4d08ffd25772cd5fe85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2441 zcmb7E-*XdH6#h2ZB)93dqzkPSC_id}B&EduqF738nx+s*8|>|j#mE#UqsKji9?`$fXwWkd%m1|?svX(?*8%k zmxlnlaHR?=j<|6Y$6V-h;cYi|;~fT%^Xgq*nQnSb@+;}a6f9ny5C{lN3!G#x#bKue z+67Jvq}iJh=n%*VWZ63-&?#_MAjjUUK$k#XpupZafo_5K1kSTJC$LB0eSr_y`%s`q z;3I*L+55zW3ksaE;o(RqtiTsdW@iG{l$8nOva}*^CYuRZnZnF$V2qIX+!-rO-aZ9l zaNLNDh7Ci3%ZSIuf(IypYd9F9bwWYy$apj!IUWwhMq?w9kb~dP(2nl zB15!{1fvQZvG~F87};}Xx?m~Lqo>SsW*}{5rUOPkmjarV>J9OZAB2u8=lbf*94 z3vhMH%(Du1d3`UkPYq?Kh|rp7Dr1cnW+ts%+?-4k;*tqtClu`Wu4MZnGV0N6(o9d7 zxfEwEr&lxP44vW`vGOOgQ-{qQxp^x`1vsaz{2^9io!7VWUvO{Fqsn)+#^rZZ-~kRzfyS2<<%l!EwAl-lg3<=|Y| zQS&re3TlkJnLIsWp7~$r)GP(0rWDk#a)j>)jbUFhU9Q#cWzzd94(3tqd+s^ur!jLI z*+MR94X3!vb(JH(n}<@vKEBg^8a~B5)%~2;MMDsuY3RkP8X~x;VK1-tqhG@?4!Ceh z!)1J~;V=djDDBk0<*VN;U%JK7uWJb46@oh${_^tD{TmwECDKXA(&F{y`R_G!NTiEn zzL@{>%C8zaCDP5vcQ^i8yr$8|iSz7XAFpfZmPilhd2ns{2ja0uB70@b!qVbb z8hRM1eR3sPRJyFmbT&g8Jw1o9$x~J`Pdav2wkwo2XJ;$>Qohxd6I}kPG*s>@hef!p zo+kuKFfp{w7R)qF`%|+~rr2r9?ho{A3c^o(> zYqIfd!7eu+BkQ2ey1#YPJ-Gah>Rkwb+g&(+BDBOvCpCecREd`u`A`SH%(|8KvO=Y- zykd1e^pd-mo)LO%7$w%RRjUxsR?)Uf6;*s^C=E+6PnN47F{`4j z5BJ;qn>Kxmrq-s8UbRtOfZM-->aXE!RBvCjD>wgLQuqYB)Vo3M?7>>1wuM+X)7X2d z$E;feVK#s{QGSYYC^BE>$Uotd+^*rodk4M zU#qW^K)nPS9QsT8dI>a2V1rZNs8ic%OOpgPyYwykRtapAK(o+a)>|a7T>?8iPJO5D zm55IweveCU)ptpx%_ANV7kd$PMnWy3-bgr#XfzVeBASeZtB7qzLKLyxNO%bHks++j xxC4d9t#n~_kbbOT9SvJEiQh?sHH3O9d_7KJBhF(pu2Si?@*KU1wep73g0%_Nf_MhShE}OL;MhZ z0ZXd<06)sIXA?-OOhA*Wo|)e6bGm!Z?yuiJegb%m7bXTVZQ#C%7^ahWpx1{c(#Yst zR-2qQGX`c&m^x-oueO1C6Ma}PuxQ{BLt5PZ_B4C&-lx5B4F86IEX;+qhMO5v)R6#!4t}&QpI=vEJ$Q8qE zI#ZCUY6qW`@T(Q&)cBE9AMGPvvMW(cl-vlX4v*SUeLt1@-4 zadGZ@|+45YG5H>AI=UH9^wVf+$lF%0OD*`DK9?VZvAFNfrETzAv+ z#qEY#cWYYkgDvltlpfsCQR9!3m# zrF9<)$0HStwv(I%YnHZxUUSFQ??9Vtn}_?-C4nhk6#=~=Ej=`Emf>YPbhG}BBGKWZ5XfQUbNn(-wV^md^^6ua+p^X!c Ru785o7&Wf#)VcQ_@CT#0gnj@3 diff --git a/target/classes/com/eden/room/config/FeignConfig$FeignErrorDecoder.class b/target/classes/com/eden/room/config/FeignConfig$FeignErrorDecoder.class deleted file mode 100644 index cb6b78f683b60e6a3975cfaff160e37f0655dac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmah}OHWfl6#k|y+_n@bZ$w4JqNN2cB5&};%b-OK7!sD3+W{_?dz;%^qdQ|*X-HhK z5W_-uY!pZY6cXM0JLKWsweieth4KoEnK@_Xo9}#c&dL1zyZIeJGwyldN63o;geBB@ z;Y3*MGwm^4l zx@O&Cs0p48uN`G@^-@rV{D`LWhsl|7Zaz`QW3*EkF;pcss+gMa)0-|KhM~X?nkkgQ zH>m5}?2Rdj1Sd%Inc)M+NJzhbh+9)e^s!gek$h7iIkz5hH1;d_WVK@@JHwK~Vcpf>IyKaFd~G;*`<``ckdHAf+uIicl=!mJhdahq~fG z<#1BBv>CqtAcnGo!&D}El3Fa)Onb{4JFBmD-_P!?&F*Zz{q=Qj`_sGa#ihZ zhhFpvas9-y_hWH)>CMjK-1h5_+Y3v-=NI;tmj&=LswE6CG@aFR$E!#QIS}_~e448k zL-}cGU~mRSALgY1{|iZFPgshTr25nOAh}9B&h;om{Rv%=S@lEdpvt=~Belg)96Syr zM9E2vB&q7Gw^Nq<^e<3H!9jzn2l)M>`1Er)Xuk~Qw4Nhxi2e-+ttFxG8dzupj?fmI zV;gX-A#2r!SJ3RWK{7mO#Ch^dQ6v$;oCs&N(%Jn2q^C`DD(wc;ks|gcVdN@oe(lhkwtS0 z$!$dq+UO^2$9;6$lB-e*_9c(v3Ie2(R1x+nDZNIv3yzwA{S1$T0H7n0vY7J`&ERfIDReF5Q6wUU+?_xM@m+?| za%G3Xsu7AI?*~$B^*XykH~4Nyo}#asJlx?rFm~#+;{AX)uJ}#W@kC2VPb=CrmD~&3 zUXr|)?5hlgJ#!XcwcA4b;!uP(K4ln7whS}nik|?yKBAQPDQxy}PsTw<>;zFjiC3jm zF^>Z!Desc6blZ!%I*{!>%{$^Jr4LN@So|D&{1wz&6I>EkQHvjYB8oQ&pqru_E7D{B zRp!S-Un#~FC)7Je8#$X^R$D^98}iO>i961>- z{12M6d?ez1)%u2;qNx_r!r4|ms;M5BW)(8hFF)gloZb`Q1`ONG{{0&2>s;4()|p zw!Q7xw3lIOeWSkm#Bco2*w|X#YS_5v;yzXx7S76fg6`|xXQCO~Sfg(0|y&4xV+m9pEF!5pFRAhz32PM20BmoZ(s1_UfwPHgGE=rA9fvGlK~<# zso8RD)Lnduhc4d30^QJK>OdZ<1L66}pi(3G9&ge`pi(AjmX0hNBtp(t>Y&$U_&0mD zl%PKY54dcFA}aNf)#3AIJSPGh&$}WEfAf$1l&_Di45zK}Fx(F4ve|eDmGm1RD3uJk;GUHwR1MFAYj9{AHxx_gI^Y3>10KAQJWYL7+9YUGl zWwK1L^&3Whp*0(OJ`-!Dv9p9R%yYETKM3EC;gJhKq*~Bne!7+1~lHE&Xm|iUAtiNDC9W9P;|Bi`ok9Beg3JNKZz{grm zlXZpsSLqpJxJ+7ED3LLOYd8|&eX`%8XO50+QFn~YGx!7-?$6=@zQQIUEA-v?7YTD6 HAL9CdEn43C diff --git a/target/classes/com/eden/room/config/SwaggerConfig.class b/target/classes/com/eden/room/config/SwaggerConfig.class deleted file mode 100644 index db9dfc9d0a907a02b9ec21cbb16cc515946a897d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2445 zcmbVO-%}e^6#g#1HiRv0Lv6uU6xu=n$pW_6mbNxfO3~ONK`PoGZZ?;&knFCz8`8e{ zQuVhf{!xM53YI2-JUIF_v&iD~n`5;wJUiW{!#>ZYL->`I2m6f2od z=!T&ZB`oeg3K z3-1h_`R`Wq4}Z)p{gnH1HUGsQ`PIespC7L;ezyK}ZGG)g{;MBy3s3Uje4c;&M23bq zLrZ>P@vmn~+x9N4H)krtzTiGxgnZoH z!|8<{`hUG&vEibk|w#jt{QQw^^FLm zGj%c5;bW>crzVK${$OM)T~Sv^+CYaViV4$9BsmFCDn+U$oRl$}$90W_Q1p5!1O&93eW zaUI^3+p{6Zdu=*^I5eGGMI#9=hyD30R< zJ*@=tG}*UKZ7ZG{r2PU@hZlpsEVLE~l0~GQYp9=E#=*d$EDi?(Sv0KS$W-8^z|p|5 zWi)2d6nHs{<5`?|5k(7X>D+ocvzg91N$0oG(?QXJnvjY4J D2ng*S diff --git a/target/classes/com/eden/room/config/WebMvcConfigurer.class b/target/classes/com/eden/room/config/WebMvcConfigurer.class deleted file mode 100644 index 3be741e461d37da8c732911f93e3080df4eec8c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1575 zcmcIk+foxj5IsXKyM!gg2q<1qR3rpty&x(<1VY5Jf=~p(=+h(_!eFwSnrr|+!%y)g zR#~MV;73{ZY=Q#C11Ro8-)5%gbf2F6@$>6<029bWa2~@ZZbvYJgn>~L$q2@9$HZL| z<0fnq_jKUCi3eIg)M6q;hv|#PwD-usq=ClL@&MAlVhyIxb|Zz^6DyRQ0R?}~z57iy;>y!~|Caa@mk(sgW| zVpWu7-BTY^8n&t09>eUv=3|I032)0St#A#;6N+F)a&AKv#S5u>(RZ}6@om1t83tAx zjwh>PUDhQvY3?^*N-%jWEb5de_B{JgZMu04S9b^XIHpW zwsW5D8_~1nd9^9q7JIx}tB7$T#K5$LXVBCxX4Z(>mE|0%z{(qv;e|{#vzD>&TyJ1W z3$vK9Fo$^yX)G`dpNP^!Se6UhqUbTqpPta84P}@)eUgJyL5$I;wa1L%Z6bTLXQ|O+ z89DLbwfOm~Y7YSQvoJ(?rQ+_2(z23e>Cm|36Yu{U;{D57Q%;xd2VM$Z@~1uK!$~Xs zq&>+iv}ZB#?u;51uJXOPGCiZk#H%w&i6O-4r^wJtf4C0P^khh0AkQYvNQaVNz&`uS z7fFWwU>E~rTdfVagv;bHT)|aJq7Q#Uh%6v87Vl^x5d4N z#XEEPa6CdwUF~fa+1PKuChyBqYJD9YjP;A>3BlV|im~SM09r zm`iU!>4mh=3#FIohfW##rJc}WlxfTK2lRiK_FMl!r_b44?MjLgnPG+x+CAs&dEfVW zpYvXh{jdN1{ht8l@Y^i*z{p|}#T|T53Ya)o4|XtPCz^u>-~+*3`R_MHTiS z95tz_Z7-^At{Qo2u}_SAM}OO?K@8hOkS+pzEzdWmS+_!@|0~mzTsPr?Fk%PblkG;)m-XcagD0n zaNIS$C=J`wSB#SHxSP5W3+SinzO!Mu(xlpfla_7y^8$TS)5`+sGmc4Iql=a;FVw3= z={{l5n!v=OQ!*;chHI&Lw3zl+Et;R{@S^0{zUx#f($$-OoQaocGhMMfU%>42-gK&l zWydln7B3s?hF&r3vc6#ZvMk+hOVc-4uT~vfzbL(W#izBwChG!sc5Ll5D3GZcW#zcQ z&MwxeOnom{FOiY4a6{dlCcU3tDLD>a^Kp2G!u#p&&aa%8S+bZ*F^UbJkpH89Uh zf61uT7{wIpUpFdsI@+&?;c}oo0b*X-GU0)3+qx)UtV_=i)X*j(d>#E?!@VbUK@O=$$;s^94>Bu4Zfp5|!E1$f3ZR-!e|K$CTxBl|xK@C5|k23hNhPQB) zefQwjA3yxhNALglMTW??e_XpRuuK#uG&+l#h?oS$if~y*SinleqgP&>mIewwx zmumDbekHIcG20pQ8s1Z)zs9nL-{5tDL+v-JTi!(kj>Nk;P}hc%<4Qh~3yk5(gn71L zp0mrYQRc}`x7P7yQEJK0=90QteK|IC%ZnZ_S|0PI6h<72g1T7<%=WIG0Y$BuqvBNI z3@<`S|4R1sD&`$fRQv}}lGEtg2D{v4JzX{WW*^z_rb;qpcyZ6cp(wH=q-1WsE-v!>i}OWnLAHwy!gNud(BZ7QlT zLAQ@g@Y3iz;h23|x~{`?Y2zWr(r%Emwu|hDW%KWYI5M{5KHD&jHzQ#G)IzT#AF0<& z!Tvd?56`d>ha%H%W!k`!^0L=22!qLF-5pKSZzqv~g9`45j z{5Gl32t3H&F%J(V!{Z#Dz{$wLGqkKwjOHTW22yAsqugrc>1g22u5fGY&L|$nJk=?9 z{eqJwtgm!|_0<5DrVis2e{&x93!KK82+2D{qA<@#Kn7E+(s$?nfgMj>M|NVU0qsx& z!+cGQ@X^3%17p{s&EqLNoZHvHL~$%OgVL_OHQTm49QE82~`s(IC_rn=VRb6 F{2$re{LTOX diff --git a/target/classes/com/eden/room/controller/FloorController.class b/target/classes/com/eden/room/controller/FloorController.class deleted file mode 100644 index 1b3e0f03b200cf784ac6fa90888497bfdca1fb49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4192 zcmcIne^V1z6g@8lBCv>nrA279S~bKUE7o5Xv;vBa21H`9t!?cl`v|LHH|}mgw6>k; z^n>&p*qIKU_K$vmeyC2*+udwJ3`bK>jDHM93p{S-!H6v44Nuea5t&|u}_SKj_)HhGmliBTH4=x7Oscd#rWT&S)UqFhg&eDOU_C zWI1#yCIk`_XQ+dc^i`Y!db&XfIfoeANiAWSu{r|T2D=32-^@}QiWNi8E%SxI?t@=6 z{MB07GWZU|B+|*(YN=hYN!Qt+I7L=q@!uPoYT&q5ML?)OD{m~qTa z`b$dF;(@e#=`L0qymq;A%~_{*&!!(V1eEvHS=?4Of*Z#gwne(X@w6x_>TFjDvrKY5 z)WWzxU*0#0k6A~-dCZn0aPy5}?39O#yUxRPS>}0FFXt{LQjaPfVnqcVz?<2esaj=| zoCx$3qG6UweE6mX5_E?60B%z-N>9Uj&7c0fHp;3R>d8A*wC0|wJCKQITAbC`D(<=ibwqwL!qgrOn_}prR^G`M*1jJ z1uwih)Ehvov$mDo2x4YaDVreb^tWsx&G!(mS}aPB)jrX<^-kdtqiYMG*Rpwa3|SC3 z_<9C-a_{k-TC|7K*>*>MZ?$3?z6^?ljm``zK6q2X67q1%bBBIEb{ zbV#zRN!NAUrnq-`gpM|4zkbrFBphyJGD<>I_VGTi=mWg$^BSNkjL-di>*Dh*K2vff0VI#lQjnftUVZ0Y)*#H-UHY9y)`~KcRyoU?g+$)D{w% zU(s>mcO(p}^S)V>nDGYVHU} z9o&ly)>EO=fndD4<~Vozl|s~lr%rO zhcorz1cztwVHDsjJu4LbnJBid1h$Y;VKwrk2jL8dOXG0*`QO%gnp5yP*^l`MVO?ke z>tX;)Q^~l*&k2v~1wO*%2uYsC73P5m$eskQWX878UB}WB_`ir=T2OgA6mE#|3`F$y zG6|EI;_3*QA}&OBC05E+&MBf&3em?L2wd9{OwUeWt`W@ie+M)DDwr9}M$G&eF*6!5 z(;I`C&z#&s-xl`1Bzgozp^+1%??K82xJ7ukSt>cc&j&CwoUijUh;CfRjeytDn8#7f z;U+D9LJO>uyD4OAOwMsCWb#&=| z;oaYX(S<;63cjk8L|iH1%rVYH315g|-icw>D`fE%DK2p9UG7O>DOf+qQJ(Mj;?O?* E2c5A*DF6Tf diff --git a/target/classes/com/eden/room/controller/OwnerController.class b/target/classes/com/eden/room/controller/OwnerController.class deleted file mode 100644 index c262df366027dff37068c0376c23f70d4c474881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2625 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 diff --git a/target/classes/com/eden/room/controller/RoomController.class b/target/classes/com/eden/room/controller/RoomController.class deleted file mode 100644 index 13f5a7f22119d191c06a06d58aaa7ac5c6bbca95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7790 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 diff --git a/target/classes/com/eden/room/domain/BaseEntity.class b/target/classes/com/eden/room/domain/BaseEntity.class deleted file mode 100644 index 036c3adeaacb0ffe0d94d781017dd5f2ee9ac10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6510 zcmcIoYkVA46+buG$L#KGve~>krG-?2wt28WS_GN2)i!M*X||0?8l);=nw=!uZg$dr zlok{f5G!h}sGz9$rifJ@(o`NIs1(Joe$p@c&2N78r&#}I?##~YX14W<{k3P#J?DSV z{O6u?&%N7s{`1P~M07L#F-9sq#p1gxzQ^MGEPlY^hb(@?;>RqWW^pb~1N2OkeiFyv zSr$KK%X!v*#^UEJo@4Pmix*hD$l@0)USe^9XRJo)Vw~2~GYb8ZpD!!)3O`>}=rx6Y zrO@jN{aT?n6nayk-zfB3g?`8Wx1w|@N^c8FmCaJ#D9oCra^5N)8rvgCj0;MRTE%k3 zC{|{TLe&i8Gx?7Yq*Tlz%wsu0>4~Gp2_sW5ii?@)N-1Al91)~VRg0DUvN@YC=Z_T3 zUB#kRF)9dM7PQ`;a5A&PFDoO^yqOub3f1KzCWeZ}vMDGg0XB1Lg}*vBGnU;uJ+mu2DM*zoa0p4{jI=om zQpMO_L7N3QxqwuSRSgo&nT34?V-cx^Hn(7_k&?M=l#anxG7;;9d6TDZ_0(<1!J=82 zsg*?6<}ET!^+gdHwQ~5l_KAGaJWyReVwPqM6bF}(HIL#mP=Xjc#!zJ`k80Uu=hMuY z#Z1XUW^>lEkuPR;8)b7ZO005Lud-vwGFW)kY(#e{YB`Y^+a5|B41W$tYsIR)x zE^&W-B@x{Z>U83J7>?eCP!s;tw_#eHp}qDpHxKQ#$gU;jMX8y*IIbxU)E+lqarkS4 z7(7!>(qeG9I_GDqmP1}I-^lYJsXiZ%JRfJ-n}<j>=e|xnHL~p9*IgEy4)i(>rg{rqIOJ)h#;EeZsou$pT`wZ~UNSr^f@sy4K?ladlt8z*eHyQfs?b%*lfy?y3 z80rAXPdxyJvj!Fe{F4|{q91(?$BP?<(7FaB?ILhJ+ z^hH6vji>AGYQB);?b79a>}Ge<>`>|V^arGRsLxA`ZF~m>G1TYF&kih?i;@X}B~^pe zO!1*UCrj|hhWcclpeIC^!r1@NV~MilUXVUKOCs(wT=lmQ0HqMS<+xcMMF+vVKR6MJi`Mo zk$B!-xer4|Y~wghL02V!rfCKvL5FA-(RuPtJX;t&FnEE)3(#7KXUA>p0Sem{V&br@O&vt_deueGaFcHYaqR08XJsPDcVc%?0N!)W~T8oEDpKlGW~T z+GBGPRNwyb<)40tEr&a(brIFKvft(hD zIVp{t9s#G%HQ^*Xo5N|p%?XES0H;_Zr$+-h<%2oJ8abT-r!P0*B%7+kX~O1&Gd+M) zyphvmft-#7bBZ@|dK{ddXu?VMbB9yb=7d|!8cr7};YF2wyfcs!ZZxuIwszs!iynM- zaNubQht3baN$QgnZaqKv2C3PhfmKS{Lnv(rh9LCN@Y|HoLYJuH9I3-vXqDPsL`n|> zlF}num@$z{ls-pEEv!X+pbk9>P=~H)Q3fdvD5@zwP+E@xl-A=~j6rb+6w~59P^X>% zs8d(91cOuu1kDHP(vtvn>1|q)L2V8wskQk)-FiDf-FixEXHd!kwQDIKs7LPrs7Ft0 z9Sll4pbjnV1NG{i0QKr!S|@|L98jm$Ty8bT8|3~okx;e?Gx3X z$G^*5xu>Z(ODl97Wza3|rxMQS7U~xTD#O-F17d+H&_Z;(7^5n*FlEIkoq!ghg6K#0 zI!;k4iEHU3G=;uGm+2I=80zq!bRV=htC6=TAdRi5ut`eFj>G7$lP(gq9ZLxEMVIty4_mBK0t|E@9y=_gQG& zqDt4$BhY%#F$k-g> zHD71Kyh}Jk^3LPWki74N-3(#POZXn)Ml2zs;GYMOlSCojeo1VQUQ; zP3X*ux~?u=v0X~dg{>)Pb?Y(PgHJ#M?=H5c}(oYku*Y!|kvGb`b`*6FJ4 zQfn^Nc5MjW01wO6a+bGMw9}X94AwF%l4$5>u$pn9pcHunTu=W%N%IESiPC)xS{Qe_ zm+7m}BG?*F(bu3wG4CPzIy8lz#ZS1$p~dJeT%n(U7N@`BD*X*;3Hlc{-#4MDT%0Y3 zsp~QfArz+&C`kO@>Sest8@I5bo5C)@#f0ij4lLq>dB{eq1CG{%J$!(}nWC(j;>`;7 zITK?+6TP`j-OluQlj&ZBDKVVe zWrv^_QPcb@?ewd({;rF3O?tyBZRAFQNBUZ+zg4~X-ng!$A7^%?d;1I`j*`szis~j=l1v= GqW=O;*XqUq diff --git a/target/classes/com/eden/room/domain/Building.class b/target/classes/com/eden/room/domain/Building.class deleted file mode 100644 index 255beea7962f8910691dc763d865866688194e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20076 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 i4hG*vZ*ysQb+*xwhqEsGVoarSg9nL_OpH diff --git a/target/classes/com/eden/room/domain/Project.class b/target/classes/com/eden/room/domain/Project.class deleted file mode 100644 index 30d27fa50ee14d5ecfa07b8ebb44337af4193a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9988 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 diff --git a/target/classes/com/eden/room/domain/Room.class b/target/classes/com/eden/room/domain/Room.class deleted file mode 100644 index da19c90fb587abddc99a5f6b1cc70c7ee494c21b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10356 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 diff --git a/target/classes/com/eden/room/domain/RoomExport.class b/target/classes/com/eden/room/domain/RoomExport.class deleted file mode 100644 index 90459b58e406a9ef59d213e457c217403ece4d0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8736 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 diff --git a/target/classes/com/eden/room/domain/RoomExtendInfo.class b/target/classes/com/eden/room/domain/RoomExtendInfo.class deleted file mode 100644 index 89666d9dc9392a810afeaf990470bc280a9d16ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10860 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 diff --git a/target/classes/com/eden/room/domain/RoomImage.class b/target/classes/com/eden/room/domain/RoomImage.class deleted file mode 100644 index 8d4dc21eaf1e5530af30cf8a56221798ec0c244f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3505 zcmZ{lZC4vr5XWZ&NjAySVkop#+lD?^poFcpR)tb6Pz1_D^hYxg;d{k498!DHy`nC_?{*FDbICn_Nta` zRLm`}s!&F#nHLq-X3JpXOEIPhfF+J>%EqSKlo12!6@FqdSx2pOaX5qiM z-f(<4x2?LhS2Z6xj_Vt~VV}0f5nxRV!2#cSeUf!$vX078?|!Cq6T0yC-}Hvp4D{Otj<@BibARTmSg!3 z6zUln-Bze~)-B@;&MsSyx!SPzOmEWwFQ1!RGOF8#XR+O!?DY>UY*-K71KX(%TEl?uuXh7Hq0U0W?0g5 z9XZ3I=8&}=G#Jg@jN$AVq!OU0eg-RAI&UH1MKf@&wxzXvL3d~^XVZjtqunoq9dzxE z;Z>2ap(tM~iUIqOZZ^_f`BuJYd-Wk%G^llw?U+`otw?Y1s;JH19Ax1h;ct#u@CC6g zU)##UH`i*YES80a>bt>NqboPuhF3D@E$*f>VQ)^lDG%B)~;5nVeZ5meSeEYr!o6R(=s<^A|Z3??qd0L}m`kuuLeBF4V^(aiE z^5X?hJOR+*5mz6Dhovs#7A*bMy+N#=-FblZ(4mFxkeo)f{WM@zqWU1mi(#cmF$eCVZ6zg z@T%u1!R3LL;0lQmMG_$e9ixIVIrf^A-$mG6$ds7O(1*~qAb{@CN3az7m_C8*T>J+mev2)hkS?C2 zDIoLW2N)9=Q)9ROq(pn`teCw+NksAXLqSw?dq(4vQ|LZ?NmL($Leoh1CR0zG>7JD7 zQ~C^hyus8HXPN}lR2L?$V#rhwOb?~!)Ej4dAZ417pHpv~X$DNQU6{C|LZ+*NX;ykp z$vD%zlxa?WPRTga5||!$VdCx%nXU<@M^dI#oM~0cG%sgL#hKQ@w9$o$Z(7K7T`+x4 z3z&-ccskCsEoEAyC0ReE<4ikX+U>%`w?1ULA($T1vV=*EGd-6wt+*ie#+f`Y z)w?k9yBpSSLNIMenR0QaV=2?7oGBM)`T_^)VJ{$YCgH}ySzO=t3FPpN+lzcZ)wRz4r-Js9!>f!@pW z=K?*+^Miq&Vtpvk(;Ra?&{fti1bT+`i-E3T$iEG7O7Fyv;+M!#ybOO2zXD}~p8gNX C%s6uZ diff --git a/target/classes/com/eden/room/domain/dto/OwnerDTO.class b/target/classes/com/eden/room/domain/dto/OwnerDTO.class deleted file mode 100644 index b71102e3637322e84a7506fc68796cf562a411be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3182 zcmai0TW=dh6#mxP^{(x8F7DOzlC%jl*SfTYwocR1D-?30DTS6>H}(>{b?o45ig-jq z2*C?HA@Kv~OOZf8Dgi=;ha&L@`UBu+P|9~^)=unfRLMH?%{gagzH^yb|MlO`zX3Rk zr37reCgQ4y*G0S`;#v|<;ku1ClbpOI;%(8qBj{ZbH$-?M=EYF3QB0y6*B$sWzUN@U zLCHbc!A%FZL|3t~XdqTD8purE^lp2(idS98%?0&xbz$6qS@jlu4ux8ggSAwuRXKK+ zi+(jI2OmzaEYACN8W#NE68G3TI25_dIkmiNvRw7`k}KYPg&SoiYXz@z)vK3f9xBbC zR9-gFKUt_P=6s%%tJjE%wMDO7%@u=MZsvokUq63kh6Jr;ee$-!jRy~1HPAif2c=qZ z)~hp+z^`*-n`Ea|ST+}jh&oMDbQ(F-&FX+1Dnr<#LTwGdN0DgN#ZQ*2<=~WojzQrO z_upUfDm=Y~=*;|0zYvTMT{mFVT1ya`7-20aNsetv%YanMQ5ppkN~w#K)M`D^23@w$ z5Kh#Ju#hReB%EytPiPHfYvZ(5b$TxF3b&@bB~>+crRpT7;8ib3q-0t0mPyii8z9z2KGI%w_Lo4=Uwc>eizRP8WA)mA}8Wm5ifzU>}bC? zXIILVqLj>Sa2hNZCtOs)8r!3N66=IQ5-pK4+Na_r>>2HAjhH%P$i-#sXEU#zq}zju z^p=+VDw|>~>H=)I6Ct&6#%1$~04&5LRYWn#mKvEbH8N*vWZF1(foa2j%6`sr91V`v z@Q*OQQ*Hy4ai!dar-@zdfM;-kGXsMd;vus56vvo&50Cr=<9nhQWOY($dr7KK?XX>Y zg*(XZLe;=9eJz6%*_L&oZ08hf=hPp`X*8Nstew*VavI!(lccT5X^-N>Hi_WW(avck zlGDLxP95!>a^!Sq6HZdXCa1lM6T3EoliAMcNF=92(VWb7PRGdU_$HjBotm6_6(?Sz z2u@Zzr}0Qmhod=J?VL`N(+it$lGbi=>QkKfK5XE05An5Kb&ordocL0(XW5L#eU52v z_;6(S8(8Muk>6o|4Xfks$bHyTqrcp;a9!~ z=ZIXKC$}@m*v`M`v~l4Pw%fSKpJP12P7M=JhK*O|82=^-$FQ)BgMXNKf+ZD|H0ZZ$ zeH!$;Wi``aagn4Ue78<;M?=0Hl+r5ya0`bUecnBO(wtBYvAcV`#CCAHNAAELTSeCm z(WmmJ7_w$)aimGK$<15J#Qso=oUGL_rSoxRiZ@N{8ojDBZz~fUCR}AJ)9&ck@o$;VWf zES6!gKroEQ++uAW6U8=I4Tpx0*{TZN;_KYjJlnOQv)$^v<{x1QmpB`itgVW+aUs*h zZ@8{FZZlQ#^_=_#-Pi7+CzDyl7AZW3%vOz4g12eRd$%RCUE{Ri9U6BE-bt~FZ2P0R Q{(+hdOJ-nBHSCrD0m>iw;{X5v diff --git a/target/classes/com/eden/room/domain/dto/RoomDTO.class b/target/classes/com/eden/room/domain/dto/RoomDTO.class deleted file mode 100644 index 1a09b1af53a87cbb2084d303d93f545a532d226b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6039 zcmb_gS#%sn6}=_R(lgW2j7Ez+j&PJ%Nwhh_iI=2h8}C6uk`>#r6Jx+FX)KK`%_y_j z*&skz!xq98VhDuAW^qUYwoJk~obY2feCG>3Iec;W;fDicu@x5Gw^-sUo!9m>3?Y8N7Db;zy;|q8u*FyKQ-_(>3?qElJqYd z_=Wg+C5l&N{F*HH%Q$`|%^)s|bUBJE3aL`In6np;W{agUbHE0t-F9nQ_??Q*4PuWX!n$}KfpC3J3F6Q#{oWvO97Uw8y zOw94&%7t_JY*EXhvOQ1Q$@y&A8w-WOfx+h7yil$c+FO_-kK_b{K2=$o$rg{;Gm8$h z!Yt3t=IL?lDnsRk9GAQ`*!^6&;GE39BL`*cB|opBf#7+oPIK@mPh&D$UMS2>+eHSd z%=BT>aHsX-V{+VRpLHO)w2@0)p)ha*CUxAH@Q_7?VD_ui)1Koo&QlDdk$9Yxp3i6hyYf=ao$_v?|LWdMYf8(8%c5FUn(g9{`mk$$M z!@MdDYPgd$$gApdJgvG{x;1i@KIOn0E}aeyZPd9N@g78NBVJ{DeR+K#NzcMsqamJ~ z%7u6|F~^I(z~b709<&`U+p}jT?Pcf2;qwy33eRlT&hMAAqPSp}7WAdX^Bm_LdOq%V|?2yLBjKUh{!tvD7 z9-$-o*X_C<@TTAn6IbzT6Fc!fkzQvwM*8aer}_P0u&AtufyxO?GTTS`e9@rguvpqh z`aD6Q_CZKNkMwzCL-oU=HeELoBI-Wq>S~dq?n9!Bj`T^uIQ)nV)u4%45&8n3ea{19 z;$z5~m_wEcV&W-$Tp<%UNg~8*tA|h*F_Xn!Ugj5r!p5M>YSqK+#+n4tM7{V|VMmTE0M*cAu9GU6h^vnp_w>a`v+L;^;W9ErtW2!hkv&HF|Fiy{$ zVZVlRc=&90aWu+au@4VjhI*Ak3wE=OILb}fL)p{-?8QEg6!zl)QM)MbWZ%L*GBkVz z>NQGwcHGf!K^R*d4?P;?dJyljHHG^)Bdj>yC{1(wfH&R8_4N?e1L1ns_~APOW}Uy8}4sW16CqgP2CE!)=<*YVm3nZmmwVb-ebI z+kqzB^wB@S8TvFLydJjJ+1^cqUhoi=tjGY?AwTQ!8?rtU%sS*}JxSJ6O<3y$^|IdP zWxcI|HE#@Z-$k7_)?q*ELjkN6j^QD9%MIrr7Pj7;JVv$;HDN2|Q#=2AI8n)U6~HOt z=X4^F)A3+V5kDuJoMxJEl2Wd5vK&slE(174{hUq(ayk*rDeC8RhMX3gaFT1K#%avq z#OpeMli}x72;}tPU`~dgQ;D3)O*qLFSL3wZ;lwv1fK$xR>0BVElfj%~eojx2)00g& z$#q-fw8P=V2YVH#tBBXV>U%dC$cb;CJNW{0S}yG;e}lxsS7D~xR?t4Qg5(NP=?*QY zMefvcm&n~(?h$#7me;aNXSBRdQQ zE?fT0zMC~w86LWTaOl$T@37$ogj+8SzljZ#BV^z242OoV;x;XDLsKJctkA~aBasPR zL&rs!8#AF5++IbbtuP^JE0PHdCUOnwi)hP)GZ7D{%Zd`zWf_^MfD9KD%@`g~j};@R z$BJiS0*bq!SSIcPt+f&at+mWdLO`YqqT~Usv)Tw+XSHYA1k~<=+A@q=jd-t>B&gR) zWs(9)xu9ew>3oh#AMM= zjZUzXlVES@1F1gCs)AFPXJU1$lUU$m--0{UeaKPQip^>_PE!iu0o9K)l)^Zs*7K5> z=W~7**Rez?%3}Bz@{|mm$DdH36vIn+3(J(^coSFf2&DwB;T04qnfNQ7MTt@y{)T5* z;PYr#ajsCIlvF7u&{;|;HOj~F9HkDmg|Eb;l+x-5zn>nX)Txf+COl553r}#bdE6W| z{)2Y%iM@@UC_c(xL%of)T8#aF#p;L5DWn)6etYVicj{l>`>-UtoPqb_N}qxLGzwSG zfKgrGE^61t0zE4EfMvUjXLz12Ogj2^YHa(^Rot;ds(z|BHMYPKF;c@95#6|gfs>+7 zTOl!ILaxP-!qKKKE9{uUHB-21>aik@DN-}BlJu;#R@5=Eh@7QZPF2%7%WzCa&BW5u zvwE$VV`5dgvtm`#dMoaj;x!X%P0#AH5{`*w=FUnurrzLGeq2Yz4Pz_*iBI5@jG2Ld z;Au)NOs~J=Qw(h@Zf81vno@}0Ua#Xbl)^ZH7x7t25vJJF_#CAup5sw`o|1u=`9bvz zr5OIeZ^SQ9isLW*kp3d2gd|)`E7I5b1s`IQRTuS z9#|de*Sg?nBe;$aFt}5URa5G-f^F`^SkT1!+@@xCdc4W>x`!JfTqlXpHO-hh{YI-aTceuID^HREY4!_ zW)^3&cngcSvN(su+gQAv#XDG>%i=s1=d*Yxi+8bjH;W5cyobewEG}a4UKSU#cpr;P zSX^38m!;8O&f*H*z?F>N&*CZ;SF`v4i)&b1%i@D9u48dMiyK&ch{cU8KFs1HEI!KO zV=O+-;wBb1v-kvyPqO$Fi(6RS%Hq>3KEvX(EN)}*ITp9G_&kd{Slr3tFfaG6a=JS$ zw$cHY?&0=c7WcVyze`_m=>eA>bm@yOJ>=5EE`78mb%&84rq z^bME3>C(4c`nF5oap}7*eb1%uyYvH>e(2JVT>7y~KXK`&EsVYgQFv-6?pUJ z_{PTyLp|#U#`17lK5_;u)t(hHdseuAaAX)()i}U|`O&enwhxSrk7A%~Fkjd|IEG^y z8X4HPdthiBgK6IK&M{C9VP3sdzgxX${7_*yf9Q}uP`fX`cVu*6tS~a{52X%{7WTpq zeowTo87{zo6@Ki((7>LdJg=5Sa%^Bfyr=i#pvLlgPh~3#;I1N(nANcxlyxKfz^vJd z`Sh=`i|si!M)nR2?H(8{aNi6j#|8^mL|J5*o{o@-+#ANN_er?M!U4Wpzk1M~8u; z=#2C=BaM+TI{i*)T@;;A+oID9$D-4WYFCw}XQC55lR#?#W6_Bbf6Y2NJ+s|-aPpR` z*l{#G*}5n^d4foIayJs5=oW{k|C@x-$iBF9B@##YopXkQp6GJ9GfuiwQmOl-*AjDl!p!MzHd-d{;6G+fV z@eSLkkYY#12KioF&dE7f!0p&oBMR22LI1wZ>9AHSqeB@*I@!OQS7}Dj*Xj{JRTy>9 zuU6Iv!#rN2?IR<#QHuTr>xxKbtZ1=%EL*%>J*cNt3)BN<%IJvlH5y6uX5-PJrhpX7 z{>^$;=EgLQfl2YT*A!Y5E2;tmv-Xgv2SS3rQmaFP9!M(>YHuVewbu0Nl&ZKsGAC9% zsEPiMuCMXf(dxk(z1+ySvR~n4G|BJk6-BB(a{$p1 zWzT`;CnNv7BSZQKM%6Fi)65YR59+1I%SW^H_^=M;7nYVLlwYXOfv5`3AP`MY?^Jbk z@(YqcP@QJgPGco%y*{wmXoaGh>Qyszr$#BF^{hFq=uj1oXz!`p1`evK6;G7vfymuE zFuZ|tEb`;vz@b51_@WBlf)v`nW6QP;$g#j>qxnPQL#U<`DuGt!{ELQ@r<+q3o`x!B z7^ZWPT$k}X=IRdYbw8~==uTxWnvJrm7t1$wYOpw^RA@8xyri*C6lK~s?$Ej7tG_B( zgucizZ{%vu0BiK^%3|% zU1b*L_iM25;zyx6tRY?^mSHmWFvLGZ5O3AFSX8BQI*2NB(P(kUMszuc-*M;2_~_pJ z#)5hP+JOr&c$AsL57HTNy|^JGP8Vln#F^r(jCeDPv$^{gMsH3}trh>35g!vD&xrqI^hrjyu(+SaP2%Q^_ymhjvAC7R zr&)Z4#b;UE#^Q4Ape=xadKOY2B9hp#&H@7c?bi0UOo(Jwixuy19Co~B>2_!a8> zuGZk{U5R===<+3sfvT?7Faw}p6ZQ=w-PLNc0@QG)I-zxVi9_Ac)yn;%iyXuCdN_KS zW3*C_8ds*rmpXK=nFkOnieBz|#9uRC@EE}^!b=`~Y%_AvV*u+8E_>7UFMM<{MfB3g z2sUl34rQ{HrWB)+OF23{D7hIu2#+vK-fW;BhaUg44oowhE*74x&X%wW8mPy z{4j0<-L^->$kS#~SmNDC5#O)$Uz9J}M7tQro89Tc;S>bqa28T65|L_=i&Tqrq*`Po z)gmdW7I{gvNKL9mc2X@8lxmTqREspFT4XBKB3Y>x`AW4&S*k_WQY{jfYLUBCi}a;h zWH8ktiK!NOOtna5szo+aEfSh)k<(O*w5D2QHq|1zsTTQ7wMcQQMV3=75*^xC3E~V5 z`62Xr&=T6z?7IYgPSI|JEK`GN@nPVMCWw!SkD^DM{2+^s?-0&yP&(p9NNrqeHAaH8 z7$@S!jaFkMR*P{mZal$ij7)7YPQ{I#7-!>NmgT& zDi-7VxN+WUj1tFU+z>ZD#cGVw$YR_WHy*JXqgb;TH^q&|tj4IvEXK`otj4JSEXH2k_&lpI>PCz4gt+kqR%6tg7UPL=Pl+2}XEjDWZ84r2H~z5I7%e1D6#Nt;2Q1?9MxdV=qdYG{Y1nTyt=> zN8+2XOA$J?=zL3j+vYM+s!J{$1D9tim*26wOqS}BYtX>uo0ZG&+Bcpm)g_m+fy=X% z%kSA&Syrk`u8aehZ&5D4Z(n73sV=$54qU!fx%`2Bm2Rmnxn2)ko}*m;(C)ILRF_=( z2QJ^HT>i-JGF_@meu@ZOzFoQevE5~5sV@0}Byjl-8Q%H`vBm(``Z~y5tAlz~zO?<g}B|m-#F5jzMK4VXAO{KczC;7nT`;^OnvTwY(RG0ixAaHq! za`|h!%a&4I^81Cr<)zByZ|p9;QeE<^iooS%%H==XgJ?pjF8QrT;PP_i@?Y#OCzk4x zU!VjouTU<3Yv1^!QeE=9n84+g%H_Y>T~035CBN1QT)tnq{5QMHDW$sPH$;KUtCY*% z*jqv^R$-glHXeeE zC2#F~NVH!oQi)qTzbM+bbHi9%yHhGOqYBHoouPH*BFPlM{FI&83 zCbbw+v)2+KEs!2a3*-dPW6}ge^1KNV(n2{Aq=j;lH<3w`3~8b_DMDH#Cxf&|PVpu) zX^J6D_NGKgi{(_17Ry#|DwA3bX{y&6AuW+@AT5#8yf!9HGo&_eT7n&-`rkk-frAgz%Ly#-8KXh;jZg%Q$Pxd^1Sak+(QP>Xl1C>Xl2qB}`gsNK3q>5z;!j45W2Zddrw34QZJtBc%0mIY{f}3U4`+ zRv6N9Z$*T(L9PU8gIwjUWYQ`_TIsEdkT%NIAZ?UuywyxvV@RvLH4)M#xfY~Nve#S7 zq+UZ>>-9!Ro8>x?Hp}(iIwq|*q;=l<2x*Jl0MZt@(c8eJjfS+r+ZZ7oCpUp~oZRef zV$xK14^T>MOFkw322>`7k`IYzfy%{b@;>n#kSi`rUMKz+s6t$wyh=O| zlop4RXW&E4pGBp(KY1DvP)7VLxq}>_D)Dr3D zI_gY1R1TD-;}X9j7pR{46HibDPy>x59-uT(BaJ8Srb?hDx-xMMWq_LL+Qb!91=K?K zB*v&3$fE}n!&Cz_fu2nCQ7zC!dM2@j>VPIWiNtKm0!?-*5;>{|n&Qk#q^JRCsx!xV zo*IE#oo&uj)CAP#>~tQdW}s=#sB<5+08Mw!bnYY%DCb=5TtyRr+MVm2OKBp|4Cj95 zG@1l7(|OoAl_mqta-Md!(iET$=QqwqnhG>KQRd8~R-n#A#%ZHApsqxxm`^5jDC zSDFX3BDqsMPV<3QCXW|Cpanpyl4puLX(7<+KAvd!gr`6AirgBIS~RTqf2fY+n4E+ETJujR=#u;=D7v5%%aC#SO=*fNIZjm3 z53u^{t$tCO@)H$O&tLEp2PNWPxJ2Z?4Z#rJy*7UfE@mL%-C4VQMRKJo1Si!lAH?m? zt?j&7ly@H%uR4jxJ7kg-Ueah>E)KP7woEA%>Oy7YdMRJkDa(|qEKs3Z)K*=xT&Ykf z8mn?&)h%76asw60M{PAnRwxxJM`Kmtt9oQwsnUT8^`y3%D=U=>rKGW{^i}g@MyWD^ zD&wo>%POTpZE38keANP3tyI;43KgfGYoV-BDioW>s>W9>lC?@z8>mo%YOBSvPN`6R z8ml^AwM1r>DjTR!lWMD_vRYPzr5B6CWW3sfkU^<2lv zcBMj{Y^>UqYLc~7p>y;FZ8AV2aXYQ24Y=G>iQ8x+kR#HGTWAxqLPAVWTuz&Tl44cj z4B7&e62~WAPsah3iLu05dKFN)xFj)ywgS20Q;AC222>#)asEi#fzskB=ZDk>R4M-E z+)MpH8ESGqM6U*_qIu5wv;(M`wmJpc2~sFu!k7SL;e>gal>g?0mFar1qS zUJF!D-=|;F>wp^Q_w*PY57g*X(5-X=P?M9R%jiU)W@j~>POk@QaZaEU=?y@hGfr#h zjX)DnI<(W9fF?S(P?}Bxn&dnx{y+mjlbxq=tK9=M#d%iTLwkXyCYr?!v=68?F<+cV zd7!q$HZe#i15HZ|ifyzXXnNv2F`ov3a)}#IFcpB>`DU6uLu`CrG>ar|rbM`bBIiDj z;|}`{4>XFDPw+X(;vqvTi_k)5eAJN3i^(D1qA(`z3rs>QyUrL^*bGD47gZbc^oy8> z9{wJ~IH`PbC!wEzKr*f}f7ey$?H}`u!>WJeF!Wgx)wty%O~n<=|IR-ZbxBpymBKd8 zYf5t-uKXn!m?>&Yo+6y(rP-K?>R!r3;ao4-%uJVkiPMEMz8p(4Y5hx|G@SQk8k?yb zUe?s%>@VNmETHk_E+AaPD{^6$fybp%u18F2{b#PzSL($qrumgECOnxV;K(cq&ycU= zeDtB2Q#vxf%)-1Qv9R#Oj+i^Mya`8WdEp9=q(`&JiAQdc;X047Q?t}bM|7#-YLC2M zv*5``dconEkBV!v>?ucK+2P8MmUpxGsYhq=;rfr_1ZE4ZM{Nt?E{^UTW+QD!b0gti zj`}oaJJXKxcETMUi*=--5tC6%m&+!)ds^o9@8n!HfJ2e zZH7BN*0W->sFCqM^7OlXdJ?bt@ClLbxKC_7{w}dCyZx}}<5&ELMSu3y8slqdUv`Ja zc-P;T-KlX0b9QNrkKcXS*Jup${_JjzdwBe{8spn{U-oqx&trVN#`xUbmpwt_1&mMB z7+<*ivai>85#u*#jE~xV**9vugy(vb#`uoipFK(AWsC>iDmqsi{o7+peWSrM{C38;J7$2+qvimh&&3I5_e4p;m7BpVV_!NzMnRBYf>lhDdyq@s^jW;kJ z))*h2`?Dh&Z{qQT8sl4YfA%zuxA6F=#>esaA>hMeEdDq2k^h=UcbHeZM5pp6AR78V Dg~YLJ diff --git a/target/classes/com/eden/room/domain/dto/RoomImportDTO.class b/target/classes/com/eden/room/domain/dto/RoomImportDTO.class deleted file mode 100644 index 1ac3d292b75e873e7a31a9743418d941b5477a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10295 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 diff --git a/target/classes/com/eden/room/domain/vo/BuildingTreeVO.class b/target/classes/com/eden/room/domain/vo/BuildingTreeVO.class deleted file mode 100644 index 2d159e4a9cff9b184007e37845f88b11df49a294..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3254 zcma)7?Qc_682{b&zO}t$U15XDi$f>wl`0}gyTJq*OxuABC*T`*?Pa~A>n&YJV&Z4x zClf!JnD|u^!v`fg5>1SL!Nk8w#NWB+-nO@N$&&Ut&w0-8dCv2C?mz$i_6LBIXeMz0 zHxkfsQ;=JNd?d)n20lr0{Zx?81nRcnY(Z89DGOP}fRn@?+%R!RtZRZ)O}Hl3P24q6 z6M_u`bp;^5X-G5<=vPIUWFL_ zPR;Y0n{9JjEw`2{x|=OR6U**e-EM6)i90QAwU1|uWp5+rRGfOQ>5;2=8@5}|-S=_} z!r=9$>$9y1iQSz4gj=ZN+Z7Vjl?A zR@J3*<2&AVK8QHDP=U7Qv=*73%=koC_(6gOc^GQQ9PNw1+F9xbN{16v^+TgOZQJd1 zFwQffrM7VQInp+z(|gBzeHJN8mz-ABt6a64ENjaV)f%KiG?3wL)gTU`+>Hz(p>7yS zcwyV;g3uW$MoRH{BP>TgxTFo=ZHU6E?%dn5Yji&1>Xp@Xr`#$`+)|);(Vh*CSW~Z6 zb(#tc(G6pw`AuKqvqQeHr}O1;R2T)yTx6m^DNOkm!@;m5B-{=xx9sxWlHKq-l%wrW zq*=D>7e#n=Sa=C9Tgc)C3kPw?!eK#<;6(+;cADC#84K@W*1`lP zEffSdg=q^jf*eQALJ=he`#bNCbj`OR>XeCE8+R*n7CbZrxyP2A9$oEvsOBOP5jZ7@ z=}{Rvd1b=F2bks{bZ(Tr!Gzk4hEr!p%=GL3u4#(6$Z?I}!zSDjkE4925AdB=5fh0e z7ZbVlSEkornPDgx_4%V1AkR9Gj!}~1s&LgNA4B=shrB|n`$8SZ$XgPCS250=BC<~! zRsIFBpL&$dzRE0EALV$ja-y#?3*ARq?Nv_pRc3=QH@$9ay~?RR%AzcWY8K zPTS;R-{fh$g}9%+Vt3%0Fd0X0%RC>r?7=fc%XZQ^_eVRI9N{ISJd7bvAxB%LMEQbi zitGku8X~<~W9q|ZrILnBK@jcFQzC?q5jd{xAoU*U*HaQiSa2MyvX(++L1#&uSSin2v z3^a+qNY2DJOz8r-1is}XaEV+Jm+8kT3>xOY*kfSvDMk#u%b%${#R17Cc3{IkonvuS z@$$-|;0zrWt*?n{h&W?AG=SEQQ)6@@&Y<(p`8~zgnj%i5@+D0eG}K5JX4N^rn1|AZ zDobgmryjtV*~Y+aAy4L2agbGm6H^pe9;Nb{f5h7QN@i9IkF31zAL;EQR-9Ug`WNZ4 z^d)dUjtwl~3O&_WhO6XaOzR!I&w%25M@zUyPUZgumPs|-#C}{Sr~AqO5#}=rR3=|h zm~be{Gb(oWF(DX+76L+y8WjaFy$jYs_DTb=5e0YfeGaI?82LSuHNiUL6kmq<-?8WB zV+>}}+ZYn1*+wR_SMqH4q0BzXrvyJNc}rkM$ZunR?*rTYQJD{NtYF1&qYwWFg#lge diff --git a/target/classes/com/eden/room/domain/vo/FloorTreeVO.class b/target/classes/com/eden/room/domain/vo/FloorTreeVO.class deleted file mode 100644 index 33b388cadb99f7c7133bd513aea74deb90d561a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3275 zcma)8-ES0C6#vcceC_VET^3qc0YNC*PgYS8wk=kWkLtD{#VX(j)9%nt+3u9>EQyKF z#wQb>OiX;WiQz$smP8YyFPQi@iTJzs&Q537ZPKK<_uO-T=gj$?kGuW*-(P6DE z^|#@+^JWt$s4~3xb8&Xa`%KF&R_;1w#)hJ?cc_zv$Y6ff3s-{bHMhaShhBpLI5bF5 z>rdK6%!Flc42!r8B!Mkz0%;Q&k!uAJ)0hx|fl6DoK3i{9>}=#RhVPQKaB6z@n{JJK z+6Y`-T=ka1iQ!usw4lAwqbn9Z2v0R%qlze*O|d^)N7we#qK_y0xz+fI8EOlSGuno4_1TViyuio%03UxHDUnS|DUndQGpBNATA>js?v9~{ zGLz5s1T`h@8h2ylF|?l~V>Sl)cZO|r8t1wgtJIz1w_oM2ta4K3o)VcF8T|#R?wK1`gVN<0obBdP->pm0II+va(q$PFNXzV1=sG5D z2$yMew#@&Ds~(&rTD6nOVL!J0kt6(w%JLMI9BCE5_Br<)jUJ7Td=Eo^IQl2dZ(*b# zj{X62c5Gw|mON6h=f=2{_3^)uE9y_MXA{nNQQtzQg~*l-Lb7GEXb6n?1cgoX6pf;p z0OiUSLAkPBv;@eGKvvOCfShuMAg7!yW&|i3filHx3#32nnwWLPChmwwn8sUV+>h^Y zp7WLBV19)Q)TKFRU*c^_IxgcLE>bcu3lEnlnW%BUOv&Q2HH|BjY<$fe&QQwW8$JT> zP|D(6#&H^bmi-TUEmWRjz``v5Z0#uyC^55x*y_`17DpE^t||(fi~s-8ts$x*c&2t} z03+sUke%Qeb^dwTQ+%bV;zVj+(1k@u>-mXEeM%PdP<~>CrL^;-o3O^W&~r!Vvt?ae z6!qxF76n#Uxw0XzSX*gi7me1HQ#R$58DFvDv^vziNLN%WQSfQ3;XPbuqz20{PbtN; z-o*_PO7kV1#ru?WHti`aP%>~6`|$xKQzrih*w3iYnS4!S!l7x;Xt;e&2}M7Q7NCXE z+f@lX_BN_K=iKzR%MJ0IBOkIHnEV~sfzZFK8D9_C|N diff --git a/target/classes/com/eden/room/domain/vo/ProjectTreeVO.class b/target/classes/com/eden/room/domain/vo/ProjectTreeVO.class deleted file mode 100644 index 0349219f3e8978d891f65defb7554be7234ccbd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3204 zcmb7GTW=dh6#mxUo9#{FxJ_Eq00B~(YYn9o*d(R2^b)Ys(4>KuTQ~ML-qf*;V^>1r z8S#X~6A}`yR6>1#3Q`Fq1TRJ6H&MzrJL}6j8>yA7nKNg;bLO1yoSF4M|NZs{fRm^t zaTr$<(6KIt_r>sm7_J$(p5*+Y7(NoHkA?J!7(Nxl4WV-kY$P#=t0szKE}3vm+%&N% zR%H{On70hvQV{b>3NraE=eCopIMvPEYO~>0H|G_k>W$i#TWl^n+irKY_IaJF#74`j zl!)6=ke0@+rdP@3y`3ga6RX~4)oHdGgxY=E3;AMgJLi_%YOYbERH|(|UNv{SmOC5x zTx+=Q`sMl4bfhnMRj+wkL40y*U4eS8R-((HyjOLXTiY9MW6jy9P?O2micV$SX?S8C zDAi`!V|>T5`|0IoVUO~O z7}0iQj3bkKLlhLH3vRPqE3G&UmaXYF7{(w?!f|&MLEKdI#C;&}-3?oK9u0HMJ_vYT z?1w)=Lc+1`e%5j-3^bI}ukppSuM9Qu zu-pylLNG~37$$XtzPFyXACkU$Gy|(mr+BO2)O}ufQ~e8O7M<#OksyOBJ3D3B!tCcI z#=ml9sc@bNQq~*pPOH*ntNYPg6QL+OOBqdaqUT(*S(BGmL2|X$Y82fIo_{HVqRak1 zF0QzR=kUCRES|D(L=0nMcpA?rIJ)1p40*9|32#`K#FT~Cg)}Xs88OUa&cYJjQE;gL zHSv2(6lyr+Y|<+&TBu-~JvuwylkZ}$LS#&ZH9OwP*|(~aHy(QhQ|$WgiLyD!r&F)H zRkp-j)J@rQd4dr6=7jL=F5DMSLUlg5fQp#ll~PPl>(6A@pGhzjJnPHj7@*8DaD0K9 z9A|~IHhmw;&pu>=qwXsW9HneY0A9o~t`xyO$FT7)i2c-OoQO1L!6J;~{l>{iV-`BX zSnW4XMH;g~$W4FPTEDRsVJxXT&a-oPDR5$QjtQowXMRO2nz>Pl2$&PBiV`V!nRc4O zMVgBf(JteU>rzy^f^c;jni>C=DR$JR}uHw%l9U(372v7x6IzeWe=Vr zTDFtUYd_vSU5UTq%2QYl|>PSNPz%=8b?)Vni(LH`a~{O-)3&q?&7kNgiu?z)DG17Vy%S=ezhypHC zQdz1KSfQlh8V=z-O1e+}k1!ump^|(>A>mMzM>OoNV?r?ktqo{n)UYam={>M6vR@m3 zjWD>2kJz9IbL96-)&yJ3Q+yfD{EoqE_c4@7?_yY#hEpaZWw!fp=75w_LOv*EYZoJ# XQOdhG)c?TtepJo`94lD$+i2~7y&+IH diff --git a/target/classes/com/eden/room/domain/vo/RoomTreeVO.class b/target/classes/com/eden/room/domain/vo/RoomTreeVO.class deleted file mode 100644 index ca417d3f5a277279f8f6098c84e1a2b0df58f850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3926 zcmb7GTaR1S75y9cuS7ocJMm`nZ}}l^6Z7+a!_jqt)<#* zyR|f9AlGTPmrtxM&xaiYm4y9Fx6@DvR}g2ftb`HxOgHGRts3y=*BZ@5Vh(n~z`$nh zyBu`uwL^`iBjG}0IcTbH2wUBtsZsX6Myt_1U|?i?_c;UR;r1fqmS!8RP$zLVm~Zl= zGTUAVn&*N}L-x_3*{wJD#bdJz?d4jy7`AGXT5Ykt95hTy59c81a+nsQAt=Z*eP+iE6CCkmKovut<;t~pDgPGErNXhNC zH5qta&$QP%3*oVb+^CXpM_-Od{nz>^++EaEwwH?XDu0_ijr8HE|eeuCqT#r+B1Er6+#4)>9*^^y^|R4TqH`STrO>rI>cFv|clNKq?=CE@v z)tPikakhq?^Qq3HVT!Xo?ChmFlfEg=&aiVK)%hvxD0tP#MdU)m#Ep^790he6N}pkQafdB|v4r zKv3B)Rto|uMxa8q7=z5~tbYWU9T-@tKd7Uu9*{G6JNCf>s@s5$81kC>(A;!n6p#8G7NXM{LGEr)f+JxMK(e{v(MbGNVUB@ zQzxa|^5iu*)9cvus+@biDTb;USzIBSHWhqJnaDBa9swb7%%AxqLN4O7d(#_Sf7QD@FKMgNBJRMVjD*Im*pycNzKFo z)bTPki|9GLLd`~(zZb7kbMP*TaE+btzU6_*;Ti@93d8u8!TS4*9E`$>0WroL zJc?j;0@gVhnO2STs6r~m)} diff --git a/target/classes/com/eden/room/feign/ContractFeignClient.class b/target/classes/com/eden/room/feign/ContractFeignClient.class deleted file mode 100644 index 1b0fd3c7e64bf808a3b0191aa3b3342270676e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmbtS+invv5FMv!HYv9hXwyOg2_9&LiiK415(I)uL6uU0Qp7`f@_Hv*H(q=3dQ+XkOL>tylG6`bFRUBz3ygWJOv1%9mcK`TEb^S<2y%5ObV-U^RQR}i^dOd53m?yu zP8%`D{_>yMd-%1)!jE8xe_fuT9E5RArpMsP-@A9p;L%L6$Q56LQ+LFr940HYEkNTs zv89vPQJM!v3AZ_#e#qdL@~Dogp_Vh)2#d5oY2|)_ zZm1;r>wTehEaZT}vxS8lqs^)5{0S!9r}NvnBzP>H7In7hAL4VAzQ(BLN+=yFRR$|i zrEit2Mg?kgMRe-nCp2Ju&MDj_1sfwBn!ab?``Ot;n31Ij;f zfD;l2K7fxxR8L|h@g)c@UHz*1)vKj{{r>S2zzaNXp@yvn9yIWzMYUtb=Wo9 zS(&(=M?INku}sDtfsMqJ+D)Uyo3lQ14u=9SccN4INrsu!X&4!uc4l#VMu=r|qr*NG zW#%|_-OKw_E3-_2R$QuVsB~Jz-;x`d;Rk7DPL3=$(LCZZr7JBrd;EWu>|aqo)Q(cJ zodYg!H5pMd_U%r)7kGNJ)JHD<$doprp7N{MnzFA=cF)gFV6)G|RXGh*p?FcRwKh&V zWi+?A8yTC1#l-RyPJHK|jU9&t_fN*1O^8>PPmCt*I*XV`U7-Efi{+VLF7JJON{JJA zb|bx;DVD<%1pF`g`|&6Bmc{vOFbdfUw)4B+A-?e?zyhB>47AYXbMgEEqg#vwD^!luvVqH!%x<6m&4aYYG118 VWqIrWCK6zyN^}qR+4@d5fjfgc5S>l)(Uwp`Ng<^aB!omOR8~j@4n;^%6jaG2sHwPcTH6z|t-Wh@*NOOR z9QXnJD8$$fX+nL-VP$*#=FOWov%mlR`~?7q@Tdj5EqKVF9ibac6q@%xPC^DR_q+=+ z7CaUz;+|H~(Y_bxgky+`8%=MaPJ~oEbeb1=AI=9y3_7RizUlC@Fd{*R#xkf$;@dvU zl#>a5kyiRKzEes&;iOgsIP|oMxJ`{z(J0TGXmiOY=yPAHkc%0Xe?)gG(v)yisxcOE zh75LikXfe_G+gHmaFI$*-IR?yUMxHlwxHnE(hAP-dxq8(G^AnXnkTJeu(`Ki+Lk#P z^E^hFwV{lZaG4>kude~#EMeG3zAL`5m*q1TM>>W?%)<<&aIF_i~^IRo^7nK7EVx5Itr>I7G2A|6# zhqm(FJovW@2Num(22^HsB;wc?!6k!d|CwFVEXe3j!9@6Uap5b#rDodttGhDrFEDUT z2DJEe!vI$53|62{r$Jv022Faj=xh*VmCo8%U>4Tl2F2QWUONw3Xj0-$Le=0F{i#8x sBI`C`HsKD@PszIkE#X@g@VnQFbcy(0LEkIz9jd)ev95*tuoJ+8zkRDO@c;k- diff --git a/target/classes/com/eden/room/feign/CustomerFeignFallback.class b/target/classes/com/eden/room/feign/CustomerFeignFallback.class deleted file mode 100644 index 7e9ad311ac2c6b8a42b14a14546412844322f2c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1114 zcma)5U2hUW6uq-Rp-63uiqiU3tr2SCCdQ8kNRx^oX|fh04T+BfOzE_{Gh~>x;a}-f z6HWX9{wU*_1%;qSUgpldd(WA3=FWcq@#Py4J*P)`%Fz8R?c~XG@j;dzW@(qvN?j^x z_Zg)s)efU{L-z%v^*}0d6h~cQj(Imkr5NZQ4?EmQmrsjndn!kao&-G|`JykBZ!~r% zLJpMQh(}gO!Zcmh1Vk<-6)j+q}hDvT@ z1Fx_CXs9nCX&)?CXWou*Jfq!tcWrBA;x92ge|lOa-NiXO(`H78OHeGUFW=U&>4~Ov zBi;Jzgq}KajLPq0Wo0BfawIYE1EsX(R%(U&+zYfB_@kk7bKju(hL0zMs4o3%FxJ^4X?4#;4|9C{Uw9*w5J5YX#_Pvh$FGn^ zge0u1$b3YGnAy7|_8A+G@>o}r;u>ASzA$M(TtkKt(>l5w_$4wA(PN+7I)~g$kfq7j zDbjUp&?YcNbZ6iQ0XIX}@xjqOLv&hlU&;G$NvTEB(wv;!l=KGrJt_frlWtKe;i;qI lWc`b0drsUh9&}Tgwr1kWAefMEgY0&4%pJOm=cAr9>UMwKcqsgQW6TvCD()C(tPcbd3(?X4e)_-h>a z0sJV$*nx^v6)&w;-tm0?=9|y6U%!3+0ssf_pba~1xG$iil@EitA?F1=+}-OJwn8e& zptJnNQDqGd$wwV}0#-+AVq}Pp1f2XHeb_&fGl?-MjeRb1c!|2Sl~e}HU@_N!{eIAU z&X0hdVKhNibfUZ(YkFaf4KgTeSmHt7x(WK)DKj~BvZA?lA8}4&94k|zyujic3dgdp z8OM~ZnbeUruc1x7V(MDJmM7_o>7xCYpWZT^fc@Qta4pRQMou-^rvX zWG|a0vrYe%?f-4t_|e;}Y3Xqbul0Y4&V8TX;k~ z9Ivz@6P~8KXD_d0FSLy%+M3L1I)T5OW8!WReXtd|C!X9)6-?i(Wtj5t;m?$S$IElN zAiAuA$?^>5s~n8as0b?p1T^>`0BAG?T!SV@trWouw0Yg+{B?d;KY;MiVayt=Girl# rEx~DCGW^CB@Gjis+*3yaLPQTF diff --git a/target/classes/com/eden/room/feign/TagFeignClient.class b/target/classes/com/eden/room/feign/TagFeignClient.class deleted file mode 100644 index b6afb81499ddc5b817b2153751b5d7fad01c436a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcma)5!EO^V5FLl4X-g<+3WWlvN>t@gtV)GT5K;jJkWv*T6_=j8yOYJO*IstLsrWSx zd;lMXc;1wXKn^*qEYCc@dGluW=dbTSi0Fu(wCPcs9t+w?*&iD-axOblX(_0;|7>`n zrb<>`8#&aa?+aQR>(nY=6)fn*e}GrR*kzIvwz2?^OkAe4m5Fx}obS#~`>(;VGpelD z8GqKLjtn1L>%8*XSrk1Qx+0ZjUTB+63YGDdD=y^~M>5hjk?IC3-?Kkac@7*XTT^8! zNa{(i(phblYiS@_PzRlbmfn2(n4rYd{qtF0M%h%3eJIsm&}#RD{TG*fQbC620#9%0 zK=5H1g5|8(p4SVZ*CKc4J-QJwXV%N5%^LC7ic4S9z^?VNtBRNh+Q73dcr##(^{vrt z{qrz$L5B;uW8-k~9ovI0=XTiuMT!vC}Yml8t z6=~iVQP(G35ywL@I&U(%9ZA=Y<70sE7tC5?KR6R#1W%ocd7vf^sO275!lf3rul@tH zu9$@;5lZvW8SnU}f7CpLMioxp;`Q`h2%o*i=b29|bi{kkDjhYivCb=x-na(LXzjgp zrzZR;tVpDj7QnZQ$S&4!rDsw*l3nG8y?J$Z&;5`XZ5^lDsYDLcMBx?MS{o;vG8(-c z1ja^uGWJ(H@hyHe_MA`9s5EXmmb_zjf|X) z^JsV`M_@j^iP?!2tZ9b|SVXKHwla^1M(|xm#Ss}|@!*2kcO*Hg;JcI^uFx&y)foVB z1r^qbR)O;57l@u*{zuVt8Z@M^SyX1q=dtlSMc^-QNe!_0Ny fN_S`zI(0CM3fgc5S8wr#(ikQ2NrfgGl*81>Q)7meH%; z$kh`^3K=*?<4foXSAmmP_4h}Y{E9n~RlXBL`i!Uq|cQDdyU zfZNDOMxXz;`{6BYj&S^fj=}X%BsvnFJ`X%+qyrDc|1OMCO#!%}f>4^-R2X${7AwHOK6R)!QA`%z~51Ex>W_CQ*REEDgj{Iy^!v={Jf7C z{QK|N2AY&J@3fd@cFGGMTW$eSE58|g(s#(*G@^v2Ob{#TE`x`LHJij>z+)PlZ_PXSuo@c4*jxNbXX;MRI&EIm~U;Y zBjd_rQ+HI!zlyF>^zX}t)c8ljD9Xp^>zs(VRQi`qpf?RCEjd{7N_swB2) jC+pRy(L>OElpOJxo-7{ml%5shKqM3Q9Ca@enY(`gCdxtH diff --git a/target/classes/com/eden/room/mapper/FloorMapper.class b/target/classes/com/eden/room/mapper/FloorMapper.class deleted file mode 100644 index d1ffdb3e9570cbfacde0c3402bed2850c73e6463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmb7?O;6iE5Qb+{LYf3f%J(-M(+j>-y-*<$si=_*t;mtn#=C?Ce?;qbRsI?WegHoT z_1(2AyI6|EA#(PecV?fN*_YR+XCnGS$1OT+(GjCwDnl8Vi!e#FuTsP4WZ(x$?{Yz=?67h>`9!Vp0%BXp3>oIDN)imZN(~^<@ zuDajmL7d^%D){hmBpkS73wb>C{3M!p*$zZfLsQ7bkxYvU_89caat}xf{e=uxYy&`AP zMCyNmjmjd&h8x&bfP~|UJ`%%6TkJd*!%T$&WOi_0s{jRX4XGj&7OdB;*;ZuKnN%vS zmXtqudW}~ElFm5EbRaKO2z%dkcFAWmsZZ?MK>Gi(A{Wb_UG76xx!|9Zd%W94M%W{s zG*Nc}Bc=tMnm9EXE#lL{uR$LXYEuW+BGe^H6ectF%^1d9C$& f;znKCtV3+kc2TR{pdH}ux-0hHTmjF%>*e4t12OW6 diff --git a/target/classes/com/eden/room/mapper/ProjectMapper.class b/target/classes/com/eden/room/mapper/ProjectMapper.class deleted file mode 100644 index c32760c7dba659c51dc8bfc1e62e958a789d49fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmb7D%TB^T6usjM-y#aWAGk2Mu}0ltT$pG=f=bfFjjOSpz#z0_7>xd!3qQb*GM=_0 zrIz?uH0|7b?m4$-?tTAweIue%+RM;xhKh_9yP_o=T~mG&uZx$8%jmdNZSp5>wYXQe zY^|hMFCSDLzikOuc$V_<<@#+dJRdzL_qtef8 z2a$eH%a#>XfIicSI%G6u%eu#PPYFh~e-fSjta}cjIq7wU`Z9!3@i&PIYI+@)Yhld5 zKf5rse~wJe4>J|DxfB-86-xI*t^nv!=_0+7xHMaH4U?pUOg@pRxEC)sxDH19!_?Cf zjAo3_QCY!h24LZbKJ-UH_#wr84; z=V8cz+mulySO? zxCD(R9yZfyU+2AfJAHe9c?E!TIB;Okfqeqyko&xET3U@TgakHDPTdikFd7-*Q&)th zL7>nP1IbLJIf2Fk;KJ>zfO3yZsuiw06)+*`MA2#4N6mS+*|@|?dkNolBz#ZEL3sT< z#oT!W4o?zlpUDC37>$6&H)<;P+zgf1VwwfqaE+=9yw<>3!iewO^HETy^Lj-(L* z?}||Ld_Lp7l2RFFgp#P>$W?kk*_ic*oQfW9hm?H*XnYF|$W53Zp^de~h#OxijV^rB z+6Lo*wH$p$6@?JT7m0Q% zlHZh7eklJ?|D?5X!YQNCgj3JNBQC~bcqzH^VYXc406y_TvDIr4Cg@Ci@ql_a=@8Pw zF{DZJCxv_FpUSSKQ%!?3m9{dTlL4dGOAn@xD9JbwPR_~$oe!Y0`G>6YyF~)`okz5G znbSSLw|;>3H#^@8?J8tjQR(wxnRAvChfX zJeKj>bTo|irj;=zh_k;4A`1jXyqOkbG)XYGiy0jImy6r*)V&(v!MB#Cc?C9iYdwnS-_#fVKeIrX6_XNnm<1Z`!41 t9;z(gQ+k$z%JS{eehz9aD5`}Do)@d=Z36c1)-2&VC z{s4cJcqU7`yK#%rhhcZ_J@?*o@455y*Y_Vp^nwnWwAZA4M%#&u)d=Q!hcoal`D3raCShIASVC(EmVS%=uBd2=@F%_8lqStC=o zI^?R`^Xe={2r{@O#6+Od4EB8bu{w|XL` zQ)!=jA-u1&1tsyH{YCsN5!62{uU$MVF!$CnFy2?b03Sx@c)krr*hsu=qSi8_C0fR< zj$55k1D_^Njc&o!qIT|Df%&#SKKu^O-Go*Ex<{)yXsrUY2GD(4M?_u(rj0*Mo3xdu sx~bj++Ri~Y)$7p19JEtGY6lFuMNqE-)I*L(u-9mp9^>0U4^N1G11!o~0RR91 diff --git a/target/classes/com/eden/room/mapper/RoomImageMapper.class b/target/classes/com/eden/room/mapper/RoomImageMapper.class deleted file mode 100644 index d0d321e994b78f78587b9d048c8093f1737c84d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1505 zcmbVM%Wl&^6uk~jLQ)_NN!yfH=#zBANT|Caq*e$iQYuhWb;D{BkJ72^ab%Ax<=0s7 z0elqVj9uA|9pu7dWc%K8&z$@6uirm@6440_>U316cNTR5;fSfe^gMUy@|hUPKwI=- zFq(QU6Sh#yhl|;s%cWuo?DTka%kMY~wRD(?IkjlxLg*XM{>FXo3N8G=qN+5U7B$9l zrnnA$ykGq@_s23ZpKyCVk@LmSjuMG2FUicJibUkzWvH}t#kCCN#1TnW zXG(dRYw0QEcR2F=8RK(4y%9`KU=A2h0W6Awxau8uLge1dRXaFeL?t!%4dRMsl@>}| zGtDr0eJ({msA&Da={ZyO)nX3CCxweLGRNANQArCz8&Tt9itGQNc#!&*RDtl**|liD ze71%bwZgg0wMd2;!((F$GM0FFItAg!i0VLe zaUb7K;-445ZGbz}y$3fcWWbwAz*ZEnT}j#7>FXw9x2Xq1Dio%jqUi;_EZ6)h3o;t!#~$nz+NT3NYsle{=nqU^glqr+ diff --git a/target/classes/com/eden/room/mapper/RoomMapper.class b/target/classes/com/eden/room/mapper/RoomMapper.class deleted file mode 100644 index 8ecbf339cab8e564262ef899b580d093d353d6a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1396 zcmb7DO>Yx15FLknkQADRmOz@4LZKx+l)Z2(LZSksLJFvnIKautn$%@?9eKSK{51~z z0DctWc{i$em9{AdYwhuy=l5o2|NQ;+n~0uMzeYPXddg@y7J(R>W2M4@j18l`{$Q*^ zPxvD8G@_obLM|iEBKCI&r~Hh2iIIV4;ronMj)XZ;{wJ<^D2&iCqq5CoR3FMo#7&|F zqj&$q`r--&FY#nf^TE$UKh>P-3V1Z}1}d6B=;bCDl_Zk3j+4m9P<)oL90lUsz^f=y zh8w9OSlJ#ZJ@NRIk57arM+nCrcK|QVf~3kB4-)un$S4*%EhnSim8K7YPNqIL!j=}U zd~_l^WUf~GS+#Snkkc%}pt0Tmngb4vmbL(Z-jF`7*C2iT-M;Z52}eS|`H}YdeV%=m zG*5G#$nF<7u`SQ|(fFxWrx+^Rn#L%Rfe%IYQ2Q1rrR}bJF6yzJ*PKADE2ai#wI822Z+F39|84-qP zvpBP1`at^QWf1&qZp=T9Y>BIkFwXd;iRxu^oXR*=aH=q>;#0#a(M?>{so}1c5WZ!X zO}~w`9Mcj&Oyw?W#J-R;wwaU~1XdSDIwJ}TBD?5Q5 zw_SJJuG?;a@j;%kw}7$daxZ7xq=%^MtR~h-R?|mw1#H907Vb;*n4aKU1^YJ9Kl!v& A>i_@% diff --git a/target/classes/com/eden/room/service/IBuildingService.class b/target/classes/com/eden/room/service/IBuildingService.class deleted file mode 100644 index 5ffde0b5804aa31e0a68b2d585544517fadf89e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmb7D%TB^j6g<}#f-gixd@fuV*w~o3!>}OHgrq)V7bd#8wm0=+X-&B``fD!y06)q& zeOYOZ=z>7cnKR6sIeq_leIueH+AYy`iFO#(hQbl1>ITxWq-*PPs2CkKb<-PY!V<3L zd-!E}11?=HMYUUcpFeReP}0%Dkv601nNathb;*4`5K8z%MzePbE2FX@ZI`RS7mTj{ z%YHmYO$UFU^U;0jS&@%Or^8)a(>>RQ@ZXIwnvfV=l^{+qp2^u@YaaXo{wU+L zOI$t@h=)yfX5O25^QPZFpI-oQ2bV>-C_;-sH5Q==Og~ggdonfzI&Cjd6Dqifs8;yL z)r852I!O1{8?z~+iIE|-_%4CklQ8d!zc9@v!U!D`D7@Kz1WLXfMa(2x5b*xh_kNRz z2b{Vnyf+(gC){ZZSu~=aibg1Q!zKiB5?K`)#X_eB5V+bba)9{cgEJ$X8@M}1`{t2V zfx9=`uc=2)hi|mBN|3oDZMnL_Akb(p;8Wd*Zmk@qH|r%b3q6&A=ve0o+${Tz#@ZrXf}&~JnVyGZe0{qF@EZ6q0g8Dv z3i22gFe(t(wMqPPu!p4*lo2{FRRA!x4+mKa(U>}1PgS9op^hA?4vj38_Bw`>Y;yB& L@+soZoQCsXY2e&v diff --git a/target/classes/com/eden/room/service/IProjectService.class b/target/classes/com/eden/room/service/IProjectService.class deleted file mode 100644 index 0d6f93ab5bc408f3ba8d388ae458f323ef5e39d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1165 zcmb7D%T60X5Uc@%!z*Ckfh0UcBy(XA$_>N;0g@#rSXwCuI8Am(X29M><1vC?ML;OB4!B__`iR+crv|_MeT8-se3g(Tt8-%KS4#VCy4_3TxVT zp|mPBLts9nsok?Pm2NDTuLju4>QU{|rM?=0r9p#W#Y%2yzLl0H>A;Z$*DAP8h5Y6u z&K{Uz;=^lPvN+e)8J|kuPIY7h88D$gy`ZE1>mKtRb)HtY(-0HM-!_rut|qWE$e$hp zjoa0@Ikqx*8}F#WP5h;*Dc_< z0QZI~3QQLGG*IAqjHfYyae$#BJ`s?HCLE5x5lk^PjhPJ16hoi;L$jF6P^AuP9t&A0 mp;_!_Ucz#QO4_erH50>LshBThUc-8p`r1u>V~g({#T##nt~|2< diff --git a/target/classes/com/eden/room/service/IRoomService.class b/target/classes/com/eden/room/service/IRoomService.class deleted file mode 100644 index e15cbf287b7cc4cf812e0d33a0b1fe7796318382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 zcmbtUU2oGc6umCpN=w;RHp=(MHU=$Ue%ae59>#`L)T(GfLV_nR@mg<5968Q5{u&Sb z0DctWI%(&$O+gb6RqE?|kIy;R*S~)M_z3{p@VWx+3cMt+6my@u`cTTCD`HLHO{?q5 zfO3zARAH2QGGHR4CS#}FJz-~zCR+H^r0)<|>2W=j-Y2G5z%^GffwHM1P<6y0WI9ot zz{jhg?*4_rJ3KPSdGCA2OF5^!d=?I9SB3*5I$s2VlE9)ht9+kpCj1O*yOnADCzhvW zYRdlSK60vwFy<=tk-*j*wfT~Ehd{*`h4omTL>|-Jn2h>7>`AuBIIYfd!s_M8G&H{1 z`j#W_XeEpln0ifkxLxBHksNdUGKXVfpXYRBtmh!bHAa~BG_96H9%|-08gBufkG4#; zDYwqCt*eQ$hCAf$sp0irhFUQfZ)t%eU(pdO&={8#A|Z2lJa3!R(FyOIkv5m>YL zT3x9IG>%M1j?JW;OLa=m`4J5gUyFz-O?%^iAB4{*MyPVj+9J6m&PqFiqH5omNwOB}Awgv;NW#uC_=oI0Ecvq|%r_+r>g zkYQsxZRk?uA_1IKe60ZLWxT>r#?=C@76>fjr-Hu{T*s{{)G&3lbprrHb+|blT7qR8 zT1m4Sv!PqCYO^w|HMng<&9v}NF`2t~@;$ge%C43G0pLMe@em$akPP=RJh6%pcckbk cf~>;^3f{z68LOU+wQXG{J;(41T$P~p2l8~5V*mgE diff --git a/target/classes/com/eden/room/service/ProjectTreeService.class b/target/classes/com/eden/room/service/ProjectTreeService.class deleted file mode 100644 index 4abdcd398bceff2dd27100e9db716db38c15133f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcma)&%}T>S5Xb*ho5t1;y!ix$dg)%gMLY^ZY73Fx*JMbyY<6L@$-{Z@0emQN+6u;- zhhgSFGyLY`^XvTsz&)-~T%@=pT-O{o!SA_@uYs8`U*vn;Yh|^o)w7FSbI9&axh@*3 za?{3)aI@mL^VLQN-Eid45)#WjTf($3wbQW+f_wQ7?jbLIqqt(Hf|scBjW$m8UJX{; zuCqs(J1cw_N`5j{=(mGq?=lV-Z}Ztkz)Xs z;3q#W#YP#|`;mu@MYsVs^5do=+zgc;y)r^F!hRHDqaQwKj5aZfFzREZGuq5(3!^Bb z7$ZZ5=|{P+jQg7SfEpY;#0@ZNnonkf=I#y&Rim@RwwYl;OfvGZk%+3~ z+!zWhEs>1U{1w?*8H}ehQ=enB?0lzQPLnS_KVwc`YL#p?uFFBL&kT2}mKxJ+&7$fRcIgpAwUZWA+03oL|A;%cR{vp|6Scp~Oj;pr zmCj8znFn(^W+N!Oa2Cbl~)wCkPMBLJi$R=LcHq+V? zOwjT))25mP)6J*gGSo{b8|kt}%Tfoq&Xg|&&ts>8U3h^qr{F~vUc$=~Dzn==)nwW0}2jew~P-Ie29+}e9W#K)*MnW%)((DQE(KWDEO33j$w}k zX`zD8n6yK|=lFt-f>S&9)AP6Odlh`iR$uYx*9yL2;W!H?6nx9VckJ&Z`}>~J4~%|f zAJy5Z7~@EwrW{#fNAG4WL>p`TNQuNQEFDp_P+?Wuw6Y9EZfLjbiIuUqJ?I{28)zfz zXW121nJt?3!Y4$ZnrPPsXj+fqz9y!bZrVjm#2X*c>`u$%2-~U4BxLhM2+T|5@XAx$ zDx-=GeA*V1L${n%R^hRjOtUo#aaKi5(-H)Q2pQry8s+{HXEhxHG@K>#xMtXDw9(RN z8%<8HET-Ch!6rS@tcCQL8s+nYO*5#0RM5Fh4%|m>J1sinDF<$0a!ACm&2&i$)OcJo z!V>C6OM^J;GBT6uZ;FVQ?#{B7t|;2(*)2s<%rt_Uk&GpRXK5=*6!G<_(ImxJd0vy! zY@B-6O`{PO6LNV(M(Aj@lYG;S5ke+YM8O_2wbZcWv9Vv(qkM@r)3rz!Yq}!tt;afw zrGzYVcx9<|jL^6cGCAy4BNUoUCIWHVS`t0FWhd1r-SFC0dJ`k73sX&9OZ9T zoxUsvyXl?~^~~1rW?4boz}5tVJ3dp+SHoeP%s;Bvx>AYeJJAW6cNXhc36=dGo80jbK5B5(a6e#@CG~%iX12cjdL(wpkfCl0!?sGDo~k&i2?6X zl#_7<8%{a_U+Lr_6uE+ffP)JdP8r5jf(|ZpaFMW`HjL>GW(Z-XgINO2b}%R4Ev;m$ zxels!k;CdCcuVIws1cOfVbnR8FNEMQ7C2ZaghdV(3$(<+(%OLcFfPu+x}h`UYY$Me zJm6$*Km|Pm^rbq5K8>eh5~g7hrc(-MVI^jx19Pw*l?Y)jVyMDyRMRaukFK~{N>&|y z!F-&eO8tQa_!|o)8H=P6ESAc!)Gg2wc*)n#Xu=9Yi|{L&$*+eClPVgcRk(_Z=aa@^ zHK9DTP)rr{7GqbR9lM5ftu!_O-)WS~Xp>H(Kt}r+g!$b;8u!0lMyHHxkw*_1YtGP> yJ=$=-7?#oXCsq?aLlce06K=ZxqKtLZ?9?}_=(U!9dFY|vIu~6>i4xtp0r(fIoQK5# diff --git a/target/classes/com/eden/room/service/impl/BuildingServiceImpl.class b/target/classes/com/eden/room/service/impl/BuildingServiceImpl.class deleted file mode 100644 index 4537d1f303916dac78cab68f106127725b0a2612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3436 zcmb7G-E$LF6#w0PbVIr=kbZ#(LV=Pd!14{!QVIxCO)0ck1QggN+jMEN8#kLm{hGn? zYX+I|MMq{F2N@lFP(B=o7GdDsKfu3$fIj)^6MF9MCfRI)#fRLxd-tB-Ip=qO=iL1E zuZ#Wj>6Bkwl6=DItvWIn9R&KB#;+%ZEumWCUadXaaPG=COjBNvT?TP|oEP zgJE?dsb?i6rD&3&(^J-3m-bd|>tR?tT+mE4tBk67bu6Ro(KOwZO;y+O3_B9Kk(Tl~ zgK)gQBLNfB&Aud1nLAA>*IJ<1T+r>7K# z`3Y514i&Ovig8pXZw!%yo|H4AvZ3;KXE9(-sN{ZwCxyIXOsPplQnR^CIgt^2ae&sy zZ6vQ`l%!e8GNI;8hK*4VP)g6rs#b>R=}w%Lr(~&Msu_u!5KySZC&LSKSTigbRLluI zby(&cnTkQN&l^$Gnrs#f%5nJr`tO~?V_$8id#49dR;E@a8Cgq930+H5YSl9Erq19~ z$#8+qK*f#}rD{ZYnM#JvInx+mXc{r)) z?(@d-EDEe9h!=Q?pzw%ZFp|mvl~?$p5{0fxUC*gth}P{dd8!~qHz`xeG3gPp3adpd z#|i;C5pk>)u?d?+?88e8v9iSJA**YWaz3f#cn>Q9>@O|Qu~rJiX2}YVcg&_o-`^`< z|D^c&rN`H9t`YGT3;}r&CJGGUHN}~qi$8r;{Q3tGQz-C=&WU)H`*#c<-~00Ml?!Be zo`2qk?IK>pb^+5O-o`s3-o<+i>ue_vXD`}d{Porc4O#MG*4p}y-74PnuDY~HbR$M@jMoVKmho=d?W48E*e~$K@4)ZFO?q`hEVCfm?QISOk6|6w6O=@|gLI%Y zZLkbC(jt`~ZRf#x@dLH^-A}>af~^(&Eri8*-8i^65U>K0WAWPvUPjklG#tMR;rI+f zk$JZfrsYPOA|eg9(KLhR2eJ4J=6kj-u(vMsZnfEn`0yh+_FIIuBS_C%5uz~SRC}Az zgHiOkqL<6;$PPO@$btfm$J{(IUiwerr^WW@=6}THp|R|t4*!fd1PAvj1>Hc-`{RRa z@Avt)1=<2juOha#EwE{4ke~J9;4E72pv{NNXyW8W+Brub2H3TKes{#sQJelLwBj^L z?+hh$ipWS>!7V3mtyn^TdwVUC`paSVV;50G{}w5hX84~VBw#mVU4PR)M>@Oc6XR{n z2|Z0xA@`$+0YmM$R&cbI0LSBsOtb3S|nA#e==e???=)qd>4Zz(6x;u2L5zJ>i& z)yH`2r^I;G9dTThs(Oi?f~{lQ#YLA3cM7}kGI4Z}K--h+K{p(Y d+@m+S=bxV37cS4wnw$>_a^k~axep!!{sq{iCT{=$ diff --git a/target/classes/com/eden/room/service/impl/FloorServiceImpl.class b/target/classes/com/eden/room/service/impl/FloorServiceImpl.class deleted file mode 100644 index 4c582204369febf264c17396fe68b9af3bfa3557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2828 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 diff --git a/target/classes/com/eden/room/service/impl/RoomServiceImpl.class b/target/classes/com/eden/room/service/impl/RoomServiceImpl.class deleted file mode 100644 index c5913c49ad0241a7b03c72959e9b801c563b2aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27221 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 diff --git a/target/classes/com/eden/room/utils/ExcelUtil$1.class b/target/classes/com/eden/room/utils/ExcelUtil$1.class deleted file mode 100644 index 7ee60094096cb186804e4c5c5bb8a2392f506c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcma)4$!-%t5PcmlW1C50LLea!63CF)ENOvQ4j?3BY-Hg@@)8a?wZ|=cLVMbpCBW}+ z;S5L!A(Ri`qY%{tip2#*nyPxQRaI|PRX=}yKLPLnynuCF&LfYFJfSOwUbV1k$Tj1( zjN7(w-NFt7cY1HV$epyr%+bNv5i{XVq%+f=6NXM4%3!KTQaM$rRR8@jT+9f-g){O{vpFB0w>(o8u09Ydj~ zE*hrL1<-_J#YMwA;d;M;s z{gPq#tQD3HMxHNJvN+nL)gH8J-A0wr^G>H(tF#H#JKffxSt)MQ85QWPSaID<*&yVw zh$V{4#6BQJ2&jJpJNZ%gf`!lKOMOK;-T8?0tAu8WX6Do)nw`@eQ7fUJkS4uVtRX`u zx4!f!M=b1 diff --git a/target/classes/com/eden/room/utils/ExcelUtil.class b/target/classes/com/eden/room/utils/ExcelUtil.class deleted file mode 100644 index 8c8ab8a25b587ba8cbd34e3c99f97636469dce4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19050 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 N`59>IS$>Y|{~t$w191QV diff --git a/target/classes/com/eden/room/utils/excel/Excel$ColumnType.class b/target/classes/com/eden/room/utils/excel/Excel$ColumnType.class deleted file mode 100644 index a80d4e53a59c6e60d07ac0dde2ab9d3e250de3c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1383 zcmb7DZBNrs6n^g7ty}3P6ddxdICUE@1qI(W=gcy7$pFKEg!rj!6-v4myO!uTe~=#( zRE$Q$XMdFO+-{K(O>|A}Jw5k4_c_lwJ^k_X%Xa`vco>6-c^MiOBqSx=lo7`*zAf>{ zauf-f>}~Gci9+S}u7rCG((2|)dA(9%kV}r`H|>qr2L^*uv2DXGS$eBwv>0Zqb*HHr z4a3%4hu(b8v|5_+s%}_XneVBy%Q=QfZDYN%`h+2Ts9QeKu?l5MZ9S@PmTL@i&wHc` zSV)GJ&h&UyEIAFzf1zsH#;V`kG29J($D$J{;9PsbP)t|%^+R2=bbD8;d9G>i<}$qr zRI5&1x3+ZGj!}go0HhsM9IBvtVb&DZZGk0y>^Ib|Urh{ujIz#P`=Id4`104`sp-Whq2=l$v zT%fNk*Bsxi8;?!iPdONadEQ9{7x@e(72HQoLY^V}|I?#j3=b4sK|#SFhWOjGf&>N> zs2E^KoP8@UnntW{IW`FxN@uzXTHDz->K=)l`bTPp4I)2`7>02P3?t-CljV+sc3!PUma7kEKR|jL0L}{agA8rq;ZBAqGRSr=SE+UUS@;TZTa60B31Y{P1FugM z15XKmqo8m^W4bLKL8%>s@rv3Fl>_xnYNkb++X81WOYsoqK)N9lQp6%I6i0pmK3yy2 diff --git a/target/classes/com/eden/room/utils/excel/Excel$Type.class b/target/classes/com/eden/room/utils/excel/Excel$Type.class deleted file mode 100644 index 560c1baad258c3850072c79d99c0ddf604241d9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1387 zcma)6?@!ZE6g`i&`%%i61BOEo&S;^2_tGWLHSN7j zvRhG+qEpeWE!{OaZJS%R^%|v!{LRY{UNgLXr@EoLgz*fQ>hWbw+w_(hhX0|YP)Kgk zVR-u{A=S8HH)`<~eP7FQ+^T8o7DKRP?%BH6a4EH%5MfdxNzD#qD^@!Ly&$&54q!ut1pADh z6G-pLV;G~^C-!y-e-Y#85%_tsJVK4gsV`7YAai`r8TQU>5M4TWLyEr(L0 zAqlcaWMvLc&5Rzymm2#7{|EA0bRpUWc1ebgUX(FGUX=DY`IIP)uXu5iNYE!?It(Oe zL9jUTvBzSFfZ#!v9VHP75_ehL&)pogsj$xYiEdrPlH1!8gd;k$@x} zBX|T=c)hYLJWY6giXyy_?>j-ICf(g_xe2YbtuzrT9f9#GTTNC)MK4I`4%N{TJxfBl S`0I3d)M`S?^m{#*i~Rq3wCOz8@qcVS@~Zs z`~W}7c!!6KRI1PgOwXBfZ=ZAS{rT(r4*=MK*A6^);DrM_4!mTLt|%|?W$Ubu3^Fw- zQCB=}3>pVsF^G>o#EsIHL9AG+F<2@~sVuib$vy1yz_YP$=jZ1{mfWWD|~+-mrrpIV{ow*HTvY_=M;gSQM4Uq#1$j!{-=21yfiyJA4e zbVg1OxfhVdWM3=4PbN~rkn%}5M`0NwpO)($+OoA|BqK~SOv_l&HX(t6h}&V_#eXmr z+9x}Oxpv0HSh-#&T^hdxLSu)-G*zJ6xGy{so*pK(9gc@Vwh>4xd^{9J9D6t&t6{Jn z86p2OZ?}OKsYXeXlsFxQQJ6#hpghq&qXMV#@t{?ES7oqvaY<_!8!tRaJeZIu{Vu?!RDN{k#%E`pGOWg7ig<$(_5?t83L}r)d^sRjKx`CX%<+H0@ta>3fvg?NFdyVTLj&X-jgNZPP8agvN{Xg zodwq5-bC6F6Pnn~fLZuU0>J}s;O diff --git a/target/classes/mapper/ProjectTreeMapper.xml b/target/classes/mapper/ProjectTreeMapper.xml deleted file mode 100644 index 5da2acf..0000000 --- a/target/classes/mapper/ProjectTreeMapper.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/room/BuildingMapper.xml b/target/classes/mapper/room/BuildingMapper.xml deleted file mode 100644 index bb1724d..0000000 --- a/target/classes/mapper/room/BuildingMapper.xml +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select b.id, b.tenant_id, b.project_id, b.building_code, b.building_name, b.region, - b.address, b.property_nature, b.property_cert_no, b.property_no, b.land_no, - b.sort_order, b.building_area, b.property_area, b.rentable_area, b.self_use_area, - b.supporting_area, b.parking_area, b.account_id, b.building_tags, b.is_hot, b.total_floors, b.facilities, b.image_url, b.create_time, - b.last_mod_time, b.create_user_id, b.last_mod_user_id, - b.del_flag, b.remark, b.reserve1, b.reserve2, b.reserve3, - p.project_name - from TB_BUILDING b - left join TB_PROJECT p on b.project_id = p.id and p.del_flag = '0' - - - - - - - - insert into TB_BUILDING - - tenant_id, - project_id, - building_code, - building_name, - region, - address, - property_nature, - property_cert_no, - property_no, - land_no, - sort_order, - building_area, - property_area, - rentable_area, - self_use_area, - supporting_area, - parking_area, - account_id, - building_tags, - is_hot, - total_floors, - facilities, - image_url, - create_user_id, - last_mod_user_id, - del_flag, - remark, - reserve1, - reserve2, - reserve3, - create_time, - last_mod_time - - - #{tenantId}, - #{projectId}, - #{buildingCode}, - #{buildingName}, - #{region}, - #{address}, - #{propertyNature}, - #{propertyCertNo}, - #{propertyNo}, - #{landNo}, - #{sortOrder}, - #{buildingArea}, - #{propertyArea}, - #{rentableArea}, - #{selfUseArea}, - #{supportingArea}, - #{parkingArea}, - #{accountId}, - #{buildingTags}, - #{isHot}, - #{totalFloors}, - #{facilities}, - #{imageUrl}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - #{reserve1}, - #{reserve2}, - #{reserve3}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_BUILDING - - building_code = #{buildingCode}, - building_name = #{buildingName}, - region = #{region}, - address = #{address}, - property_nature = #{propertyNature}, - property_cert_no = #{propertyCertNo}, - property_no = #{propertyNo}, - land_no = #{landNo}, - sort_order = #{sortOrder}, - building_area = #{buildingArea}, - property_area = #{propertyArea}, - rentable_area = #{rentableArea}, - self_use_area = #{selfUseArea}, - supporting_area = #{supportingArea}, - parking_area = #{parkingArea}, - account_id = #{accountId}, - building_tags = #{buildingTags}, - is_hot = #{isHot}, - total_floors = #{totalFloors}, - facilities = #{facilities}, - image_url = #{imageUrl}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - reserve1 = #{reserve1}, - reserve2 = #{reserve2}, - reserve3 = #{reserve3}, - last_mod_time = CURRENT_TIMESTAMP - - where id = #{id} and del_flag = '0' - - - - update TB_BUILDING set del_flag = '1' where id = #{id} - - - - update TB_BUILDING set del_flag = '1' where id in - - #{id} - - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/room/FloorMapper.xml b/target/classes/mapper/room/FloorMapper.xml deleted file mode 100644 index fc88629..0000000 --- a/target/classes/mapper/room/FloorMapper.xml +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_id, building_id, floor_number, floor_name, - create_time, last_mod_time, create_user_id, last_mod_user_id, - del_flag, remark, reserve1, reserve2, reserve3 - from TB_FLOOR - - - - - - - - insert into TB_FLOOR - - tenant_id, - building_id, - floor_number, - floor_name, - create_user_id, - last_mod_user_id, - del_flag, - remark, - reserve1, - reserve2, - reserve3, - create_time, - last_mod_time - - - #{tenantId}, - #{buildingId}, - #{floorNumber}, - #{floorName}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - #{reserve1}, - #{reserve2}, - #{reserve3}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_FLOOR - - floor_number = #{floorNumber}, - floor_name = #{floorName}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - reserve1 = #{reserve1}, - reserve2 = #{reserve2}, - reserve3 = #{reserve3}, - last_mod_time = CURRENT_TIMESTAMP - - where id = #{id} and del_flag = '0' - - - - update TB_FLOOR set del_flag = '1' where id = #{id} and del_flag = '0' - - - - update TB_FLOOR set del_flag = '1' where id in - - #{id} - - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/room/ProjectMapper.xml b/target/classes/mapper/room/ProjectMapper.xml deleted file mode 100644 index 3c8b5ec..0000000 --- a/target/classes/mapper/room/ProjectMapper.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_id, project_type, project_name, project_short_name, region, - address, project_tags, project_desc, project_image, manager_id, create_time, - last_mod_time, create_user_id, last_mod_user_id, del_flag, remark, - reserve1, reserve2, reserve3 - from TB_PROJECT - - - - - - - - insert into TB_PROJECT - - tenant_id, - project_type, - project_name, - project_short_name, - region, - address, - project_tags, - project_desc, - project_image, - manager_id, - create_user_id, - last_mod_user_id, - del_flag, - remark, - reserve1, - reserve2, - reserve3, - create_time, - last_mod_time - - - #{tenantId}, - #{projectType}, - #{projectName}, - #{projectShortName}, - #{region}, - #{address}, - #{projectTags}, - #{projectDesc}, - #{projectImage}, - #{managerId}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - #{reserve1}, - #{reserve2}, - #{reserve3}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_PROJECT - - project_type = #{projectType}, - project_name = #{projectName}, - project_short_name = #{projectShortName}, - region = #{region}, - address = #{address}, - project_tags = #{projectTags}, - project_desc = #{projectDesc}, - project_image = #{projectImage}, - manager_id = #{managerId}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - reserve1 = #{reserve1}, - reserve2 = #{reserve2}, - reserve3 = #{reserve3}, - last_mod_time = CURRENT_TIMESTAMP - - where id = #{id} and del_flag = '0' - - - - update TB_PROJECT set del_flag = '1' where id = #{id} - - - - update TB_PROJECT set del_flag = '1' where id in - - #{id} - - - - - - - - - - - - \ No newline at end of file diff --git a/target/classes/mapper/room/RoomBusinessInfoMapper.xml b/target/classes/mapper/room/RoomBusinessInfoMapper.xml deleted file mode 100644 index 50a1ad6..0000000 --- a/target/classes/mapper/room/RoomBusinessInfoMapper.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_id, room_id, rental_status, business_status, - available_date, decoration_status, price, price_unit, floor_price, - floor_price_unit, business_number, business_condition, - create_time, last_mod_time, create_user_id, last_mod_user_id, - del_flag, remark - from TB_ROOM_BUSINESS_INFO - - - - - - - - - - - SELECT nextval('SEQ_ROOM_BUSINESS_INFO_1')::VARCHAR as id - - insert into TB_ROOM_BUSINESS_INFO - - id, - tenant_id, - room_id, - rental_status, - business_status, - available_date, - decoration_status, - price, - price_unit, - floor_price, - floor_price_unit, - business_number, - business_condition, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{roomId}, - #{rentalStatus}, - #{businessStatus}, - #{availableDate}, - #{decorationStatus}, - #{price}, - #{priceUnit}, - #{floorPrice}, - #{floorPriceUnit}, - #{businessNumber}, - #{businessCondition}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_ROOM_BUSINESS_INFO - - rental_status = #{rentalStatus}, - business_status = #{businessStatus}, - available_date = #{availableDate}, - decoration_status = #{decorationStatus}, - price = #{price}, - price_unit = #{priceUnit}, - floor_price = #{floorPrice}, - floor_price_unit = #{floorPriceUnit}, - business_number = #{businessNumber}, - business_condition = #{businessCondition}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - last_mod_time = CURRENT_TIMESTAMP - - where room_id = #{roomId} and del_flag = '0' - - - - update TB_ROOM_BUSINESS_INFO set del_flag = '1' where id = #{id} and del_flag = '0' - - - - update TB_ROOM_BUSINESS_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' - - \ No newline at end of file diff --git a/target/classes/mapper/room/RoomExtendInfoMapper.xml b/target/classes/mapper/room/RoomExtendInfoMapper.xml deleted file mode 100644 index a09246f..0000000 --- a/target/classes/mapper/room/RoomExtendInfoMapper.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, tenant_id, room_id, room_record_number, usage_rate, - office_layout, window_orientation, rent_free_period, min_lease_term, - workstation_min, workstation_max, floor_plan_desc, tags, - create_time, last_mod_time, create_user_id, last_mod_user_id, - del_flag, remark - from TB_ROOM_EXTEND_INFO - - - - - - - - - - - SELECT nextval('SEQ_ROOM_EXTEND_INFO_1')::VARCHAR as id - - insert into TB_ROOM_EXTEND_INFO - - id, - tenant_id, - room_id, - room_record_number, - usage_rate, - office_layout, - window_orientation, - rent_free_period, - min_lease_term, - workstation_min, - workstation_max, - floor_plan_desc, - tags, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{roomId}, - #{roomRecordNumber}, - #{usageRate}, - #{officeLayout}, - #{windowOrientation}, - #{rentFreePeriod}, - #{minLeaseTerm}, - #{workstationMin}, - #{workstationMax}, - #{floorPlanDesc}, - #{tags}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_ROOM_EXTEND_INFO - - room_record_number = #{roomRecordNumber}, - usage_rate = #{usageRate}, - office_layout = #{officeLayout}, - window_orientation = #{windowOrientation}, - rent_free_period = #{rentFreePeriod}, - min_lease_term = #{minLeaseTerm}, - workstation_min = #{workstationMin}, - workstation_max = #{workstationMax}, - floor_plan_desc = #{floorPlanDesc}, - tags = #{tags}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - last_mod_time = CURRENT_TIMESTAMP - - where room_id = #{roomId} and del_flag = '0' - - - - update TB_ROOM_EXTEND_INFO set del_flag = '1' where id = #{id} and del_flag = '0' - - - - update TB_ROOM_EXTEND_INFO set del_flag = '1' where room_id = #{roomId} and del_flag = '0' - - \ No newline at end of file diff --git a/target/classes/mapper/room/RoomImageMapper.xml b/target/classes/mapper/room/RoomImageMapper.xml deleted file mode 100644 index 50a670d..0000000 --- a/target/classes/mapper/room/RoomImageMapper.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - select id, tenant_id, room_id, image_url, image_type, sort_order, - create_time, last_mod_time, create_user_id, last_mod_user_id, del_flag - from TB_ROOM_IMAGE - - - - - - - - - - - - - SELECT nextval('SEQ_ROOM_IMAGE_1')::VARCHAR as id - - insert into TB_ROOM_IMAGE - - id, - tenant_id, - room_id, - image_url, - image_type, - sort_order, - create_user_id, - last_mod_user_id, - del_flag, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{roomId}, - #{imageUrl}, - #{imageType}, - #{sortOrder}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_ROOM_IMAGE - - image_url = #{imageUrl}, - image_type = #{imageType}, - sort_order = #{sortOrder}, - last_mod_user_id = #{lastModUserId}, - last_mod_time = CURRENT_TIMESTAMP - - where id = #{id} and del_flag = '0' - - - - update TB_ROOM_IMAGE set del_flag = '1' where id = #{id} and del_flag = '0' - - - - update TB_ROOM_IMAGE set del_flag = '1' where room_id = #{roomId} and del_flag = '0' - - - - update TB_ROOM_IMAGE set del_flag = '1' - where room_id = #{roomId} and image_type = #{imageType} and del_flag = '0' - - - - update TB_ROOM_IMAGE set del_flag = '1' where id in - - #{id} - - and del_flag = '0' - - - - update TB_ROOM_IMAGE set del_flag = '1' where room_id in - - #{roomId} - - and del_flag = '0' - - \ No newline at end of file diff --git a/target/classes/mapper/room/RoomMapper.xml b/target/classes/mapper/room/RoomMapper.xml deleted file mode 100644 index df8ba3e..0000000 --- a/target/classes/mapper/room/RoomMapper.xml +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select r.id, r.tenant_id, r.project_id, r.building_id, r.floor_id, r.room_number, - r.room_digital_number, r.room_manage_number, r.building_area, r.rental_area, - r.billing_area, r.inner_area, r.is_virtual, r.delivery_time, r.owner_id, - r.property_nature, r.height, r.load_value, r.room_status, r.room_type, - r.create_time, r.last_mod_time, r.create_user_id, r.last_mod_user_id, - r.del_flag, r.remark, b.project_name, c.building_name, d.floor_name,rb.price,rb.price_unit, - rb.rental_status,rb.available_date,rb.business_status,rb.decoration_status - from TB_ROOM r, TB_PROJECT b,TB_BUILDING c,TB_FLOOR d,TB_ROOM_BUSINESS_INFO rb, TB_ROOM_EXTEND_INFO re - where r.project_id=b.id and r.building_id=c.id and r.floor_id=d.id - and r.id = rb.room_id and r.id=re.room_id - - - - - - - - - SELECT nextval('SEQ_ROOM_1')::VARCHAR as id - - insert into TB_ROOM - - id, - tenant_id, - project_id, - building_id, - floor_id, - room_number, - room_digital_number, - room_manage_number, - building_area, - rental_area, - billing_area, - inner_area, - is_virtual, - delivery_time, - owner_id, - property_nature, - height, - load_value, - room_status, - room_type, - create_user_id, - last_mod_user_id, - del_flag, - remark, - create_time, - last_mod_time - - - #{id}, - #{tenantId}, - #{projectId}, - #{buildingId}, - #{floorId}, - #{roomNumber}, - #{roomDigitalNumber}, - #{roomManageNumber}, - #{buildingArea}, - #{rentalArea}, - #{billingArea}, - #{innerArea}, - #{isVirtual}, - #{deliveryTime}, - #{ownerId}, - #{propertyNature}, - #{height}, - #{loadValue}, - #{roomStatus}, - #{roomType}, - #{createUserId}, - #{lastModUserId}, - #{delFlag}, - #{remark}, - CURRENT_TIMESTAMP, - CURRENT_TIMESTAMP - - - - - update TB_ROOM - - room_number = #{roomNumber}, - room_digital_number = #{roomDigitalNumber}, - room_manage_number = #{roomManageNumber}, - building_area = #{buildingArea}, - rental_area = #{rentalArea}, - billing_area = #{billingArea}, - inner_area = #{innerArea}, - is_virtual = #{isVirtual}, - delivery_time = #{deliveryTime}, - owner_id = #{ownerId}, - property_nature = #{propertyNature}, - height = #{height}, - load_value = #{loadValue}, - room_status = #{roomStatus}, - room_type = #{roomType}, - last_mod_user_id = #{lastModUserId}, - remark = #{remark}, - last_mod_time = CURRENT_TIMESTAMP - - where id = #{id} and del_flag = '0' - - - - update TB_ROOM set del_flag = '1' where id = #{id} and del_flag = '0' - - - - update TB_ROOM set del_flag = '1' where id in - - #{id} - - - - - - - \ No newline at end of file diff --git a/target/classes/templates/excel/room_import.xlsx b/target/classes/templates/excel/room_import.xlsx deleted file mode 100644 index 27ee493f55c1d0265cc8809127e6c66497e27549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37592 zcmeFZ1#lcs(kD7%vRJY$X0q5~W@cuxn3-j|g{dV{5 z-oWoBn}P0z?nK|sO-UQ4j-2LJ2+Zv_riF|sw3cd)f{q?ZSg zVSpN7f0HHtq(I~W0{}R|0RWVLBr~wHqjR&iO8MR{3BiaVa^wHPV6>V`ORV^j%Ks}D zOmRa*0-LoyIb6S^+48ra=P=rPf_A%#f%j~+dwTH+U@3*vt~cAdCtQ)`#~4SVx^jRI zI$PF1Tr=vy1n=ABciJlI0!?^iH={`6Ccw- zmBGlYR$-FwY{SFZ;^pn;*^DUl9?|{v-N7Lmg+|{Uip0+7JXa>OVql zXzO77iuGrpo?Is(M)#`BBNE~%ZS`b9_VGsAQ9l{^jF}gST^%X{nXk*k^@K~24l{2D z$4xH>+t#;~!Yul7S=I)Ab3u8?L^i<#89&`ZW3O=H-GsNrHq01i$VjvU7gfnP12_nB zwT$}Bknf;?E-^{q*3E1fhP`#^@lyUmF!syp-Cpbqh^%2g<%nxxQ5>pk3Hqt)Nbi%r ze?<~+7t6k@c1A|Q6+(osc4e1QeB8X!|MB3Mu0}3P_Oucx8~jtLb}fLt!BsY*r`9^! zWu_PQPU*4M!|SA|N71!$!*@X2Zh)3ybq)we<{Ux6wtQ`|^Z0?rgH~YacyMuqG^K7? zJi-SDyn>!VUqF}$4G$jo$L#!*P>ry$XeAAKRs53j))(CoDx%Zn2Z{@wu602?#YefO zul*{?zz<|#Vv~1)ZjdpbPbO^@ydnM>bxGUkDhd$lNFdbF{|R+xM<-kBSKM>H>qvDn zV0<}+dJ*dXoD}J8g=HOV&5A;g%kHW-;Y7_WAu+L!^3sUq82WByZ+pFooBNdG?py__ zUE%$rr3wI-2nDv=d9mm-SZdv&9TNB<_B3mNY9@ffpuMuGxt~omvg4=jTpLLYZCiW2 zJy^yz3=s~_UCnutEY3VTUn0+x&a7iQb6U1M5?bKLK8nNYH@)<@KhNHZ-KZHA-OZ1j z)aH#J#@t&`1p8%hYNu(9L7OF3jOBNGe6R~#LXuOKQTA(d z;tGV~VcB;8%}j1V=4?quZ=;tk`PRf%t_g9&b}yGRsVwqU7U{$Nn&TV;Mo9h^W$xm3VWA*h?cZ>7`N;gx z>U}h89k?;B3-uIxm?#Pjk@Je2#M0k6>OO33aX$%aQ7dN+P9b~FC$P$!V2p31KJP8* z?LLV)7pk3PrBMS&@+{<{TP?2dIIrELmnL$lAl~H~J{|QlCgCxt2R}A3knjCe0Ty@_ z2FEa5g2m6~jyk_@Y^G`sw$2jD+Kg80fS#*E#M0x#{-H@6G4v_g90O`->s=z??zu zvQYiGH86j$aXkOdB2hd2Uo{etFqA`RK!7A-=rAjyLb6C8p}4=OJq8r1;0rp2meD0( z!t0&3e-g7e9;|A13wu|==04cP6%w9*^`>3@CNr#{sj)~eKN%d-GeU*6q0p`vG9qmP zah3j3*Shob)5RTf>yV!JcK5DtVV>K;RxQB)K;o*YK2<$r1TqAF2m#1enEP3*0633aT5`+b1)qU#Ac#c#A{$$p4O%uiYo#PUfIV6Dy?*KLNvUng;bv>ljp@c)3RrF z&+Ey@-M9;aRkMnWuq_6m_w?5V*~o7*Tr=ndPZjO01y3P93Us*Ov~SoM>*5A~Cj2!q zo@cUi16*lV)ysfh+h!p|ViKHDqGjxVD`>hl_aiyz7N>93O967NjTMDf9)oinxK}o; z5>^zoEJ~K5G#f$1M${Po{Kd^wX z-K%Pb;4DTpqg^i3WGb)CUC zt7AtBQCuO!aMAY8#L4~RAPk*rSlKFwd~qYEdewyW^1=8Mu)#_eC=v4 z;~PGD{DQi)V0Rs|yuSaCPzNzf9{G(_)~*-~K3HHblgII_af0K0FO38%|~?8IXo370r>BgRyleAK1RO$L`mDMc+6>6c=FbNySc{`A_k z$bk^)^$=wo=elHW;e9JKZcIO$DZU%87+121+b`MEYqN-HLik{8>;Kezku!TB_|F*! z=}($)wRNy`G&44K`qz}gLarO)1jGL7niBgI+ zVri`bzP0SHG?uC@Z=6r=-4Z93cKFFeGC9Hm8%6NlkggsY%wPMamA%!ls7P25w@Ty@?Er3 zEPZA4mXa#@YVz|nTW?X5o8F44#`GBe+ieL4J(a;M)gs(g(~D}Wok6RNK5N~fNlCu9 zt|bl{M*CgBohntcx`z^XP94&fP6c~$g1h5mr{t8~&0zQ1{HAE)q?{iStxaikgU+@D z6fjq8R1-gR4?Vc$zPO$Am}kRUNkHwY?j=E_0Z|KGxp#YMMojFLu`i zSLzg>ZqaU(A{fCMvvhk16(a8@ovXL@= zNtwLtP*Qs7!=qhRMhT4>;=Z~L{jua;s>>+0)wq$yzFNIuUhneq<#by`eSkXQg1(;cj z{B8|Nq70u zuqnW2| zXhLoUKV>=P zn>#@W)?yzQ^ES^HQ>(L2Jp3~BYY08ASnFOKnG}3)dmLF8o^m@Eu~B2!_PSG%dQY&Z z;Poi`r3W3fZ_3GhZQYDUm1Y2#ba}#NenpmuCwYqyzpi4W7j)Yfz@+US)gBmu%;%;o zZDF9f7zgEsCv9!ufCDg%gQJtSHvr=JvV%`90pi=4k)po3SQ3#7$eyxe-Q zr~va71Lx+>KO(t`Yh4pwIqCl5tXx zS-l_$CJe)#R%tgN-TX+o?vckA_#iQT?aYxY059-8#y^Vj7k7F7Qf&CpGzwy~zXa)Q zdz0&)c6`D6hvT&B^NQ&o#h+_OAO2E2dhMPDQoQm0bqrY27hsFK5PwAR>OXk>1QMf7J>1RsZk|48)eV~#{(XmWVPhWnWce&+g>1k_`K$^~Ad zKl+7K7sWu-D7{}ns)zIwBh{@5{u&Bu(J{$i`aeB*b^XCm%qlJN6@4Ugrg6M>4rv$j zs%AQC@+Ok_U!#{?a68D0axy~e+S8ojw|*cRS_lw5{ZjG+ z!3nMo%u?DnpS(aQjW>R?owS@nc1WP6940oTM4P3&P0Amyh~OpQ50UW|G0^YCQk zrh@vq@-DxOVrtG2@?73hF29aqXT7~fXqhMDI+euD>av9&k2m9O8i}<}ACp|SyesUCbNazsk>M0Q02c%dNIsb-Y z>hX`_C%z2mbdsoGO!gx@JWa<4F%L&LiidKymrH^(U2(-3=0xYfA_u5ew-nK zCBkA1$j$WfYzp})d$1ehn`~S7N3bIXyo%}GpVGZELHecx_@BD?pI!-zVEpbwKyT3K zRFT22&>^nSK^lwkArB~^4=6an-G^9&J-Ouh80GoKL12Qch#pY?#m(x7<97?lSAKIn z?Y|laB-iKZU4Ggg>{f>Nr?pl<_N&Iqrv z#0NipCK}U&hIT|;$Nh`mGW4sfh~y-SlTbn#g;nP@vx09siyC z?}V=&cl{*HCw|zwyQ5)m3S%?a!|tQL=MFy(fs! zTavbODj0q+sVFx(l56~fd19VMk0&YT+l>onS<|Rm+_!BZ=ae7D9(e}8G8A#r-ihcQ zG2d&f6`hQ$aR2b~z(tPc8&c$WT9!k0zq;COeXM7Bxl7}Fd1&={I6P$|;C*=_xHfod zfaZJI)k}3*TDWvvTEMGIeVDTz`=)#FzHD;Crtls2ppA3Og2xi0Ifi%f9G~*tMCqoE z?mma5r)QbzG82#VT!fg1?M0KO&)6hcgpPWaw-(4UQ-^qRx|DMYpYk=mmY$(m|_I%Wjn!g(z zl6)kFspZ`ucR>@D48<+bv4}%;ttX`7YQXHT;P=ZkAD8l5@t|CQ7WdVi(A#7cNdmt^ zz;jTeR?M{M?IWW7q(^#^w7xlXhFIU=aAhFaY&ZmEVBTA%Q+SUr3-K1nd~oY377$7I zkQzmah-yrAa_dO*Sky@1Z3lJS_nu-7;z9W+J%T_g;aK?tv9AFsUB#QcGpi0ae^Re) z1+uL@$Vc+(N|h2;YB=J8(;P~$x;k=nG<_e}^;)@h*AGG1u#^NJ^4#!nWG&%|b~2^v zUBk?JgRul%K6W7IoGOr#a_`-$JngEvlqrwN8VGMgYjxVBzrZ(k5GLE~bGS3pQIyQ$ zTp|pe_g-l|nY3!$PXaI?%O{e*?N?Q-uAH*K7lRG(aeCcoHXkPju|3+B*{@jU z`yiAF)W6(gdo%0_V$e20Z{PM{x9HkhJ0HH)4RG*sL|iRAxjLW)Q8AM3J0a>=GuJhK zn~sfw%Yu=0Yg8bpu7%%~!cZ2{(6I=GliJSJlp2HRfdR<#hmuP0aEzWoLdm!42=~XM zpGFB+C{L#2g@x_j$rH|enF>pVW$!oYZA~SbLzOBk(|f$V?`Ar^`j(d$nVQCXzkT^@ zb5e|Nw}qw?B1SZKz38;{_F+-3xi$6k%|XAKO%ubf)|bn9+g9&==nh`Zj~;hdlYFUs zpYMiueV)&{z*aZStUAO<+dCRV{A%{w=7xU7w#fnUv+Z!kbm9a&uM@9*F3dAMgmPL>)FeCY{-}?GT7&0sV;5 zKPTeAzUvoqhya%m!CiLtb2d?l zoem@k?4-HKZVX8b_qqh9_Q?2Vp()os2uZfw2mE%`hS9hFjp@ncImUkZ6ig?5+bl!H z_jn`wkOn0m36ElRDM)#gnl7+b23>krH@oWHkyN`p&`0RjeO^*HU_@diKL z=DU29)?X)%s1ENUK*&?-@vPuTuDgc)kr zs_NBvG<4KA-;_%#02aooYk^zs^@W>k2m0WmcGiLz!5`$@3*XI8_j@HJtYAnNfft@B zX65@D=PrgG_G}kSZ|Ar~NNbUXIaEpP_3h!4f5Obr)d+8?7;gvFVJZny3@D&}>-I#+09uC-J^;Rr{w-h}Jww@?`s35GUVU zi7M?InYX)=c;-)?L3aocIDCL#d+m)&SU-s0!6Gg^!Tj@A8jk6>wN3~CfR6?MfcPh6 zI6Apo89Tl%k}qo?N8*TKy+m}qlsiBYpzxlS&eA8P(l6cF)iD>Wfe9ck? zPoK`>{rxN}%(H!Oi?`Wg3pkBOfab~A&4U_3kif;*2`e;?&FV>eO6{RD4sWstOpw58 z6;25l(SZwmLt!k!@|Vd$MkKYyVP@$D#8Zk+@0NX+2gKERSI!6@Y4`0In~Q@Y7@k?n zBUk=ulF>IDo$DBfrIVLSev8*^zAEk3bt$<#IT@;SZr8NIZoNa+*4JNjiVl%ua=DJ~ zYLZcP6z5XZwCofHsfP9%7QtC;KCCL1dOZwaUge&{b37~Hr+vN%&p2!an(|$SoGvLl z1j%FU6!qSH%zW{_io(-pRH`eVDo8pK{6H3JPX=CqV==_*EwJW&ykJEV&i+DWTyP_J zqT~v}g?>6JpNk^wYFTxB?G|-KES#V{zku6Ruw>zso?u2QC{wrT5sGXUOgTy2EIMl< z7bffT^tk`|e#)Q|ho8hCP$WP*ONP{~@(`fk-wht!{=7;d2Q}gJo#Vugh7hI8}#KYd)FEWGVm}`qnWI27>yWnHz zQGwQ(7O>uE3s7@=lSwKhYryMX=p90OT~YG ztO>;G*OQ7jS98BBDQMbZAi1-IV*<9uGN{FBU-)M$XgK~CQBYjS_Oxic3%s7*46yp| zylPWWzE}-4Uw#Yv{)q4;0ZFD!zpv%6MxRp+E|-!86PkFgreru``8vb&m;)wwYu5E4 zJMH+MSK8Ocx;DATZ_(0etsF%$ur&~E$IoD(F7^W1V1SkNv+rt{b0>4SL;uvE#q^k& z1|`Zp|Cz{~{BXg>yLE7vU=zJSM8_qmds?@~)$x9Uf@DV>W*Np_oJq)wH)*-zmL%^9 zg;e%dN|znJEVG-1%-of8R>J*Wfa}9&XpIWT zDN!l2bjk1Am_|R4I0D`M)}nrJxK!56@3F%)mo5j0;MDGN$y9D-!R6J8p(NYVM0c$U)#aa2Jq$Z8{mi0ps9)Z@ z2|~7wDgRhABub$rG9XIp0L+qIP_dr_&EIq)#Yr0~k{i{7S)9`>!Pgtq{|r()8!8h2 z5I^)S%Drl%n-sIXu|P#z02zUdMqLNT9TWTQXn{PQNq&MYHwQ|ahuBjo z?-g4}R4QKE7ns&wqYQU=XQnPM1lYk592m1~s1F{^;N$)ReH0tJSRzNbfj(wFHrBv^ zLbe9RTw}=QSOAsYzXz)%N?nS5BtMpYW4?svU%74Vi+kqEFDa8(7{_L}htgK|!K^eFqh<3rH#*)Wu&uqYcoWglEg5}EHx6Ubv5G15H3Li)qzdzDvI zi7!h$jW1S@Nx>Po{)DofF4H0P2AA`B(UWB(_{lA9FDVkqsh1<{JWo5sbdHZ@ttlx@ zIPj$O`^f+gIiQ;i{)_YFO5^5gS{UE0r?{AI5-Q%}EotulZD({<Yyy!Oz&v^8dZ~Au1s%@aNkxPq-*gOsd)>#q%R?qcLq%s$ zr6$7i@$!7!4bJjx#aV70`k;npWi5Xd z4lNk(%p1S>G&7bH_5QO9HV?hY8=cTERf~K+&s+Aw#GeG>J{eqY??(G9frUll^RYkd z1@xEkZkGpz3j`8M;Z&4*3-wbo&3{$*LnW0U4ZE`ver!XD43u%_#X(gPp~@xQ5k6LY z=cf__PCZVIio+Sz1J>z6@QtlOxXg~V!hx(?CsU0bhh0#knlgBkSv9i@!UpBN_^*UL z%n{Kpnj<$7IEPmP)Oryr2lVES`LBH}*?m9s$p(r=P^-#)a=VgW1reJV$u_?5UEOL2(YBd7|M(Ndf-=~abrDUpcHE87_|t7NEl zh#KINpPDbG31PR@Z(&trR3?Aa(n@^)!(kIb92c1+FuOv*wJ>q2mD$3xR%Bd<(;4AI z(x5T;Yx8tM?u78ZU8#(#PCKnKfBW{A<(AS|dXdO=A-IN)t$1Atu`Pzz!v_^wtSjs2 z3>3YcMol=mB8wbtgY;gx=)uJ|0k@S3CCbHk6BF>_UVaXcJZpGYHDF$R@T~)5ju!QG z*DfD+PEvDriwDt`rP1D3%1%JBT z5MwGu;w%>{f7eBHcIfO~5-UV8R5e8^kMjm0obpX(N_5@xzf8|v_-HW)K~Eb!f|hGu zAG8B4)i|0NI2ao#IXS#O{qj0XPf=dBK@-4eVf%&0YPq4)$gh-jJ{eEW>&FW)pN-9? z`LT@MTtr!pQL7K11GOL+^vPOZKw@wdJY@8vsmV>Kn%!QZd29*G%8^maQ_E>GljDe6 z>Y%4Ywo6h0mm&KC4u(B?>ANU$ez2j1CDmeprUuPAST*#RpTWH zY%^w;S;>>Ew%5O9J{MlBGuRu3FGzbYmX}>B%gk}RxhO29ZcQn1dU-~=pWc_Mz~s-F+_7-I=bWog@n2-BDWb&Ow+M@G3RqdwIiZ?`gDcOo)Y4p=6wqV zszsqaZ+~VN;dzx?UX4vtPc2U;k$kiQc8FbI6J1ucUWdr*3>WPWQEdzU zj9ZfBjpvLYZ?&{;qWf}eGg#`wU?yh6re1vz{!?(CkYK|L%V#v^+Yv~ZI@lc+ugJwBUb8+VIwPwbO!;h1HP@9kI(pR1ER~MvgBr7 z$=qoYfgRPTge5?61T_0#A~pi+YF z_ZE24Np5DorXyPR{{^L5YL_d_nYRny;-?IaH+-@86Oc?SX=YRd;{gbV&<*VO^E44=?F`zW79q_5Q zphLhlfuu{!O1w>TFsM2KlZMaNFU>m^3YjgZQ#!K}U1 zvi|ti42=A9Jhh5DY(FUlSuDCPYOd`^I>}-u%4=~||25^E!2C-7TJzL&G$m+HD7mol zH4Ra8v|rhDa7xWz387RQyb>lQJM_Pg`ybs$07?s~wGSGQp&+4REq*A9C=$pz_u-ra z*ipVVz*}nWX}MY~pg`To=px`%FP~7FZ$YelNzb6!9!8W=IT3o8N-;0M_Y~dZRa;P9 zbV*i4e##if%BX2TFE1TPOKW|(zuZ1qjBJe5t2r%EdDnm|HM^tmL`0`pG>HX7*Cw3> zuND(?qMdZng67DVDri8T^1na(yf-A|c(BkzQ~Sx#q&^q*3k6eW$VP#qg~%>7#WTa3 z&9M(Ak>rXK!gl>kED~-Z_XgaFMJ!@EtnGzwJ#_p<%64kZyo68Ni(w+5AFq7tLKajb z=3hv7XAd=_zHhm)0o}Z7R!YSj=+zcy*?y^?JK%{9{(9Utsq(7PX~s?Ee__VhPdLQH zA&>mR$9#+Uzg*$AHa0Rh_?H##f$!nV=^(F30&TAkYJx7Cf5^FjJw!IB`1 z9z*11#Sr1KUmr9?ln@tI1noIMn=&jk=#$+c4di?fpCp6@l--iIleNCeD7^P=75Es& zkl7zY)QKQNx`nphe$^e|fKV2QHh_T49T7#fg7|T#9f66P&^VX5KH4EffthT`s7KuX zGVPhiy0<>9YWL`=tSom#*R!N~gzfOCW_HE%si?U08JQ{`ddj>Nnelu=d?1F2fkl7Q5qM9^BkaO-hQ=N>M)g)Wo|H!voWhs2*$GqnJsHmq1hSuX z5I*G)P!MViHW}>8j%QT4l*bWNq95uVMnq_KIoMCIu;Cj07}6kPPGQ_Qsf>IH_$ohD zed$`LOiC&m0G-hymWYa?dfDbmn6QT89E{ay4AlX!LqlJ*;muo8F=I|XT5fy5GwsH>cE)q@}Dd5Vo8Ha`coOyqhoMR4MRd^NP}27FLBy3v#WQ!ef&iv46Lavrk>6r6ggh-);gsEO4W=!ytek_0vpr6!RSg9AXiGHFV-L zKM6Iq{f%-EfZKH9sy_+My}L**8wlr5{kPQKkv3{a9XSb{ha&(-b)vj1bSe?tEOivg zi4qBZ^}V5+1b#ejg4zTg>u&iQ_miInsPucMT%+|C8ddS_bY*5cvFAO(y(QCP5w!wX z0w+Sn(9ugIB+rHdx`d^GXe(|E^GH%aF(>|K0##D7kwfjml((c0%3nj2G%3h^n#cok3bcvjM)u=F=J2=mJ-94i2u3Ym%< z9BJQU_Cu$1-ZQ0jh#*8DedP_mF{9Z!Gl)GJ`!2nJ@R>F6*Y1Z=Q>1;bX@4j<4XGX{ znW)aT;7|DMG_>=XL^oQYwBjLJiXH>hZB)%|Fg+-UwziXLQe$1!bOlw|bEwsX4a(s+ z^_sy_MZRPO#B=BTCo`vDY*!Ksy#lwU&q58`S-JPIk%iOSS>y-j3TW|EmQJvImmb$p zw{M!FUH#9$s1YCzxaB*H*zsZt;0JLxNnE zt6u!d<+Kl^WmEh6nK<0ZDMq)p5|X*2qfH&o|Nq^%IK*9o50Oqls#*D;4fPDMO40~2 zQtiJr6w_}*)q+X<8$*Gy{@qYdi>1sULw)|sP*Y%tzYVqdIRkcF+}(?&B#2DwVaW#| z$jj)5Z3y8IhSpKW~^_CnhavUAtJwKdCc zTX%tR{To{YK7yoT{SHb;<XAT+hPhrb`r}I6)sKlH+e_mCfi&I%FFr`h=q{V<$Y0>w|(p9E*1UjXtkC{heme zl%IL}l2%zMWs(w)nS2q-FEAs&r&}EE;9?G_2|D4aBOS`?l^QY;$NUb zKqd{Z)wdCdO`_eO0M=ugrC`hu?2XKPDt)x~P@=v>`eR5F-I_HiwI}Gf`)PP*DDK8< z2)mvtp>LG982+>6-B;A>$Us&n{I`~8{%v_eu+@KKd9WFfRHomS|FA{13Od;RE6S%C z!P*E>+S>9u6att6G0?G2NsanBAD$rqq`X*Q>4wDsl#i+aSS)HlU>GJqum>JMWC-OO zRRPZ5rw&GF^#AG8@(BqrW-<^K5>?jT{~6WI%lA?9AVjDBEvl@)QJn&#{x_%sUZXVX zH>#4o_n;qyfhGMd$$_E1qFQdsd3Fkm`Sm@o2PnxMJHGg(%PAKQ$;8(8e`M3xAs<{a zN=Tw{j5fBZ{J)L=uL6>r;7)x2@qoRGZ1A5wfp6z(AVCrUhyiVXE&Ke#{R0Fa=NwzhF{ zP!tm+RM*fXd~N$%F)(zr`&<3r>_Kv`XI`ZP0F$);=KTMv3C_sa(GWy*2HKn)K*~X# zH3HQ!O#jqD6EgtDr$67ZqeK+sfa)Xu=c;CE*rL7(6zCIG;B9_Wq~G#^GE0|4N){?^g|;{7jM z{D-j;f_QL29$1kizM9{~&iMgZ%}B0va0@*W!>`z;AREnqXbJ)! zA<>C34D1D8765NRr@&DmPyu{^8~%R~^FObG^_-bDs=#0C7PyH3SAfg(4ictZ?jILR zBsOxU9$VhTE_3OX9IxB)A4f*WE}i(`N5rYz4);hz+co`nj`^(e(jE7{H+l7_jgu})@5dFtv-{3I#$mqe3-v#v;Ux5>O;w*GE) z?uinoO+rsi5#gapb!9$rulwfC6i1t$761{D|KI53erjFtYMw%%Jd81j!Avpl8p+xq=iAN$tU(xof5|}fwT`WcG2CIevsX@7Y_GC z)%QSF4ppXZ9=l-trsf535U!nlOj?uJuxr^xlIGpFC<{bc@virQZJ`qRL`B+2l84(A zd%4dT^_Oe8FZ{ebAUmy>v}TF$#JOVT%7ac+pRaUQf^ShtaQ8~tarm@*IIzv#&22M2 zBB(2yjQ0irn~sa(c&049ul;cw*v1JU_Wj=*^j3COf8w#UL6zqdWu<29ex{OC_&o4f zQ%h{>1rTUbxj$d!78$7O(%W0QbYd>+P_ZLNDqyTEyZXc6vs^$KYQ%IR)r9Qu_Fm-q zF!O#2v|nZp16Hr1LBoq3oISq~)OS zkC1S{oS-weZzSHDpN77hBj#}MmdJM}1#06uN`=qiajLytx}kwc2dDh+j}T1zL_v;o40>(`wEDgo2qNjsQtXmi4i(H1A_q&d_4a3qo)jZUr4!&=HJ4=w(MCk?#d6`ujtuEZQ&<>RtuFUA@s6+f@WOffAi`^}ml6Sx z@}O)41V%0)eFyctkAuT!oO0&jNQZoBMXsL(nG`5t1y?f$Aoi=SC*F-#r)rcOlJ;gV6?VflJsq1sW|ihxmTlUIwH@d}{^NU7nBD_yzT5R`&dquJ7Wr zOMmU6ZS2ULTivkZAdfxH@omvY;R`?mlm6?0)?(fZpevW9+q2cdR8QJ;6Mwp}EJTXE zp_rbLtwSMMIdf9(OXU0Utom6~A@2mAH@j&OmiEOCt!3f>JLmtkHIP_=gKpF*1KhT! zbG+sRy;ff26M{AkweG*!aP zi_RK!F&6V&60Dhw4zJ0egXMP~@R|7Lbdi&X9m_acZ$C(LDl?=Hl!7CTGXikDF7tp2 z$oROG!BjG*trd%@rjbxFVh9E2w=7eOJhMb{?$6x?1_l6=<(hPq+PRs! zRrWo@oD14fF^ijqAsl>n|05aDG_L50rT6K17yK5JVo}ZpD!4=sfNq->cYMo>2H{=(9$|!d$ z5v;S#ExiO;P}`=jOU=;hpP+bRN|ojh4v;EkzW{pt?6;cK+(Cin`-;GSDqGo^btaZI zRCIQ&u^O~ePAx8?yr=E4$8uKNx1#3DR7bTUrdD1a$0J)YM=^JvZp3i2%Ejx}+bM2g zE`H7)?sD!PYUgs83XNCdg@d~$pm-WN-Y=0@*fmzBOPn!&0X)>Fx=8jW@J&{rmwr@G zG|z7#01g>RxwH!1oj&DWKnGu}KFI76P+aZ@^8-^kR*o&j2N*lS$Ywl+~itNogTYUWKo~0xQcPo-$g|#wC@%?BG zqm3+B)9KAeY%0ZY1x0tDR^m@fxVTw9>t*Ksw1P6qu^D$J^A`ZqC3F9}(bWqe@{#?H zi(MG^(R-II`usJVc#zDpLD6S4rTCCSyt@X+8b@kKSKx^%(H|Y=;l1Vrk*$Wbb^?MH zoK==ZjcV{~F_3#TboqQD?LOxP0A1d@u>Y|k$)L7h&oQ|^`ste?CT5^u{PFa|Tl~gf zyNHQAACrC1x_``L5#iVOP&c+WYOrZjm*#z0HB5E6!s+pzb^alAh8v@3e-_DoSyS1Q zC~KdTbX_laqW4U{|jm6M`}Qq{w>(_W(!zqNX` z7vwL;Zh?-cplQL_O+9E@@a?FfgxkaAI+V#PExv~FDPJiokVn;H`;j=sxjao;f70G_ zt?*bS_Bb{ER)hrC=H|OY;*{Cgv*!!Iys16o@#cBbJ(A*b1`hy{#Q%G!Z?2yWnT56@ z=SFRJn1p%7pTc#4E?H{aWKgRvMl=mNF8vQ{eiz&cp2n7ofioXsGwDt{rFggdatn#H zmtwWNJ>Q}C@3-DEUe7*}I*Fp$J4hKX;U1Oif9M6b@X3)so$@Y z4E|U~>xIFc*mM#2ot-!< zmtx2HLsI5ssAX{dCVnnZN7L=W%IVyYbUoSTU=6Gr-U}4d23+%>nqP`v1w70MI%jb0g0`9^*}o@qG%H~=mMZU!;4DZPMbUCUvdxpw(Jk=E***)`iohi=m5$lB zs&n0sjFnT9rYeO;aJjLK)p4ms8M3^R8Z|_WmF+ii7$oPNIVqV+)cNCO0e>!0_;UNj zoB$YB-``kZ9Y6M%ed{)Vc&+HhT1w5;J4M$e19+wOC}0O{Q8i2os|&eCT{kOqfqm^i z``3B5FIrHvulQguZ!0===h;miRx&vgC}+|eUjY7vM6=v2??{=bi_cfjtO7BJGrurB z)jxO(*G=MiH((F6!IX4&WBlZVmi!_M0Ay+4mvH$=^}F|r71Gf+v>Q*)yGN2PpWPWq z(vS4uZ9Gk~PW)owHssDKi#;$;!{;hV4|hC_un+IY#Q^{eZi_4OLN7>0b3C+e*dDdc zi(UZsU&;o>ih3W}cc17AOni)i8`#bld}B%KrUYawa(e!jC;&$nC5x_>Ex5%C`U;HX zLEH`|WQrSA^MglAWl!4qgOXTO)zlv{ZqK`o#(8hfuS*PB0AOGK;Pr1D2z2>5 zGObgN9b3LT(qN6Aw53fAGoDE(Em))xv5>o|KD9>fK8Ff2O9@o6n~td+gqr^tHFgQkBw*}X^_%l(OrG24?Ei)Z20 zdx|T&X_uu4i+NH=<9dUP%f%^4LgNJ63D<*kaZ30LB~vPb`&u0)V#V%%rI2?7N-D`Ldl=MXmXowA;d0Hoo zx6{6=XqH$vp7i@g&yq$fbSz&8MEg$sL7n?p*aumOwsu4+TE^IJ#B%c>@Ua+U(o|~S ziqsls~0K zNZ%P9FSh?!`3}I<&0+l?jlFk3Q%lo09Igsh5R{IfLg+<$FBU)uMLLltB_JI_FM?OW zLcJs*k*-wfmlir)kRpU45I_h;gn*&n^H`1t1+y5XFcdgG0p)`Ny#wmI$iT!Y zY?3@CFqe8aj)bsg@ym%6`!-{{wywG(-j`Vr+TT%^Y2b|&9tNx^o5CKI?&0Re-c`c6 znim&niK`vujxd27GrrltxGZU?V0IhUJ16V=2Ds#$^v6n*rrX#t6Wl5;yASG3@@&Nc zDr{&__AYV%hIcXTuH_tNIkam`Sl+8stIDCTHP>ki6(%?s?96urvV|274X;Vt5sI&K zMQ`0C?p#A9Cfg8#pnp&v8!RH^C!8&`X+W=)U)p9I+0@kjG+Ye*OFWIxD%f7Lnv|H{U zfz~|h54M9Q?=0&afjWDSKwA@g$bwyG--6F-+Ztyb+559xNq%x`11SG@+;wvl$d=Y% zfI$2x1^ZwRGevHmH^7 z2!vf!WVTtM+viU{<6vm|dxGFZOnjF3hdIW zX4dMzIB;P;Rm07bHPCq`;N3Uvgih}jwNfQ=^B1*Zy1DY>;1)CfEw@1Vp7(M?oi?CT z*MW%us7>vwz#gmREUOJhBfiV6TWE(Z>X2=a8t;BhHD>6hmz)V($tms{9 z!2}RRkDt;B=<&}fy6Tze&%;)Ofh&7VAFyyzc+t1u)pwe=EX1k|Kdv>9aEuriT@q|? z$YVpkF1F!pbGwMk z?QoNkH_qeD%DKpz0S8Zk-2&eukot{+2ummHs|cNmE7hjsnX#c8qU+GUI0Ciknb| zG!5e{oPtJtIt3!(vvU}u5_y4Zy;u=FKljB);@=b;6+R|w*$%Q2Kom*+j18KWhf`^# zx=)^-s+9UM=cg2#Skh998cJ8H&1K^$#nR&)dFDT{NnDCAd^w~~$o3l8UX4J6hdZcc zR*M#Fb|r$y=JzG__-5S`Iwr>3x$&)OI^s)6PDI$=z*RK~Th z!(5m2EaW^E!@(sl`IqF%ez{zA<*RWJqllx%)02U6_nY)k#&*;xc;BpY#2qRk9V98$jCRyb&jD=q8?@5XDVy)gg0Fx~F(^pw+g zWFQc^fKNADQE79*&g7=}ODAF~V}nPa9R6y^xx5dTG395z zOfLD9Ya6fTh2&y11{j0F06{cPJ-O(NvIf6a7GLz@K+~xCsw^QrG&-a~qO;<$Iweo^ zc8&HEr^;WARy`J;Rk(3}jj0yCHWWM*wxB$m^|a!J4!iHkc;ux9~aD^Nx?oVDkGT z5ctq#&f~BM?}s*$$?6k-p)|NcfAF}FT7((n-p!Mnu`8vHt9n$t?2rGJc4B{vmYoo3 zDHF;OV4VE2wimE^hJgNTv>gL+*;Ta8%!hf(IZ&z-HV(sE** z&4%{KF=oXx;Zo44N~ph@*f$XFcJdLZBl`0v9iQo-=l)R12Yj4k)X>7K2Xf`_uY{Jo zq#-nbyxbjLWCsVjFNUW{brbEA{qQRd;UW7DF!NW!A9SSFX3dGq_&cU`m_?5Yp2y;xLrI@6;PWw@LQdJ9d0T2k}nWGpc_ z0fp!&NBRWWDiCGF4&-1Sct>V=-nX1v`7Q{}l1%gQh{?i%%-KGpVZQx0ivwDI2D|Jt)uQdXiB;)< z9Bs6oM8=!ef#$8ImeE?wFqvHM&f8*j)4QG<{Z&v5zT+w+^&4blgVG%0@7bsXa(4nv z5gC-*;W}Z9e~`=u2k&{<6ixWp3aBy0@`8 zO3Ic}-X@|{3RVxo*=cEuWxV1ORb{)ahAaWQVP1KNo-ARQIRG)rpI{>0ase8rUw^Xg`Sr-T6cO>KFk};Dj2#e5_Pk} z6>Xt~uBz4DQ1f{b=Gre^7eB^6x+5C9^;M{RcPH=RZu)dyn6ow2wFuSXsVbAMmY~=P zyLr1-f$-@r%i!ITiHAlPXZZ=!PR)3v>2q zb22w{e;)J9bg?NjZLy>DH$FqTMJ#80Ahp@`9ZoxR>Uns0`-cWWJ=Ot;|HJeBWp$iU zha3tSdl&*+cJ7Kuc)jR4=i;-alp;;!taHKCW-H$upD`|4{G43zb=Ej>u?d&OKga-6 zHi%3L${m=Wy6u3uVv!^A%oGN7@;}%3u{0iG%lAIkmCtu)Sy>`k?}JdGjsizjecR0H zHmCa_l~69POr+isXi}a?3TokX2`NJxNghbeP*qOWPui{rSJS@l(Y#cbonLb$yXPR% zrh@eH`C#H3TwC2!vTyJcE&=>pj1TwE=&i75b4l%bH4)g+;`xDXK&1XxMg+TP?s+9H zCc=!3Gm37XPNn{RqE%W$pF}~@i<<-IIjiizi{?iD8(GA2!~Lqcrd4whHEHdV-!l4D zwS8+CSG6Q6yg!{6XR3NXRF{3gz2<@+&3+>E_<%1O-=ZLkG~!|QV!K>W(^5DK>9%>4 zxPXV`v`HRbj#LXI6o0@z(6Fu8H$@4H1;$`b`En4I=n3y7GZ+q=CCKY8hl6XGd;7$P zKejp?Xm?u+ly{BC0V3*4Atv;P1+3|Z?hd~UYzdF$o!GYwfrVo?UH{u6C_OI5|mNeR$hkvpxGttH)c^Y159M`_pg4S&Qo5#sA*U-g^CYj79&k-%WIYnSa>)lAeW<7Jyv~dXPhTe za)057bh#WnTyNP!l@ZjMas;9mDyUyfVbt;R%)P#b8oXG>QK5F_`N-VYWeZkwf(K5~ zK3}-2((nM{%0Z=;KEV2|+cr*qqGZ{BI@r`jk?}TT+u(ZxP3s(i!cQ?hPfsZHbZQBD zjAk@;2o3?Pb*m4Np4}8l0WO2d1a`%o1pE`>gLX^n$lhc+wDW`4%-&cV4*8X7!+D!5kS|jKPsC+CFya z1eVWtwNRSl+NhQg%Pr~B_TjqFdv*^Kk(hICJUeV7kporBh|w)@&lMK{6NjE`2G=Xj z`nHe#vTXVU2yUwGR-_{=S|Dz^tjXZKZ1<)BP_0zQbP4jXZSOY*hh@6I;(8_nK#B-KZ8r2dYk{&Y!%$&)QXXfrPQt{Nl0ejWuK zN#Ya%MPy=_ixaqBRVuXDn0PvPvAw9WTvPng=ymK!QfcO%u%3p>Gqgqc7PrrscI!1x zR(?X$QN~+UP$u$nov)|4g7I}x>bv``&xC8-#%|u$+|f_-{yJ}XB0CpW$3Z#4aY%xoaiOF`iSo3f?h(zdfUuGQKtVBRPGak6+~vS0~X=q**Va^SiU|L$LDU>JZZ9ExXlHlc`@fjWQtSqd=Ih*o$~!< zSY)bq1(B~6X}tS(7dEks6GLJlsh)PI>u_?c}PsA^oLX}=`Pu% zP~^+@&1Lvbu=)Mhy&jCSSflI+EC%o-oN0}B>BHq@EEILid3Crlmpwf;eV-iypOsc< zAtyN3L4$Jq5YHCc5*I@7gk+=NK+eCNtWOY1!RFpK2KUIj<{UWnltYdB5u8?RDEWfE5LZhkn}LC{mkS!UA@YgRaH(90mJrChlMGug&@ghaa~bCkWd9zY;L_h% z`wlRn0B#Ohb36V$?|YX3+l~DEx@xOO-kUEiiyA8tS%Pme$3vX5?jGCt(hR)ry#Gqw zAes#5bS{<~ADh3&CcG_xBM2dIXC6(}MR()mUSmEmAZo2h*Sxk~t7J&wOGe|dVapN2 z*o=p*wx$8rZTkcIB^))y5A!!zEV=Vo!kduGZ4Tae>jN%}K@8j19E#iJlAtp*bL%Q~ zL(WMB@`m8O*dvht9+T(F5N=)AB}q7W=zc%5LaG+8#ikL1bihqK%DSzw_C4>`=scwF z%$FbzxVMh3k`d2_^XFG6Q$HyO_P1Y7WiSm!(vHu=TJ`l)ARn~bR6A6idr03Dz%uE% zby^0ss1#xTfqenXZf({$pOKtzjK{OJAv-eLp;E2gMZ3C9YS}Qx!C2MylorB5ELcz2CGIP6sVFgXLe?3?a_uex z0l2TMGoP5Q(9({3LnS@Yv!ZI1YUMbof9Pc(kQLzCq&ny*%{~H6DQ=1MWx$k=KyhqE z#*~wvD^GlreK~9I0f$;J-QkQTY?cXUL9x* zez&pLc&ntsh}$JpIre=0{2A&*y50c-tf6bp*vM{^cB~e7=dWI%UVMVovUf+f+T4#B2q;at-TGzi=)l?CN9zu$k zgY@;ahIp*cz>>h8EN4{J?x>4&B-3118OhnjF#a*nZY@<;C!bgS{koytP1v;sQsVp^;=9_)EeQakaf`EdApDuhAkq+>GOiJiX!9cURv<-8ABkXrxk?b*HEkK`vc3PzKbw-$D+C4ir+)q$J=`CHWH#+ zW1l*fXmh(p6msXDB}rRqF@njVPxakZfrtWis!aDF#>*7xl*-dQJ4$P^GM0c>w0y`Z z5)DbMgfz;nWkm%Q#eygdze|ndUxt*!yGI}o0p8#pp+!Jw#L^$y1hqQs9D(j)j^FHo zx7#uq`=+{c$YSl1aqu6{ZbhrN!0)2~8__FetW%aM!;)S0_PjmgLlY3V}jA8U#m0iTXZOn`#3lW z*f!%_k_z#g%N5s=CypTHbrOGxpFjH&PSQYw2e1(>jiP6SzXJ3b*9LDvtzN{Dw&^^}7pwuh+s-6G0OXd?7|nZ-h`_u)P# z*uy_|Im_Lw^Sc(_*L_AeTw5-cS4)nr(agfVXBe3+*(l%^?k8Jn#BwSAW_%R$H6V2d zQ8xiod{fLB)_=$$oV3R<>a3O((o-PnnAD?;&>|hQ3WvX7gvq0Z%!R>q(l<@V=!l%l z*oq?%@`V)i?ZhWfKMV`%&FW;J5#zrKb_c? zJSy`rJ)zM`XV#dTi3~!_T1`vvoLwc;fK%9(0Diw{FWR9F zVa78H3zL5cEyTa?Q6&bYqZjhhkuOf6@6dfn{g|!#VPO*t?&D&kqM(92KT}VIvM>aVP?E0yjk_b4HosSfy3C=BTxxkO<9=(F#!&FDw5sD znrl_BXP*LLi??|9mY76*54s5Ky9{iTMMwRikNL5lj;;!BvGAr>@#4Cg&4Mi+b&~Gw zo1pVgL6_F$`q+NIk>Qs+-!OwKhxWx+TAf#b{#LKQW@S!&n{e&}qc`Z1$lt`-as*nn z7)8_8?_;+3Wejza+!HisxM$V)!OycEp|TjtL&ijIHzoK&1U6N2N}ZP+8+VO3b4a0( z%O+c{2s@UV1X3>`>|1U{YaH`RATn<%gF!V%6HG*z<%UQU4hqRf7(!*iaX5a!KR7m2 z2^_=$%p%5s5-B11D{ifqdF>2oZt-2QZOcH5>DS(`79*>N`E9aGCAsXgm z^>owJ{s_e9h}>QEUgw22|1Qa?Zmrtv2gtxj#kX{}Y@QCiZE_Z7EU4hpo=zQA{a8oz z4070`b5Io8U<*Br>l6zznziLf-}U$Sy~QPNRM|iFz;KYNQYXE@AZvAD-XH9yuO&wf zYMV{ z7U(4nF#z6%yK)PtO_Q4}i|qpV7UsMCLSIIj6TGK$S}9J~elF-LTeL+c70)7ZLOGYN zvGXaNQ38?IvahQJJd;rcJV{D!xN=i}1CP$$y;wv-2Vv``carqeU*7&jey8M7Z6<@) z`T`IUV6F)3MN=;)Tvfasf`rsA>MpWq5E4ffUuYI^pV@%5H3j)Pyy)ub@Ld7^ST(w!8dYu@y0n*uB2)j zj|>BLXF$}>mnzM?Cfiqs%-ymy5m$p|{L${eo#QS%4Yunw9x!Coe>=$h?zEo$3^=Ap z!JF^cpk&n}t$cs#5vFnwOj}876*zx;NK@5?sHJ6!Zs%2ohezMM8j{dY;Kz+}a6?*!J%9=gzBc14#Q^rWp@ud!582Is0C`9p=jdRyxo6 zY>3|o3O&T1$Z2%=n@ok2m)os{z$BSppuWn#XVuhOdy`t#Q8Jq?5XU~i;uLI!M;JpW zG)8iD0Y4Y$j&}<)e4k7tdkoz(y2F!%ND*>9H-I!h}0AXS3bv`?gs&PU?zs$1A{Ca*&R7&F-mHAd9>=-ijmv&T!Lzi zx?R$D#1AZrB=AQ2AV84)5g=4#0(>i3W`)9$$0~a8&3h2o>8;n4uk9GP=WPdNQ}L_C zcf>QgW?*6!qrX8eG%#Y*iq2Sf5yR9?$QUe=E}r*$#c#04`xm64zUsR0saGH}^VDto zxw&L>a~iXbPuoc@#!2w7)nv%K()Yz8dSNJYJ*cv+h}X(t$t>H(dovelU9^J#Ebc8`TKU6 zt(DJm6nPYvwea%Ucz*SR%BX-&;#rkEBeEC-hD;Y1s75k~HMK+8;gVovmF|#JSb`d? zMu2Mi7B; zA3!F4FO+XV*NUv#gy7(+H(v*rDs{LZN+(w7AAbjdgnAl+II<#Fo;_EIa(8jp_IhEb z5Z{V@OV)4_OUakW3NPmeJ)m)(H~pFdh)6fH%$N{=!x_`B$s$I8A@MYMWFcZUsv{#a znelU5>$B$9t)4Qny6VEtMCV20+_0c~#Jl>{&hcC@I2+Rn6tFem|_tn>xCNt1xCgj zoh@B$6S-%6+2(C;)D)CX-+0VN8O~X!e@FSXPP9iB`^dNSZy;&|htfH{hv82I6HVP;B;-UEEN`G_kdL2Y#a9>){FloI$qqbh^Hi zj4{)=iha*y?LsYVIdo)xg8Am8RJQV_t?NsbwmaV10-smwTD}c#1T~YweZ1G|clBYm z);1_P>)?^~+#K;{WdTH^`MKqD&Y4eDyj5728twrRutUByPUR3gxQVK_4iKYUju1sz zvb3c~pl6B4VISQda8Z|G=PFtuAiiX()g{$?9yq=7N`+FJzwYWJ5-yTSEAco~4X(*i zLH_jQ-oo!6k_>b6QLc7j!H7!tz1nTtw5B9q{xk!Z z6sL{5Bs{9P$PArnF zxB6Wm^7UGg1kxl9=csGC%+C@VtOl^~E2nIql3l&oMh$!Yz|NYMyC%^lcLKA*x`CaWpA%1aI)ic8immB)EwU;-*~GCvA}Eqm4GEQhq)Fd~;JKsxD=(#-lIQ{}S zsMDC)`SF!PH8@UU$cbmwgbA+(@aK=ss?Xoje*YSO{?b1v!Ji}1`2#uuynU6#bqUNA zUxhLCGsQfonO$%qbdraEYq2|1?)9b12jk-X7_s0#{p%k#%&6yfkPrj>cnqS zXA2OkIVlqt2wE(ttCbenPL8XZ9BAPp$&9{>x$ax{F0B@lxRccOL_HMqOrZ@t%B`q- z-#&ssy)eC8@Y{=s=i1zTDs}BE%toexTdJmdyh$of!|fZqSbEi*O3wNQxn!of0<#A$ z0zN9k3fJpQ2H5aXK6FHX#?$Ozjtsi^Cq4Xc?2p+2aC%X7c@kOtgilIF`j1OWZQAHzrozKtlXr1QoW5BLa>xa>7@ zluLMj3sq0T7ke8VC>FI#VMa)w#n z_ckf6G$zi65xE9+U`EXJAiX`B0uGIja6u@_N zrjdYs;EnSHfl#TbN{$N2o6e@Z5JVS<_s`Gt_fwoipQ=4_t+$Z$WLYVnIll!d zN%cCq4V%Wcw`>nxg}XzXW zY!G=Saq;oh8Xzt&aZ$#>@abJCj&xYo@#Ozm$QZlC8@ilTcwktoVEVM&Yjol>XAnI# z5wCQzvmTV__XWwO!p}aJTM8>@Ye1Q3O1_9zeiOuHfF7hUW!W{~7H8C+C?9$vx)1e| zs^J>xV{iX7tGJCsxr9uf+j5^s$jIxnR*a-MjLigOt$^@1A*1#oW%1L!&_yTV00&PN z;ONjtbv!oekf@1W-J+q(;xieRrQM4)dtZ>BFpKGp@E(VCUjn>nlI#+tqqz|hh5f)D z3V~Wc+Y;<7^KuhSI`xXr8#n&VKoG#_-gJgF9Zy0<<@VbjhdSCk!TrYJ(bd^8^ zs)Dzni#*nsFET}E2v8M~kkaj`0>dYYmEZ~3Rj1L@Wdx{|s)=_%a-sd;JkbBN^8A720VYI?rkQb)e2aH| z+(ESbzF|#}#@d!j^vhXTwzpcdvT}M1|Cglv0ekD5+*Dn6d!qQ%s>KI!i`RX9bai?2 z0l*0^u zY}9mqeGrJ*Zg=Mc_$y%%_f8w>adr6pz)&EtXdQUmJjZ^6uz-H~>C^xCCxzCPeA|zO zZju?HPsygefg{W8leC?q%vUW`wM3WD{uAi~Ozr$td_-L7Zi44h4}WWo1w}^Awkdzd z`*ldGt)F)vOq5hC$WP+WbJRA`&d=FbmA|rU5nS|kr_Vga!dWT;2xp=KcA${xX2M`Y znf>?j>0HH91K%W*#_^i3;Hg`|-m#MnH-$d=@1v`JLyWveqmf;?Z`(YZkX-F&#?_D0Ow5wwj=6={ zvhP~qX%e2GGA^cowwheYHm^!Ss66zd{mv^eoP!jyOv8UDYbtniC{uvaOcX!#nt;2t z6ya^v>E+tY1_5{r9_&hr`f{}DL{+)NJ~OKwZON0KDW7|}#RgDj_6~DxTVqI6vR^F5 zHC+lYo!5Y??fBx0E4t*=V2la^J`;~e^frulgSBR&G)Lv>RRe;%oSYmXqI>EPaqAEin`Ayk|my`cP2XuU_DXWDD z2CYtbcWEI$dNht$_|A|yNNqW07cSi{0`>-LpwyJtEtjXoEFX@4IkodqyRLHYF2z;9F=m9&1Ngu+s+wFa4yH$ zUFxv0dnAKIs`Fs?*gy3Jis&|#QDr>gLlEA*$jPfR6K`%yPEMHk?FHCl4%0Wp>{vjn znpyF_@NAY&e$LC@TJI;+fGLum&)-pfK@G}*rvBwtQps#=k&ZJF{5fX8bLPjE!(Jr2 zKly?ZU|3GpNlo&cAeDKwc6+Kdi^Sn=JM#)vs&6>?=OP^U>3GC^aRrrLw=2p^7~qFgP`bNwo1P3-$cZ}C-m24$>qHPY5zyKgqG>}x6`*Eroa1_C@c zk3dQCY#~9KbuyT3S(jR`cJX@k@Nt~*V8DyWK9($LNv?%2@9`geyaXS9l>tr|VE0Sn zmZkSj<&xo#O@(NcaB!3NUOXvNoPSM-(?yp*!9!bnLRDxw5dGAn+~t3qtO9|YdRu8{ za3Ww#i2vnijjMs|DTtNKB2Un9o`~<|qJQB_gCH0csk?n50ff0b8H>?YdH+ zB^n-qu~i+xIj?H-+Ri8yAgxO_%k#O690cqy3y7wd|(<9<0QJT9MP7sD~ zR~f0q=gTy^kJqH|FKqQ^MH>{ihK?S-uy+9Bg3?qeqBhl>cjI0llm4Ktrfki^fcpDA=K1y3L(*Z&22vUed@NYo=&6Z;Vv+yBfaZa$Z8ai3AuVb^)-t~bwTlQ?DRh&3TFB0 zwMcus%TQzj#!tdR7iv%o*)T9EQfGvK}`sXnbmb47%i210e%7D?{nL2sS zo|73a9TyG>d#;$!t0Dnnt0;)x9CIePCUq>^m;@TWtKW}yq zg(_;`$D8GY7$1nGTqg@Ru+YF`F1|~SEIS0d$nUWRXv!(*3^G^Dp!(gc-D)Tr(&>@e zun87%d*1F1wr>!xa}rfyu@A<9r44fbD+uzRpXaZ48Kmnu*i(qm*&$_%7sZFR@OXm& zoL}&>Ni@{;6)EDcgJFLGfIwTukH|FrAMzD-(PnV%)BpLGHSsFh1$=w^*9gFYTUg zcdPdD70!y7mXS*5gDzUrZ79cYWse>CE_O3kEN^lwAWfVc)k+8Az3rB*h*3t*4IcXS z-0?65d^o2MFQ-flFE0;|w-xH`C}y|vFO}z}w>UZ}9qYod{(iuxqPih|0d}5muB6@y zmuBMUM8VyzogoJ7U5gjmJHe(b)2Y?TDBTEMQ}*uE&jxmdvUzq5wTho-VrR78Oty>y zU*pfQ{`d1*glRGjPRuBC$!`9&Q#dDn&@?Y7wj2rbQYphO0fr-E$XQY=f4+6W-;}JV&J_balqF>+TxOo1L{T@>pGTV3^3s96e*0*SZT|tvCo}yBNY| zP`t10WXXK-nOAPXP}+77SmvawOQ^e!L+txeVKV zjgBaah4|T}rRv5~8+S|XQKwCKAhmWl>fY3j&-$wkYPer5u7DJ!*p{a1d_zV*<1)bk z7H`6vf14jN?iSr0y+`-xTQw!u#A&|SPp}&4ZHaosWJlUWfF((qm=BOK*L4+CQ89&V zQmwdfl#1}PCPT`nmT&(J-GBTaS!^5VG>c9bicF{fD)cHy{}bpb{6R$B<4h1OMAKxF zZ(h$?@kL30%BNGlMDI?dx)Oz**gMwB_cM$j#@e!9%yd^lMl9(&PG3M=tmty0&8ss> zq5+^YO8?Ocpne<9_goTj6x3b^wRm^Mw>Uf57bp@^D(yfl<>gACe^w_u8v4I8_L2j5 zE#NSxpKn+Wkn*lM0{%7*>_LFLhLE{|oAa7B zPoBQfIQqnS1p!^CtG%tmkFTPLj@y||7!S0mW*)t6E}R)v^UO=A?>e33Kwsn0 zXZQ1J`%n4lyEUG!o?W%t3wb^*hZ+{-h%pP){Uq{ImIrCyL(+eslp-sxoF%Pj&Hh}X z*5!dq`>IMy3hM(+x#lt6R{_=J?oy#OJFc!db6sELiHftVTk>glIkLA~{Z*K8NvgDz?3tE7EOC0--#^IrG@{r|y<_ag%L|;J zskVHo=@XR&RqaJ?#2~)XyyTf#ZZbw(c^LDa>RY?*dQX^XvQEkMsp?N3t1?N@{Uovv z2AtBolq>JCN?Mo)@kia8laD!AYvfEkcT~=ZVm&cR)Z(_3D3S2?S4%tSx-0o{9fsHixMZsMOJb4}E5|z-~SI*1WaI#Ag_kZVG zTEen@hN2<((o;O{=WO0uvYMB14nA__2|q5rTN&U$S;g->K} zjwucAaXonH{@c`1t+hcJ<#_7eqVRI;SC!e1ub zFSWiZ9Y6mpSAiFRLXW5C$Gz(RHm$UUIdWK_CLfS%>j#bg7sTIpte?zpXmscK##@&| zj(NhSORxXsm`w9~%e)(8Xq&y~&NRg5TBKeo1p4Aiksetmt*q``>gV^{ZBKW@d9)1g$_>%n6MZ?qpRz#kzU8?*EfE7zY zu~t=kj#|1_|5A7QfS_ zDoj4j8Gy&4pzbBZmhv7GJYPl9b17UEkc?(${qFDqL9B36+`Jtp}u>^}8s zoPq3u&pWjkoU>Jn{i`zD5S~_rrOY^smiH@WfFzgO{V2>MZ zQ{o}b$jEwB!J~zW9kF36PQihjPyJutXo$8=rMiA~0MsK!L~qr}d@cSpSm=7f;tf?9 z*wdN0m3MXt@_$rbK>EyZ9wkd;m@~awVB7Y)cfXITbH&UxT7Cl)De1KwSVg5k_5ecm z%hi*VjAu{i{pZhkO#5V@>%gzx>wo>I-x2)#f;kqC-^*p-AqSkh{&T_nXQMxh%VU`D zjXwGd=47G#uf~q=hy7lT8#^vGuGSCWu5QP|`9Ir>ui&~Q574R%!1?~H{JlM{e}Y-M zxgC@3&(Ik6<^xp#+8TfcGLxQ^@6ZU~fB$OK+7%A_H*j@VWC<5gkrDtuUMR=qJNQ{3 z<=@}nULKyV&VM8L_ZbEtew5>JJOacbz@YyB&(he76M%pJDnHAI^vuhDfc=-W z_+QOm{L$O*^Zx7i{{AKM{}<%3dhop*kMvdONe}*l{Pz+3tS%hGe;+}`zrz2Q^6>Mg z2YWu%T{!~+83FQ=;d^g>Ak6(~DE~zDzlQanR2#;BGORyufcQ_U{rL`vzeiK_Pq4pl zg!sAlKj)nP8^N<%|7iCF!AS=CpAr0=3;k~dd?G(1ILVCuGlHMfEdPywTH2!2jU{5JwS$)6FNBq;tF!Oxj&|3=_0{WF5^d2N5j@beW& ze`D|m*blIN|La1epE3M=$LZe~2tW>&V+?=Yc={dm-&EE)ocu(5>CmZ=+ou)j7JSoR~pcfb!(CL3DSpN(5Sb_Uq zj$wIU{S5o>T;ykk?ij;&E@JwBVE9SB`*|+JIn7^t0v*p%{F#d!{?~B+M)d%4=0u*d Pf!IJf6aZxSaYz0i+R>AN diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 0827861..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,21 +0,0 @@ -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\mapper\RoomMapper.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\controller\RoomController.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\domain\dto\OwnerDTO.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\controller\TagController.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\domain\dto\TagDTO.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\feign\OwnerFeignClient.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\mapper\RoomImageMapper.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\RoomApplication.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\feign\ContractFeignClient.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\utils\ExcelUtil.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\domain\BaseEntity.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\service\ITagService.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\config\FeignConfig.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\domain\Room.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\feign\TagFeignClient.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\common\Result.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\service\IRoomService.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\domain\RoomImage.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\service\impl\RoomServiceImpl.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\controller\OwnerController.java -C:\Users\rain6\Desktop\cursor - 0401\02ݽģ\˴\src\main\java\com\eden\room\service\impl\TagServiceImpl.java