wuxw
2019-05-08 e773bd21fad4f99149402114cb8f825192506b53
加入小区房屋查询接口
11个文件已修改
4个文件已添加
515 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/AbstractServiceApiDataFlowListener.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/room/QueryRoomsListener.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommunityService/src/main/java/com/java110/community/smo/impl/RoomInnerServiceSMOImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/room/RoomComponent.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/core/BaseComponentSMO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/IRoomServiceSMO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/impl/FloorServiceSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/add-room/addRoom.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/RoomDto.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/ApiRoomDataVo.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/ApiRoomVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-config/db/CommunityService/create_room.sql 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-config/src/main/resources/mapper/room/RoomAttrServiceDaoImplMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/AbstractServiceApiDataFlowListener.java
@@ -35,6 +35,7 @@
    protected static final int DEFAULT_ORDER = 1;
    //默认序列
    protected static final int DEFAULT_SEQ = 1;
    protected static final int MAX_ROW = 50;
    @Autowired
    private RestTemplate restTemplate;
Api/src/main/java/com/java110/api/listener/room/QueryRoomsListener.java
New file
@@ -0,0 +1,117 @@
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("queryRoomsListener")
public class QueryRoomsListener extends AbstractServiceApiDataFlowListener {
    @Autowired
    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
    @Autowired
    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.SERVICE_CODE_QUERY_ROOMS;
    }
    @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.queryRoomsCount(BeanConvertUtil.covertBean(reqJson, RoomDto.class));
        apiRoomVo.setTotal(total);
        if (total > 0) {
            List<RoomDto> roomDtoList = roomInnerServiceSMOImpl.queryRooms(roomDto);
            apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
        }
        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, "rows", "请求报文中未包含rows节点");
        Assert.isInteger(reqJson.getString("page"), "page不是数字");
        Assert.isInteger(reqJson.getString("rows"), "rows不是数字");
        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
        int rows = Integer.parseInt(reqJson.getString("rows"));
        if (rows > MAX_ROW) {
            throw new SMOException(ResponseConstant.RESULT_CODE_ERROR, "rows 数量不能大于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;
    }
}
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
@@ -29,6 +34,9 @@
    @Autowired
    private IRoomServiceDao roomServiceDaoImpl;
    @Autowired
    private IRoomAttrServiceDao roomAttrServiceDaoImpl;
    @Autowired
    private IUserInnerServiceSMO userInnerServiceSMOImpl;
@@ -51,12 +59,18 @@
            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);
        }
    }
@@ -88,6 +121,21 @@
        }
        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
