Bläddra i källkod

加入查询未售卖房屋接口

wuxw 7 år sedan
förälder
incheckning
83d5905967

+ 127 - 0
Api/src/main/java/com/java110/api/listener/room/QueryRoomsWithOutSellListener.java

@@ -0,0 +1,127 @@
+package com.java110.api.listener.room;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.exception.SMOException;
+import com.java110.common.util.Assert;
+import com.java110.common.util.BeanConvertUtil;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.floor.IFloorInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.dto.FloorDto;
+import com.java110.dto.RoomDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.vo.api.ApiRoomDataVo;
+import com.java110.vo.api.ApiRoomVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+/**
+ * @ClassName QueryRoomsListener
+ * @Description TODO 查询未销售房屋信息
+ * @Author wuxw
+ * @Date 2019/5/8 0:15
+ * @Version 1.0
+ * add by wuxw 2019/5/8
+ **/
+@Java110Listener("queryRoomsWithOutSellListener")
+public class QueryRoomsWithOutSellListener extends AbstractServiceApiDataFlowListener {
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_QUERY_ROOMS_WITHOUT_SELL;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        //获取请求数据
+        JSONObject reqJson = dataFlowContext.getReqJson();
+        validateRoomData(reqJson);
+
+        RoomDto roomDto = BeanConvertUtil.covertBean(reqJson, RoomDto.class);
+
+        ApiRoomVo apiRoomVo = new ApiRoomVo();
+        //查询总记录数
+        int total = roomInnerServiceSMOImpl.queryRoomsWithOutSellCount(BeanConvertUtil.covertBean(reqJson, RoomDto.class));
+        apiRoomVo.setTotal(total);
+        if (total > 0) {
+            List<RoomDto> roomDtoList = roomInnerServiceSMOImpl.queryRoomsWithOutSell(roomDto);
+            apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
+        }
+        int row = reqJson.getInteger("row");
+        apiRoomVo.setRecords((int) Math.ceil((double) total / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiRoomVo), HttpStatus.OK);
+        dataFlowContext.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 校验小区房屋查询入参信息
+     *
+     * @param reqJson 请求入参信息
+     */
+    private void validateRoomData(JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "floorId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "page", "请求报文中未包含page节点");
+        Assert.jsonObjectHaveKey(reqJson, "row", "请求报文中未包含row节点");
+
+        Assert.isInteger(reqJson.getString("page"), "page不是数字");
+        Assert.isInteger(reqJson.getString("row"), "row不是数字");
+        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
+        int row = Integer.parseInt(reqJson.getString("row"));
+
+
+        if (row > MAX_ROW) {
+            throw new SMOException(ResponseConstant.RESULT_CODE_ERROR, "row 数量不能大于50");
+        }
+        //校验小区楼ID和小区是否有对应关系
+        int total = floorInnerServiceSMOImpl.queryFloorsCount(BeanConvertUtil.covertBean(reqJson, FloorDto.class));
+
+        if (total < 1) {
+            throw new IllegalArgumentException("传入小区楼ID不是该小区的楼");
+        }
+
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+
+    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
+        return roomInnerServiceSMOImpl;
+    }
+
+    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
+        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
+    }
+}

+ 19 - 1
CommunityService/src/main/java/com/java110/community/dao/IRoomServiceDao.java

@@ -80,6 +80,24 @@ public interface IRoomServiceDao {
      */
     int queryRoomsByCommunityIdCount(Map info);
 
+    /**
+     * 查询小区房屋(未销售)总数
+     *
+     * @param info 小区房屋信息
+     * @return 小区房屋数量
+     */
+    int queryRoomsWithOutSellByCommunityIdCount(Map info);
+
+
+    /**
+     * 查询小区房屋信息
+     * 根据bId 查询小区房屋信息
+     *
+     * @param info bId 信息
+     * @return 小区房屋信息
+     */
+    List<Map> getRoomInfoByCommunityId(Map info);
+
 
     /**
      * 查询小区房屋信息
@@ -88,6 +106,6 @@ public interface IRoomServiceDao {
      * @param info bId 信息
      * @return 小区房屋信息
      */
-    List<Map> getRoomInfoByCommunityId(Map info) ;
+    List<Map> getRoomInfoWithOutSellByCommunityId(Map info);
 
 }

