Преглед на файлове

feat: 添加新的下单获取可选房间的接口

luofeiyun преди 3 седмици
родител
ревизия
6a153bc539
променени са 21 файла, в които са добавени 181 реда и са изтрити 17 реда
  1. 28 0
      ship-module-product/ship-module-product-api/src/main/java/com/yc/ship/module/product/enums/DistributorOrStoreEnum.java
  2. 1 9
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/VoyageStockDistributeController.java
  3. 10 4
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/VoyageStockDistributeNewController.java
  4. 25 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/QueryCanSelectRoomListNewReqVO.java
  5. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewRespVO.java
  6. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewSaveReqVO.java
  7. 5 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeNewDO.java
  8. 0 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeRoomDO.java
  9. 1 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeMapper.java
  10. 3 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeRoomMapper.java
  11. 9 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewService.java
  12. 22 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java
  13. 8 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomService.java
  14. 5 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomServiceImpl.java
  15. 1 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeService.java
  16. 1 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeServiceImpl.java
  17. 20 0
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyagestockdistribute/VoyageStockDistributeRoomMapper.xml
  18. 2 0
      ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/RoomApi.java
  19. 22 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/room/RoomApiImpl.java
  20. 2 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/room/ResourceRoomService.java
  21. 10 0
      ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/room/ResourceRoomServiceImpl.java

+ 28 - 0
ship-module-product/ship-module-product-api/src/main/java/com/yc/ship/module/product/enums/DistributorOrStoreEnum.java

@@ -0,0 +1,28 @@
+package com.yc.ship.module.product.enums;
+
+import com.yc.ship.framework.common.core.IntArrayValuable;
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * 分销商还是门店
+ */
+@Getter
+public enum DistributorOrStoreEnum implements IntArrayValuable {
+    DISTRIBUTOR(1, "分销商"),
+    STORE(2, "门店");
+
+    private final String name;
+    private final Integer value;
+    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DistributorOrStoreEnum::getValue).toArray();
+
+    public int[] array() {
+        return ARRAYS;
+    }
+
+    DistributorOrStoreEnum(Integer status, String name) {
+        this.value = status;
+        this.name = name;
+    }
+}

+ 1 - 9
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistribute/VoyageStockDistributeController.java

@@ -2,6 +2,7 @@ package com.yc.ship.module.product.controller.admin.voyagestockdistribute;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
 import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
@@ -13,23 +14,14 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Operation;
 
-import javax.validation.constraints.*;
 import javax.validation.*;
-import javax.servlet.http.*;
 import java.util.*;
-import java.io.IOException;
 
-import com.yc.ship.framework.common.pojo.PageParam;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import static com.yc.ship.framework.common.pojo.CommonResult.success;
 
-import com.yc.ship.framework.excel.core.util.ExcelUtils;
-
-import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
-import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.*;
-
 import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.*;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
 import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeService;

+ 10 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/VoyageStockDistributeNewController.java

@@ -1,15 +1,14 @@
 package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew;
 
 import com.yc.ship.framework.common.pojo.CommonResult;
-import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.QueryCanSelectRoomListNewReqVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewSaveReqVO;
-import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
 import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeNewService;
