|
|
@@ -6,6 +6,7 @@ import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
import com.yc.ship.module.product.controller.admin.voyagestock.vo.VoyageStockPageReqVO;
|
|
|
import com.yc.ship.module.product.controller.admin.voyagestock.vo.VoyageStockRespVO;
|
|
|
import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.*;
|
|
|
+import com.yc.ship.module.product.controller.app.voyage.vo.AppCanSelectRoomReqVO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockRoomUsedDO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeRoomDO;
|
|
|
@@ -306,4 +307,52 @@ public class VoyageStockDistributeNewServiceImpl implements VoyageStockDistribut
|
|
|
public BigDecimal getDistributeNum(Long voyageId) {
|
|
|
return voyageStockDistributeNewMapper.selectTotalDistributeNum(voyageId);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<RoomRespDTO> getAppCanSelectRoomList(AppCanSelectRoomReqVO reqVO) {
|
|
|
+ Long distributeId = reqVO.getDistributeId();
|
|
|
+ if(distributeId != null) {
|
|
|
+ return getAppDistributorCanSelectRoomList(reqVO);
|
|
|
+ } else {
|
|
|
+ return getAppShareCanSelectRoomList(reqVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取共享房间可以选择的房间列表
|
|
|
+ * @param reqVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<RoomRespDTO> getAppShareCanSelectRoomList(AppCanSelectRoomReqVO reqVO) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取分销商可以选择的房间列表
|
|
|
+ * @param reqVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<RoomRespDTO> getAppDistributorCanSelectRoomList(AppCanSelectRoomReqVO reqVO) {
|
|
|
+ //获取当前分销商选择的房型和楼层对象的房间列表
|
|
|
+ //TODO:此处当前默认为1分销商,暂无门店
|
|
|
+ List<VoyageStockDistributeRoomDO> roomList = voyageStockDistributeRoomService.getAppCanSelectRoomList(reqVO);
|
|
|
+ List<Long> roomIds = CollectionUtils.convertList(roomList, VoyageStockDistributeRoomDO::getRoomId);
|
|
|
+ //获取完全被使用的房间
|
|
|
+ List<VoyageStockRoomUsedDO> allUsedList = voyageStockRoomUsedMapper.selectAllUsedList(reqVO.getVoyageId());
|
|
|
+ List<Long> allUserRoomId = CollectionUtils.convertList(allUsedList, VoyageStockRoomUsedDO::getRoomId);
|
|
|
+ //过滤掉完全被使用的房间
|
|
|
+ List<Long> canSelectRoomIds = roomIds.stream().filter(item -> !allUserRoomId.contains(item)).collect(Collectors.toList());
|
|
|
+ List<RoomRespDTO> roomRespList = roomApi.getRoomListByIds(canSelectRoomIds);
|
|
|
+ // 获取使用一半的房间
|
|
|
+ List<VoyageStockRoomUsedDO> halfUsedList = voyageStockRoomUsedMapper.selectHalfUsedRoom(reqVO.getVoyageId());
|
|
|
+ List<Long> halfUsedRoomIds = CollectionUtils.convertList(halfUsedList, VoyageStockRoomUsedDO::getRoomId);
|
|
|
+ roomRespList.stream().forEach(item -> {
|
|
|
+ if(halfUsedRoomIds.contains(item.getId())) {
|
|
|
+ item.setNum(BigDecimal.valueOf(0.5));
|
|
|
+ }else {
|
|
|
+ item.setNum(BigDecimal.ONE);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return roomRespList;
|
|
|
+ }
|
|
|
}
|