+ 24 - 1
CommunityService/src/main/java/com/java110/community/dao/impl/RoomServiceDaoImpl.java

@@ -139,7 +139,20 @@ public class RoomServiceDaoImpl extends BaseServiceDao implements IRoomServiceDa
             return 0;
         }
 
-        return Integer.parseInt(businessRoomInfos.get(0).get("count").toString());    }
+        return Integer.parseInt(businessRoomInfos.get(0).get("count").toString());
+    }
+
+    @Override
+    public int queryRoomsWithOutSellByCommunityIdCount(Map info) {
+        logger.debug("查询小区房屋数据 入参 info : {}", info);
+
+        List<Map> businessRoomInfos = sqlSessionTemplate.selectList("roomServiceDaoImpl.queryRoomsWithOutSellByCommunityIdCount", info);
+        if (businessRoomInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessRoomInfos.get(0).get("count").toString());
+    }
 
     @Override
     public List<Map> getRoomInfoByCommunityId(Map info) {
@@ -150,5 +163,15 @@ public class RoomServiceDaoImpl extends BaseServiceDao implements IRoomServiceDa
         return businessRoomInfos;
     }
 
+    @Override
+    public List<Map> getRoomInfoWithOutSellByCommunityId(Map info) {
+        logger.debug("查询小区房屋信息 入参 info : {}", info);
+
+        List<Map> businessRoomInfos = sqlSessionTemplate.selectList("roomServiceDaoImpl.getRoomInfoWithOutSellByCommunityId", info);
+
+        return businessRoomInfos;
+    }
+
+
 
 }

+ 39 - 0
CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java

@@ -143,6 +143,45 @@ public class RoomInnerServiceSMOImpl extends BaseServiceSMO implements IRoomInne
         return roomServiceDaoImpl.queryRoomsByCommunityIdCount(BeanConvertUtil.beanCovertMap(roomDto));
     }
 
+    @Override
+    public int queryRoomsWithOutSellCount(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;
+    }
+
     public IRoomServiceDao getRoomServiceDaoImpl() {
         return roomServiceDaoImpl;
     }

+ 43 - 0
WebService/src/main/java/com/java110/web/components/room/SearchRoomComponent.java

@@ -0,0 +1,43 @@
+package com.java110.web.components.room;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IRoomServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName RoomComponent
+ * @Description TODO 选择房屋组件
+ * @Author wuxw
+ * @Date 2019/5/7 23:40
+ * @Version 1.0
+ * add by wuxw 2019/5/7
+ **/
+@Component("searchRoom")
+public class SearchRoomComponent {
+
+
+    @Autowired
+    private IRoomServiceSMO roomServiceSMOImpl;
+
+    /**
+     * 显示房屋信息
+     *
+     * @param pd 页面信息封装
+     * @return ResponseEntity对象
+     */
+    public ResponseEntity<String> listRoom(IPageData pd) {
+        return roomServiceSMOImpl.listRoomWithOutSell(pd);
+    }
+
+
+    public IRoomServiceSMO getRoomServiceSMOImpl() {
+        return roomServiceSMOImpl;
+    }
+
+    public void setRoomServiceSMOImpl(IRoomServiceSMO roomServiceSMOImpl) {
+        this.roomServiceSMOImpl = roomServiceSMOImpl;
+    }
+}

+ 9 - 0
WebService/src/main/java/com/java110/web/smo/IRoomServiceSMO.java

