From 2f73a671db8bf132baaba12a5c2a9c3b611589e9 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 01 八月 2019 17:14:26 +0800
Subject: [PATCH] 修复 添加房屋时的侦听 类修改

---
 CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 165 insertions(+), 6 deletions(-)

diff --git a/CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java b/CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java
index b5c8ada..2f79f54 100644
--- a/CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java
+++ b/CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java
@@ -1,12 +1,15 @@
 package com.java110.community.smo.impl;
 
 
+import com.java110.common.constant.StatusConstant;
 import com.java110.common.util.BeanConvertUtil;
+import com.java110.community.dao.IRoomAttrServiceDao;
 import com.java110.community.dao.IRoomServiceDao;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.room.IRoomInnerServiceSMO;
 import com.java110.core.smo.user.IUserInnerServiceSMO;
 import com.java110.dto.PageDto;
+import com.java110.dto.RoomAttrDto;
 import com.java110.dto.RoomDto;
 import com.java110.dto.UserDto;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,7 +17,9 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -31,6 +36,9 @@
     private IRoomServiceDao roomServiceDaoImpl;
 
     @Autowired
+    private IRoomAttrServiceDao roomAttrServiceDaoImpl;
+
+    @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
     @Override
@@ -45,18 +53,24 @@
             roomDto.setRow(page * roomDto.getRow());
         }
 