@@ -110,4 +158,12 @@
    public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
        this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
    }
    public IRoomAttrServiceDao getRoomAttrServiceDaoImpl() {
        return roomAttrServiceDaoImpl;
    }
    public void setRoomAttrServiceDaoImpl(IRoomAttrServiceDao roomAttrServiceDaoImpl) {
        this.roomAttrServiceDaoImpl = roomAttrServiceDaoImpl;
    }
}
WebService/src/main/java/com/java110/web/components/room/RoomComponent.java
New file
@@ -0,0 +1,41 @@
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("room")
public class RoomComponent {
    @Autowired
    private IRoomServiceSMO roomServiceSMOImpl;
    /**
     * 显示房屋信息
     *
     * @param pd 页面信息封装
     * @return ResponseEntity对象
     */
    public ResponseEntity<String> listRoom(IPageData pd) {
        return roomServiceSMOImpl.listRoom(pd);
    }
    public IRoomServiceSMO getRoomServiceSMOImpl() {
        return roomServiceSMOImpl;
    }
    public void setRoomServiceSMOImpl(IRoomServiceSMO roomServiceSMOImpl) {
        this.roomServiceSMOImpl = roomServiceSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/core/BaseComponentSMO.java
@@ -3,7 +3,6 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.common.cache.MappingCache;
import com.java110.common.constant.CommonConstant;
import com.java110.common.constant.MappingConstant;
import com.java110.common.constant.ResponseConstant;
import com.java110.common.constant.ServiceConstant;
@@ -12,7 +11,7 @@
import com.java110.common.util.Assert;
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.core.context.IPageData;
import com.java110.web.smo.impl.LoginServiceSMOImpl;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpMethod;
@@ -21,6 +20,7 @@
import org.springframework.web.client.RestTemplate;
import java.lang.reflect.Method;
import java.util.Map;
/**
 * Created by wuxw on 2019/3/22.
@@ -28,6 +28,8 @@
public class BaseComponentSMO extends BaseServiceSMO {
    private static Logger logger = LoggerFactory.getLogger(BaseComponentSMO.class);
    protected static final int MAX_ROW = 50;
    /**
     * 调用组件
@@ -150,7 +152,34 @@
        ResponseEntity<String> responseEntity = null;
        responseEntity = this.callCenterService(restTemplate, pd, "", ServiceConstant.SERVICE_API_URL + "/api/check.user.hasPrivilege?userId=" + pd.getUserId() + "&pId=" + privilegeCode, HttpMethod.GET);
        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            throw new SMOException(1999, "用户没有权限操作权限" + privilegeCode);
            throw new SMOException(ResponseConstant.RESULT_CODE_ERROR, "用户没有权限操作权限" + privilegeCode);
        }
    }
    /**
     * map 参数转 url get 参数 非空值转为get参数 空值忽略
     *
     * @param info map数据
     * @return url get 参数 带?
     */
    protected String mapToUrlParam(Map info) {
        String urlParam = "";
        if (info == null || info.isEmpty()) {
            return urlParam;
        }
        urlParam += "?";
        for (Object key : info.keySet()) {
            if (StringUtils.isEmpty(info.get(key) + "")) {
                continue;
            }
            urlParam += (key + "=" + info.get(key) + "&");
        }
        urlParam = urlParam.endsWith("&") ? urlParam.substring(0, urlParam.length() - 1) : urlParam;
        return urlParam;
    }
}
WebService/src/main/java/com/java110/web/smo/IRoomServiceSMO.java
@@ -15,4 +15,13 @@
     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
     */
    ResponseEntity<String> saveRoom(IPageData pd);
    /**
     * 查询 房间信息
     *
     * @param pd 页面数据封装对象  分页信息 房屋编号 单元信息
     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
     */
    ResponseEntity<String> listRoom(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/impl/FloorServiceSMOImpl.java
@@ -30,7 +30,7 @@
    private static Logger logger = LoggerFactory.getLogger(FloorServiceSMOImpl.class);
    private static final int MAX_ROW = 50;
    @Autowired
    private RestTemplate restTemplate;
WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java
@@ -2,7 +2,9 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.common.constant.PrivilegeCodeConstant;
import com.java110.common.constant.ResponseConstant;
import com.java110.common.constant.ServiceConstant;
import com.java110.common.exception.SMOException;
import com.java110.common.util.Assert;
import com.java110.core.context.IPageData;
import com.java110.web.core.BaseComponentSMO;
@@ -56,6 +58,61 @@
        return responseEntity;
    }
    @Override
    public ResponseEntity<String> listRoom(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.queryRooms" + mapToUrlParam(paramIn);
        responseEntity = this.callCenterService(restTemplate, pd, "",
                apiUrl,
                HttpMethod.GET);
        return responseEntity;
    }
    /**
     * 小区房屋查询数据校验
     *
     * @param pd 页面数据封装对象
     */
    private void validateListRoom(IPageData pd) {
        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
        Assert.jsonObjectHaveKey(pd.getReqData(), "floorId", "请求报文中未包含floorId节点");
        Assert.jsonObjectHaveKey(pd.getReqData(), "page", "请求报文中未包含page节点");
        Assert.jsonObjectHaveKey(pd.getReqData(), "rows", "请求报文中未包含rows节点");
        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
        Assert.isInteger(paramIn.getString("page"), "page不是数字");
        Assert.isInteger(paramIn.getString("rows"), "rows不是数字");
        Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
        int rows = Integer.parseInt(paramIn.getString("rows"));
        if (rows > MAX_ROW) {
            throw new SMOException(ResponseConstant.RESULT_CODE_ERROR, "rows 数量不能大于50");
        }
    }
    /**
     * 校验前台传入房屋信息
     * @param pd 页面数据封装
@@ -71,6 +128,8 @@
        Assert.jsonObjectHaveKey(pd.getReqData(), "builtUpArea", "请求报文中未包含builtUpArea节点");
        Assert.jsonObjectHaveKey(pd.getReqData(), "unitPrice", "请求报文中未包含unitPrice节点");
        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
        Assert.isInteger(reqJson.getString("section"), "房间数不是有效数字");
        Assert.isMoney(reqJson.getString("builtUpArea"), "建筑面积数据格式错误");
        Assert.isMoney(reqJson.getString("unitPrice"), "房屋单价数据格式错误");
WebService/src/main/resources/components/add-room/addRoom.js
@@ -128,6 +128,11 @@
                                    limit:"money",
                                    param:"",
                                    errInfo:"建筑面积错误,如 300.00"
                                },
                                {
                                  limit:"maxLength",
                                  param:"12",
                                  errInfo:"建筑面积数字长度不能超过6位"
                                }
                            ],
                            'addRoomInfo.unitPrice':[
@@ -140,7 +145,12 @@
                                    limit:"money",
                                    param:"",
                                    errInfo:"房屋单价错误 如 300.00"
                                }
                                },
                                 {
                                   limit:"maxLength",
                                   param:"12",
                                   errInfo:"房屋单价数字长度不能超过12位"
                                 }
                            ],
                            'addRoomInfo.remark':[
                                {
@@ -170,7 +180,7 @@
                        if(res.status == 200){
                            //关闭model
                            $('#addRoomModel').modal('hide');
                            vc.emit('room','loadRoom',{
                            vc.emit('room','loadData',{
                                floorId:vc.component.addRoomInfo.floorId
                            });
                            return ;
java110-bean/src/main/java/com/java110/dto/RoomDto.java
@@ -2,6 +2,7 @@
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
 * @ClassName FloorDto
@@ -23,6 +24,8 @@
    private String roomNum;
    private String unitId;
    private String apartment;
    private List<RoomAttrDto> roomAttrDto;
    private Date createTime;
@@ -126,4 +129,12 @@
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
    public List<RoomAttrDto> getRoomAttrDto() {
        return roomAttrDto;
    }
    public void setRoomAttrDto(List<RoomAttrDto> roomAttrDto) {
        this.roomAttrDto = roomAttrDto;
    }
}
java110-bean/src/main/java/com/java110/vo/api/ApiRoomDataVo.java
New file
@@ -0,0 +1,108 @@
package com.java110.vo.api;
import com.java110.vo.MorePageVo;
import java.io.Serializable;
/**
 * @ClassName ApiRoomVo
 * @Description TODO
 * @Author wuxw
 * @Date 2019/5/8 0:26
 * @Version 1.0
 * add by wuxw 2019/5/8
 **/
public class ApiRoomDataVo implements Serializable {
    private String unitPrice;
    private String section;
    private String remark;
    private String userName;
    private String roomId;
    private String layer;
    private String builtUpArea;
    private String roomNum;
    private String unitId;
    private String apartment;
    public String getUnitPrice() {
        return unitPrice;
    }
    public void setUnitPrice(String unitPrice) {
        this.unitPrice = unitPrice;
    }
    public String getSection() {
        return section;
    }
    public void setSection(String section) {
        this.section = section;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getRoomId() {
        return roomId;
    }
    public void setRoomId(String roomId) {
        this.roomId = roomId;
    }
    public String getLayer() {
        return layer;
    }
    public void setLayer(String layer) {
        this.layer = layer;
    }
    public String getBuiltUpArea() {
        return builtUpArea;
    }
    public void setBuiltUpArea(String builtUpArea) {
        this.builtUpArea = builtUpArea;
    }
    public String getRoomNum() {
        return roomNum;
    }
    public void setRoomNum(String roomNum) {
        this.roomNum = roomNum;
    }
    public String getUnitId() {
        return unitId;
    }
    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }
    public String getApartment() {
        return apartment;
    }
    public void setApartment(String apartment) {
        this.apartment = apartment;
    }
}
java110-bean/src/main/java/com/java110/vo/api/ApiRoomVo.java
New file
@@ -0,0 +1,28 @@
package com.java110.vo.api;
import com.java110.vo.MorePageVo;
import java.io.Serializable;
import java.util.List;
/**
 * @ClassName ApiRoomVo
 * @Description TODO
 * @Author wuxw
 * @Date 2019/5/8 1:00
 * @Version 1.0
 * add by wuxw 2019/5/8
 **/
public class ApiRoomVo extends MorePageVo implements Serializable {
    private List<ApiRoomDataVo> rooms;
    public List<ApiRoomDataVo> getRooms() {
        return rooms;
    }
    public void setRooms(List<ApiRoomDataVo> rooms) {
        this.rooms = rooms;
    }
}
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java
@@ -381,6 +381,10 @@
    public static final String SERVICE_CODE_DELETE_UNIT = "unit.deleteUnit";
    //保存小区单元
    //保存房屋
    public static final String SERVICE_CODE_SAVE_ROOM = "room.saveRoom";
    //查询房屋信息
    public static final String SERVICE_CODE_QUERY_ROOMS = "room.queryRooms";
}
java110-config/db/CommunityService/create_room.sql
@@ -74,10 +74,10 @@
  room_num VARCHAR(12) NOT NULL COMMENT '房屋编号',
  unit_id VARCHAR(30) NOT NULL COMMENT '单元ID',
  layer int NOT NULL COMMENT '层数',
  section varchar(4) NOT NULL COMMENT '室',
  section int NOT NULL COMMENT '室',
  apartment varchar(4) NOT NULL COMMENT '户型',
  built_up_area varchar(4) NOT NULL COMMENT '建筑面积',
  unit_price varchar(4) NOT NULL COMMENT '每平米单价',
  built_up_area decimal(6,2) NOT NULL COMMENT '建筑面积',
  unit_price DECIMAL(12,2) NOT NULL COMMENT '每平米单价',
  user_id VARCHAR(30) NOT NULL COMMENT '用户ID',
  remark VARCHAR(200) NOT NULL COMMENT '备注',
  create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
@@ -95,10 +95,10 @@
  room_num VARCHAR(12) NOT NULL COMMENT '房屋编号',
  unit_id VARCHAR(30) NOT NULL COMMENT '单元ID',
  layer int NOT NULL COMMENT '层数',
  section varchar(4) NOT NULL COMMENT '室',
  section int NOT NULL COMMENT '室',
  apartment varchar(4) NOT NULL COMMENT '户型',
  built_up_area varchar(4) NOT NULL COMMENT '建筑面积',
  unit_price varchar(4) NOT NULL COMMENT '每平米单价',
  built_up_area decimal(6,2) NOT NULL COMMENT '建筑面积',
  unit_price DECIMAL(12,2) NOT NULL COMMENT '每平米单价',
  user_id VARCHAR(30) NOT NULL COMMENT '用户ID',
  remark VARCHAR(200) NOT NULL COMMENT '备注',
  create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
java110-config/src/main/resources/mapper/room/RoomAttrServiceDaoImplMapper.xml
@@ -95,7 +95,13 @@
</if> 
<if test="page != -1 and page != null and page != ''">
   limit page,row
</if>
</if>
        <if test="roomIds != null and roomIds != null">
            and t.room_id in
            <foreach collection="roomIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
    </select>