@@ -26,6 +26,15 @@ public interface IRoomServiceSMO {
     ResponseEntity<String> listRoom(IPageData pd);
 
 
+    /**
+     * 查询 房间信息 未被销售的
+     *
+     * @param pd 页面数据封装对象  分页信息 房屋编号 单元信息
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> listRoomWithOutSell(IPageData pd);
+
+
     /**
      * 修改房屋信息
      * @param pd 页面数据封装对象

+ 32 - 0
WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java

@@ -89,6 +89,38 @@ public class RoomServiceSMOImpl extends BaseComponentSMO implements IRoomService
         return responseEntity;
     }
 
+
+    @Override
+    public ResponseEntity<String> listRoomWithOutSell(IPageData pd) {
+        validateListRoom(pd);
+
+        //校验用户是否有权限
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_ROOM);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+
+
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "根据用户ID查询商户类型失败,未包含storeTypeCd节点");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //数据校验是否 商户是否入驻该小区
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRoomsWithOutSell" + mapToUrlParam(paramIn);
+
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                apiUrl,
+                HttpMethod.GET);
+        return responseEntity;
+    }
+
     @Override
     public ResponseEntity<String> updateRoom(IPageData pd) {
         validateUpdateRoom(pd);

+ 80 - 0
WebService/src/main/resources/components/search-room/searchRoom.html

@@ -0,0 +1,80 @@
+<div id = "searchRoomModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="searchRoomModelLabel" aria-hidden="true" >
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h3 class="modal-title" id="searchRoomModelLabel">选择房屋</h3>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <div class=" row">
+                    <div class="col-lg-12">
+                        <div class="ibox ">
+                            <div class="row">
+
+                                <div class="col-sm-7 m-b-xs">
+
+                                </div>
+                                <div class="col-sm-5">
+                                    <div class="input-group">
+                                        <input placeholder="输入房屋名称" type="text" v-model="searchRoomInfo._currentRoomNum" class="form-control form-control-sm">
+                                        <span class="input-group-append">
+                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="searchRooms()">查询</button>
+                                            </span>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="table-responsive" style="margin-top:15px">
+                                <table class="table table-striped">
+                                    <thead>
+                                    <tr>
+                                        <th>房屋ID</th>
+                                        <th>房屋编号</th>
+                                        <th>单元</th>
+                                        <th>楼层</th>
+                                        <th>房间数</th>
+                                        <th>户型</th>
+                                        <th>创建员工</th>
+                                        <th>操作</th>
+                                    </tr>
+                                    </thead>
+                                    <tbody>
+                                    <tr v-for="room in searchRoomInfo.rooms">
+                                        <td>
+                                            {{room.roomId}}
+                                        </td>
+
+                                        <td>
+                                            {{room.roomNum}}
+                                        </td>
+                                        <td>
+                                            {{room.unitNum}}
+                                        </td>
+                                        <td>
+                                            {{room.layer}}
+                                        </td>
+                                        <td>
+                                            {{room.section}}
+                                        </td>
+                                        <td>
+                                            {{room.apartment}}
+                                        </td>
+                                        <td>
+                                            {{room.userName}}
+                                        </td>
+                                        <td>
+                                            <button class="btn btn-primary btn-xs" v-on:click="chooseRoom(room)">选择</button>
+                                        </td>
+                                    </tr>
+                                    </tbody>
+                                </table>
+                            </div>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 63 - 0
WebService/src/main/resources/components/search-room/searchRoom.js

@@ -0,0 +1,63 @@
+(function(vc){
+    vc.extends({
+        propTypes: {
+           emitChooseRoom:vc.propTypes.string,
+           emitLoadData:vc.propTypes.string
+        },
+        data:{
+            searchRoomInfo:{
+                rooms:[],
+                _currentRoomNum:'',
+            }
+        },
+        _initMethod:function(){
+
+        },
+        _initEvent:function(){
+            vc.on('searchRoom','openSearchRoomModel',function(_param){
+                console.log("打开业主成员界面")
+                $('#searchRoomModel').modal('show');
+                vc.component._refreshSearchRoomData();
+                vc.component._loadAllRoomInfo(1,10);
+            });
+        },
+        methods:{
+            _loadAllRoomInfo:function(_page,_row,_roomNum){
+                var param = {
+                    params:{
+                        page:_page,
+                        row:_row,
+                        communityId:vc.getCurrentCommunity().communityId,
+                        roomNum:_roomNum
+                    }
+                };
+
+                //发送get请求
+               vc.http.get('searchRoom',
+                            'listRoom',
+                             param,
+                             function(json){
+                                var _roomInfo = JSON.parse(json);
+                                vc.component.searchRoomInfo.rooms = _roomInfo.rooms;
+                             },function(){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            chooseRoom:function(_room){
+                vc.emit($props.emitChooseRoom,'chooseRoom',_room);
+                vc.emit($props.emitLoadData,'listRoomData',{
+                    roomId:_room.roomId
+                });
+                $('#searchRoomModel').modal('hide');
+            },
+            searchRooms:function(){
+                vc.component._loadAllRoomInfo(1,10,vc.component.searchRoomInfo._currentRoomNum);
+            },
+            _refreshSearchRoomData:function(){
+                vc.component.searchRoomInfo._currentRoomNum = "";
+            }
+        }
+
+    });
+})(window.vc);

+ 4 - 4
WebService/src/main/resources/components/sell-room-select-room/sellRoomSelectRoom.html

@@ -76,8 +76,8 @@
             </div>
         </div>
     </div>
-    <!--<vc:create name="searchRoom"
-               emitChooseRoom="memberSelectRoom"
-               emitLoadData="listRoomMember"
-    ></vc:create>-->
+    <vc:create name="searchRoom"
+               emitChooseRoom="sellRoomSelectRoom"
+               emitLoadData="sellRoomOther"
+    ></vc:create>
 </div>

+ 3 - 0
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java

@@ -388,6 +388,9 @@ public class ServiceCodeConstant {
     //查询房屋信息
     public static final String SERVICE_CODE_QUERY_ROOMS = "room.queryRooms";
 
+    //查询房屋信息
+    public static final String SERVICE_CODE_QUERY_ROOMS_WITHOUT_SELL = "room.queryRoomsWithOutSell";
+
     //修改房屋信息
     public static final String SERVICE_CODE_UPDATE_ROOMS = "room.updateRoom";
 

+ 19 - 0
java110-core/src/main/java/com/java110/core/smo/room/IRoomInnerServiceSMO.java

@@ -39,4 +39,23 @@ public interface IRoomInnerServiceSMO {
      */
     @RequestMapping(value = "/queryRoomsCount", method = RequestMethod.POST)
     int queryRoomsCount(@RequestBody RoomDto roomDto);
+
+    /**
+     * 查询<p>小区楼</p>总记录数
+     *
+     * @param roomDto 数据对象分享
+     * @return 小区下的小区楼记录数
+     */
+    @RequestMapping(value = "/queryRoomsWithOutSellCount", method = RequestMethod.POST)
+    int queryRoomsWithOutSellCount(@RequestBody RoomDto roomDto);
+
+    /**
+     * <p>查询小区楼信息</p>
+     *
+     *
+     * @param roomDto 数据对象分享
+     * @return RoomDto 对象数据
+     */
+    @RequestMapping(value = "/queryRoomsWithOutSell", method = RequestMethod.POST)
+    List<RoomDto> queryRoomsWithOutSell(@RequestBody RoomDto roomDto);
 }