-        List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfo(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
+        List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfoByCommunityId(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
 
         if (rooms == null || rooms.size() == 0) {
             return rooms;
         }
+
+        String[] roomIds = getRoomIds(rooms);
+        Map attrParamInfo = new HashMap();
+        attrParamInfo.put("roomIds", roomIds);
+        attrParamInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        List<RoomAttrDto> roomAttrDtos = BeanConvertUtil.covertBeanList(roomAttrServiceDaoImpl.getRoomAttrInfo(attrParamInfo), RoomAttrDto.class);
 
         String[] userIds = getUserIds(rooms);
         //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
         List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
 
         for (RoomDto room : rooms) {
-            refreshRoom(room, users);
+            refreshRoom(room, users, roomAttrDtos);
         }
         return rooms;
     }
@@ -64,14 +78,33 @@
     /**
      * 浠庣敤鎴峰垪琛ㄤ腑鏌ヨ鐢ㄦ埛锛屽皢鐢ㄦ埛涓殑淇℃伅 鍒锋柊鍒� floor瀵硅薄涓�
      *
-     * @param room  灏忓尯灏忓尯鎴垮眿淇℃伅
-     * @param users 鐢ㄦ埛鍒楄〃
+     * @param room         灏忓尯灏忓尯鎴垮眿淇℃伅
+     * @param users        鐢ㄦ埛鍒楄〃
+     * @param roomAttrDtos 鎴垮眿灞炴�т俊鎭�
      */
-    private void refreshRoom(RoomDto room, List<UserDto> users) {
+    private void refreshRoom(RoomDto room, List<UserDto> users, List<RoomAttrDto> roomAttrDtos) {
         for (UserDto user : users) {
             if (room.getUserId().equals(user.getUserId())) {
                 BeanConvertUtil.covertBean(user, room);
             }
+        }
+
+        if (roomAttrDtos == null || roomAttrDtos.size() == 0) {
+            return;
+        }
+
+        for (RoomAttrDto roomAttrDto : roomAttrDtos) {
+            if (!roomAttrDto.getRoomId().equals(room.getRoomId())) {
+                continue;
+            }
+
+            List<RoomAttrDto> tmpRoomAttrDtos = room.getRoomAttrDto();
+
+            if (tmpRoomAttrDtos == null) {
+                tmpRoomAttrDtos = new ArrayList<>();
+            }
+
+            tmpRoomAttrDtos.add(roomAttrDto);
         }
     }
 
@@ -90,9 +123,127 @@
         return userIds.toArray(new String[userIds.size()]);
     }
 
+    /**
+     * 鑾峰彇roomId 淇℃伅
+     *
+     * @param rooms 鎴垮眿淇℃伅
+     * @return roomIds
+     */
+    private String[] getRoomIds(List<RoomDto> rooms) {
+        List<String> roomIds = new ArrayList<String>();
+        for (RoomDto room : rooms) {
+            roomIds.add(room.getRoomId());
+        }
+
+        return roomIds.toArray(new String[roomIds.size()]);
+    }
+
     @Override
     public int queryRoomsCount(@RequestBody RoomDto roomDto) {
-        return roomServiceDaoImpl.queryRoomsCount(BeanConvertUtil.beanCovertMap(roomDto));
+        return roomServiceDaoImpl.queryRoomsByCommunityIdCount(BeanConvertUtil.beanCovertMap(roomDto));
+    }
+
+    @Override
+    public int queryRoomsWithOutSellCount(@RequestBody RoomDto roomDto) {
+        return roomServiceDaoImpl.queryRoomsWithOutSellByCommunityIdCount(BeanConvertUtil.beanCovertMap(roomDto));
+    }
+
+    @Override
+    public List<RoomDto> queryRoomsWithOutSell(@RequestBody RoomDto roomDto) {
+
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+        int page = roomDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            roomDto.setPage((page - 1) * roomDto.getRow());
+            roomDto.setRow(page * roomDto.getRow());
+        }
+
+        List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfoWithOutSellByCommunityId(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
+
+        if (rooms == null || rooms.size() == 0) {
+            return rooms;
+        }
+
+        String[] roomIds = getRoomIds(rooms);
+        Map attrParamInfo = new HashMap();
+        attrParamInfo.put("roomIds", roomIds);
+        attrParamInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        List<RoomAttrDto> roomAttrDtos = BeanConvertUtil.covertBeanList(roomAttrServiceDaoImpl.getRoomAttrInfo(attrParamInfo), RoomAttrDto.class);
+
+        String[] userIds = getUserIds(rooms);
+        //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (RoomDto room : rooms) {
+            refreshRoom(room, users, roomAttrDtos);
+        }
+        return rooms;
+    }
+
+    @Override
+    public int queryRoomsWithSellCount(@RequestBody RoomDto roomDto) {
+        return roomServiceDaoImpl.queryRoomsWithSellByCommunityIdCount(BeanConvertUtil.beanCovertMap(roomDto));
+    }
+
+    @Override
+    public List<RoomDto> queryRoomsWithSell(@RequestBody RoomDto roomDto) {
+
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+        int page = roomDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            roomDto.setPage((page - 1) * roomDto.getRow());
+            roomDto.setRow(page * roomDto.getRow());
+        }
+
+        List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfoWithSellByCommunityId(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
+
+        if (rooms == null || rooms.size() == 0) {
+            return rooms;
+        }
+
+        String[] roomIds = getRoomIds(rooms);
+        Map attrParamInfo = new HashMap();
+        attrParamInfo.put("roomIds", roomIds);
+        attrParamInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        List<RoomAttrDto> roomAttrDtos = BeanConvertUtil.covertBeanList(roomAttrServiceDaoImpl.getRoomAttrInfo(attrParamInfo), RoomAttrDto.class);
+
+        String[] userIds = getUserIds(rooms);
+        //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (RoomDto room : rooms) {
+            refreshRoom(room, users, roomAttrDtos);
+        }
+        return rooms;
+    }
+
+    @Override
+    public List<RoomDto> queryRoomsByOwner(@RequestBody RoomDto roomDto) {
+
+        List<RoomDto> rooms = BeanConvertUtil.covertBeanList(roomServiceDaoImpl.getRoomInfoByOwner(BeanConvertUtil.beanCovertMap(roomDto)),
+                RoomDto.class);
+
+        if (rooms == null || rooms.size() == 0) {
+            return rooms;
+        }
+        String[] roomIds = getRoomIds(rooms);
+        Map attrParamInfo = new HashMap();
+        attrParamInfo.put("roomIds", roomIds);
+        attrParamInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        List<RoomAttrDto> roomAttrDtos = BeanConvertUtil.covertBeanList(roomAttrServiceDaoImpl.getRoomAttrInfo(attrParamInfo), RoomAttrDto.class);
+
+        String[] userIds = getUserIds(rooms);
+        //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (RoomDto room : rooms) {
+            refreshRoom(room, users, roomAttrDtos);
+        }
+        return rooms;
     }
 
     public IRoomServiceDao getRoomServiceDaoImpl() {
@@ -110,4 +261,12 @@
     public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
         this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
     }
+
+    public IRoomAttrServiceDao getRoomAttrServiceDaoImpl() {
+        return roomAttrServiceDaoImpl;
+    }
+
+    public void setRoomAttrServiceDaoImpl(IRoomAttrServiceDao roomAttrServiceDaoImpl) {
+        this.roomAttrServiceDaoImpl = roomAttrServiceDaoImpl;
+    }
 }

--
Gitblit v1.8.0