-import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeRoomService;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -31,7 +30,7 @@ public class VoyageStockDistributeNewController {
 
     @Operation(summary = "创建航次库存分配")
     @PostMapping("/create")
-//    @PreAuthorize("@ss.hasPermission('product:voyage-stock-distribute-new:create')")
+    @PreAuthorize("@ss.hasPermission('product:voyage-stock-distribute-new:create')")
     public CommonResult<Boolean> createVoyageStockDistribute(@Valid @RequestBody List<VoyageStockDistributeNewSaveReqVO> createReqVO) {
         voyageStockDistributeNewService.createVoyageStockDistributeNew(createReqVO);
         return success(true);
@@ -51,5 +50,12 @@ public class VoyageStockDistributeNewController {
         return success(list);
     }
 
+    @PostMapping("/getCanSelectRoomList")
+    @Operation(summary = "分销商门店下单时获得可以选择的房间号")
+    public CommonResult<List<RoomRespDTO>> getCanSelectRoomList(@RequestBody QueryCanSelectRoomListNewReqVO reqVO) {
+        List<RoomRespDTO> list = voyageStockDistributeNewService.getCanSelectRoomList(reqVO);
+        return success(list);
+    }
+
 
 }

+ 25 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/QueryCanSelectRoomListNewReqVO.java

@@ -0,0 +1,25 @@
+package com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "查询可分配房间列表请求参数")
+@Data
+public class QueryCanSelectRoomListNewReqVO {
+    @Schema(description = "船ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long shipId;
+    @Schema(description = "航次ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long voyageId;
+    @Schema(description = "分销商类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer type;
+    @Schema(description = "分销商ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long distributorId;
+    @Schema(description = "门店ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long storeId;
+    @Schema(description = "房型ID+'_'+楼层号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private List<String> roomModelIdFloorList;
+
+}

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewRespVO.java

@@ -37,6 +37,9 @@ public class VoyageStockDistributeNewRespVO {
     @Schema(description = "船ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Long shipId;
 
+    @Schema(description = "是否启用共享库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer enableShare;
+
     @Schema(description = "房间列表")
     private List<VoyageStockDistributorRoomRespVO> roomList;
 

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyagestockdistributeNew/vo/VoyageStockDistributeNewSaveReqVO.java

@@ -37,6 +37,9 @@ public class VoyageStockDistributeNewSaveReqVO {
 
     @Schema(description = "船ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     private Long shipId;
+
+    @Schema(description = "是否启用共享库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer enableShare;
     /**
      * 房间列表
      */

+ 5 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeNewDO.java

@@ -70,4 +70,9 @@ public class VoyageStockDistributeNewDO extends TenantBaseDO {
      * 房型房间数
      */
     private BigDecimal roomModelNum;
+
+    /**
+     * 是否启用分享
+     */
+    private Integer enableShare;
 }

+ 0 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyagestockdistribute/VoyageStockDistributeRoomDO.java

@@ -61,5 +61,4 @@ public class VoyageStockDistributeRoomDO extends TenantBaseDO {
      * 房间ID
      */
     private Long roomId;
-
 }

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeMapper.java

@@ -1,9 +1,9 @@
 package com.yc.ship.module.product.dal.mysql.voyagestockdistribute;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
 import org.apache.ibatis.annotations.Mapper;
 import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.*;

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdistribute/VoyageStockDistributeRoomMapper.java

@@ -5,6 +5,7 @@ import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -26,4 +27,6 @@ public interface VoyageStockDistributeRoomMapper extends BaseMapperX<VoyageStock
         delete(new LambdaQueryWrapperX<VoyageStockDistributeRoomDO>()
                 .eq(VoyageStockDistributeRoomDO::getVoyageId, voyageId));
     }
+
+    List<VoyageStockDistributeRoomDO> selectListByRoomModelIdAndFloor(@Param("objectId") Long objectId, @Param("roomModelIdFloorList") List<String> roomModelIdFloorList);
 }

+ 9 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewService.java

@@ -1,8 +1,9 @@
 package com.yc.ship.module.product.service.voyagestockdistribute;
 
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.QueryCanSelectRoomListNewReqVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewSaveReqVO;
-import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 
 import java.util.List;
@@ -34,4 +35,11 @@ public interface VoyageStockDistributeNewService {
      * @return
      */
     List<RoomRespDTO> getRoomList(Long voyageId, Long shipId);
+
+    /**
+     * 分销商下单时获取可以选择的房间号
+     * @param reqVO
+     * @return
+     */
+    List<RoomRespDTO> getCanSelectRoomList(QueryCanSelectRoomListNewReqVO reqVO);
 }

+ 22 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeNewServiceImpl.java

@@ -2,12 +2,15 @@ package com.yc.ship.module.product.service.voyagestockdistribute;
 
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
+import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.QueryCanSelectRoomListNewReqVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewSaveReqVO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributorRoomRespVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeNewMapper;
+import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
 import com.yc.ship.module.resource.api.room.RoomApi;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;
 import org.springframework.stereotype.Service;
@@ -121,4 +124,23 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
         });
         return roomList;
     }
+
+    @Override
+    public List<RoomRespDTO> getCanSelectRoomList(QueryCanSelectRoomListNewReqVO reqVO) {
+        //获取当前分销商选择的房型和楼层对象的房间列表
+        reqVO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());//TODO: 此处暂时默认为分销商
+        Integer type = reqVO.getType();
+        List<VoyageStockDistributeRoomDO> roomList;
+        if(type == DistributorOrStoreEnum.DISTRIBUTOR.getValue()) {
+            roomList = voyageStockDistributeRoomService.getRoomListByRoomModelIdAndFloor(reqVO.getDistributorId(), reqVO.getRoomModelIdFloorList());
+        }else if(type == DistributorOrStoreEnum.STORE.getValue()) {
+            roomList = voyageStockDistributeRoomService.getRoomListByRoomModelIdAndFloor(reqVO.getStoreId(), reqVO.getRoomModelIdFloorList());
+        }else {
+            roomList = new ArrayList<>();
+        }
+        List<Long> roomIds = CollectionUtils.convertList(roomList, VoyageStockDistributeRoomDO::getRoomId);
+        List<RoomRespDTO> roomRespList = roomApi.getRoomListByIds(roomIds);
+        //TODO: 待完善,此处应该去掉已被选了的房间
+        return roomRespList;
+    }
 }

+ 8 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomService.java

@@ -26,4 +26,12 @@ public interface VoyageStockDistributeRoomService {
     void deleteByVoyageId(Long voyageId);
 
     void createVoyageStockDistributeRoomBatch(List<VoyageStockDistributeRoomDO> roomList);
+
+    /**
+     * 获取房间列表
+     * @param objectId 分销商或门店ID
+     * @param roomModelIdFloorList 房型ID和楼层号列表
+     * @return
+     */
+    List<VoyageStockDistributeRoomDO> getRoomListByRoomModelIdAndFloor(Long objectId, List<String> roomModelIdFloorList);
 }

+ 5 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeRoomServiceImpl.java

@@ -39,4 +39,9 @@ public class VoyageStockDistributeRoomServiceImpl implements VoyageStockDistribu
         }
         voyageStockDistributeRoomMapper.insertBatch(roomList);
     }
+
+    @Override
+    public List<VoyageStockDistributeRoomDO> getRoomListByRoomModelIdAndFloor(Long objectId, List<String> roomModelIdFloorList) {
+        return voyageStockDistributeRoomMapper.selectListByRoomModelIdAndFloor(objectId, roomModelIdFloorList);
+    }
 }

+ 1 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeService.java

@@ -2,6 +2,7 @@ package com.yc.ship.module.product.service.voyagestockdistribute;
 
 import javax.validation.*;
 import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.*;
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.module.resource.api.room.dto.RoomRespDTO;

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdistribute/VoyageStockDistributeServiceImpl.java

@@ -12,6 +12,7 @@ import com.yc.ship.module.ota.enums.DistributorTypeEnum;
 import com.yc.ship.module.otc.api.store.StoreApi;
 import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
 import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.*;
+import com.yc.ship.module.product.controller.admin.voyagestockdistribute.vo.QueryCanSelectRoomListReqVO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO;
 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeDO;
@@ -35,7 +36,6 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception0;
 import static com.yc.ship.module.product.enums.ErrorCodeConstants.USER_NOT_DISTRIBUTOR;
 
 /**

+ 20 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyagestockdistribute/VoyageStockDistributeRoomMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeRoomMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+    <select id="selectListByRoomModelIdAndFloor" resultType="com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO">
+       select * from product_voyage_stock_distribute_room
+                where deleted = 0 and object_id = #{objectId}
+                and concat(room_model_id, '_', floor) in
+                <foreach item="item" collection="roomModelIdFloorList" separator="," open="(" close=")" index="index">
+                    #{item}
+                </foreach>
+    </select>
+</mapper>

+ 2 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/room/RoomApi.java

@@ -7,4 +7,6 @@ import java.util.List;
 public interface RoomApi {
 
     List<RoomRespDTO> getRoomList(Long shipId);
+
+    List<RoomRespDTO> getRoomListByIds(List<Long> ids);
 }

+ 22 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/api/room/RoomApiImpl.java

@@ -10,6 +10,7 @@ import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -38,4 +39,25 @@ public class RoomApiImpl implements RoomApi {
         });
         return respList;
     }
+
+    @Override
+    public List<RoomRespDTO> getRoomListByIds(List<Long> ids) {
+        if(CollectionUtils.isAnyEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        List<ResourceRoomDO> list = resourceRoomService.getRoomListByIds(ids);
+        List<RoomRespDTO> respList = BeanUtils.toBean(list, RoomRespDTO.class);
+        List<Long> roomModelIds = CollectionUtils.convertList(respList, RoomRespDTO::getRoomModelId);
+        List<ResourceRoomModelDO> roomModelList = resourceRoomModelService.getList(roomModelIds);
+        Map<Long, ResourceRoomModelDO> roomModelDOMap = CollectionUtils.convertMap(roomModelList, ResourceRoomModelDO::getId);
+        respList.stream().forEach(item -> {
+            if(roomModelDOMap.get(item.getRoomModelId()) != null) {
+                item.setRoomModelName(roomModelDOMap.get(item.getRoomModelId()).getName());
+            }else {
+                item.setRoomModelName("已删除");
+            }
+            item.setIsSelected(false);
+        });
+        return respList;
+    }
 }

+ 2 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/room/ResourceRoomService.java

@@ -75,4 +75,6 @@ public interface ResourceRoomService {
      * @return
      */
     Boolean createBatchRoom(ResourceRoomBatchSaveReqVO createReqVO);
+
+    List<ResourceRoomDO> getRoomListByIds(List<Long> ids);
 }

+ 10 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/service/room/ResourceRoomServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.resource.service.room;
 
 import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.resource.controller.admin.room.vo.ResourceRoomBatchSaveReqVO;
 import com.yc.ship.module.resource.controller.admin.room.vo.ResourceRoomPageReqVO;
@@ -17,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -144,4 +146,12 @@ public class ResourceRoomServiceImpl implements ResourceRoomService {
         return flag;
     }
 
+    @Override
+    public List<ResourceRoomDO> getRoomListByIds(List<Long> ids) {
+        if(CollectionUtils.isAnyEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        return roomMapper.selectByIds(ids);
+    }
+
 }