+ 144 - 1
java110-db/src/main/resources/mapper/room/RoomServiceDaoImplMapper.xml

@@ -320,10 +320,82 @@ where 1 =1
         </if>
 
 
+    </select>
+
+    <!-- 查询小区房屋数量 add by wuxw 2018-07-03 -->
+    <select id="queryRoomsWithOutSellByCommunityIdCount" parameterType="Map" resultType="Map">
+        select
+            count(1) count
+        FROM
+            building_room t,
+            s_community c,
+            s_community_member cm,
+            building_unit u,
+            f_floor f
+        WHERE 1 =1
+            AND t.`unit_id` = u.`unit_id`
+            AND u.`floor_id` = f.`floor_id`
+            AND f.`floor_id` = cm.`member_id`
+            AND cm.`community_id` = c.`community_id`
+            AND cm.`member_type_cd` = '390001200004'
+            AND c.`status_cd` = '0'
+            AND cm.`status_cd` = '0'
+            AND u.`status_cd` = '0'
+            AND f.`status_cd` = '0'
+            AND c.`community_id` = #{communityId}
+        <if test="floorId !=null and floorId != ''">
+            and f.`floor_id`= #{floorId}
+        </if>
+        <if test="unitPrice !=null and unitPrice != ''">
+            and t.unit_price= #{unitPrice}
+        </if>
+        <if test="section !=null and section != ''">
+            and t.section= #{section}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="remark !=null and remark != ''">
+            and t.remark= #{remark}
+        </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="roomId !=null and roomId != ''">
+            and t.room_id= #{roomId}
+        </if>
+        <if test="layer !=null and layer != ''">
+            and t.layer= #{layer}
+        </if>
+        <if test="builtUpArea !=null and builtUpArea != ''">
+            and t.built_up_area= #{builtUpArea}
+        </if>
+        <if test="roomNum !=null and roomNum != ''">
+            and t.room_num= #{roomNum}
+        </if>
+        <if test="unitId !=null and unitId != ''">
+            and t.unit_id= #{unitId}
+        </if>
+        <if test="bId !=null and bId != ''">
+            and t.b_id= #{bId}
+        </if>
+        <if test="apartment !=null and apartment != ''">
+            and t.apartment= #{apartment}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        AND NOT EXISTS(
+            SELECT 1 FROM building_owner_room_rel borr
+            WHERE borr.`status_cd` = '0'
+            AND borr.`room_id` = t.`room_id`
+        )
+
+
     </select>
 
     <!-- 查询小区房屋信息 add by wuxw 2018-07-03 -->
-    <select id="getRoomInfoByCommunityId" parameterType="Map" resultType="Map">
+    <select id="getRoomInfoWithOutSellByCommunityId" parameterType="Map" resultType="Map">
         SELECT  t.unit_price,t.unit_price unitPrice,t.section,t.status_cd,t.status_cd statusCd,t.remark,t.user_id,
         t.user_id userId,t.room_id,t.room_id roomId,t.layer,t.built_up_area,t.built_up_area builtUpArea,t.room_num,
         t.room_num roomNum,t.unit_id,t.unit_id unitId,t.b_id,t.b_id bId,t.apartment,t.state,u.`unit_num` unitNum
@@ -381,6 +453,77 @@ where 1 =1
         <if test="state !=null and state != ''">
             and t.state= #{state}
         </if>
+        AND NOT EXISTS(
+            SELECT 1 FROM building_owner_room_rel borr
+            WHERE borr.`status_cd` = '0'
+            AND borr.`room_id` = t.`room_id`
+        )
+        <if test="page != -1 and page != null">
+            limit #{page},#{row}
+        </if>
+
+    </select>
+
+
+    <!-- 查询小区房屋信息 add by wuxw 2018-07-03 -->
+    <select id="getRoomInfoByCommunityId" parameterType="Map" resultType="Map">
+        SELECT  t.unit_price,t.unit_price unitPrice,t.section,t.status_cd,t.status_cd statusCd,t.remark,t.user_id,
+        t.user_id userId,t.room_id,t.room_id roomId,t.layer,t.built_up_area,t.built_up_area builtUpArea,t.room_num,
+        t.room_num roomNum,t.unit_id,t.unit_id unitId,t.b_id,t.b_id bId,t.apartment,t.state,u.`unit_num` unitNum
+        FROM building_room t,s_community c,s_community_member cm,building_unit u,f_floor f
+        WHERE 1 =1
+        AND t.`unit_id` = u.`unit_id`
+        AND u.`floor_id` = f.`floor_id`
+        AND f.`floor_id` = cm.`member_id`
+        AND cm.`community_id` = c.`community_id`
+        AND cm.`member_type_cd` = '390001200004'
+        AND c.`status_cd` = '0'
+        AND cm.`status_cd` = '0'
+        AND u.`status_cd` = '0'
+        AND f.`status_cd` = '0'
+        AND c.`community_id` = #{communityId}
+        <if test="floorId !=null and floorId != ''">
+            and f.`floor_id`= #{floorId}
+        </if>
+        <if test="unitPrice !=null and unitPrice != ''">
+            and t.unit_price= #{unitPrice}
+        </if>
+        <if test="section !=null and section != ''">
+            and t.section= #{section}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="remark !=null and remark != ''">
+            and t.remark= #{remark}
+        </if>
+        <if test="userId !=null and userId != ''">
+            and t.user_id= #{userId}
+        </if>
+        <if test="roomId !=null and roomId != ''">
+            and t.room_id= #{roomId}
+        </if>
+        <if test="layer !=null and layer != ''">
+            and t.layer= #{layer}
+        </if>
+        <if test="builtUpArea !=null and builtUpArea != ''">
+            and t.built_up_area= #{builtUpArea}
+        </if>
+        <if test="roomNum !=null and roomNum != ''">
+            and t.room_num= #{roomNum}
+        </if>
+        <if test="unitId !=null and unitId != ''">
+            and t.unit_id= #{unitId}
+        </if>
+        <if test="bId !=null and bId != ''">
+            and t.b_id= #{bId}
+        </if>
+        <if test="apartment !=null and apartment != ''">
+            and t.apartment= #{apartment}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
         <if test="page != -1 and page != null">
             limit #{page},#{row}
         </if>