Browse Source

房屋出售开发完成,待测试

吴学文 7 years ago
parent
commit
ed08f12a55

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

@@ -86,7 +86,7 @@ public class QueryRoomsWithOutSellListener extends AbstractServiceApiDataFlowLis
     private void freshFloorIdToParam(JSONObject reqJson) {
 
         FloorDto floorDto = BeanConvertUtil.covertBean(reqJson, FloorDto.class);
-        String floorId = "";
+        String floorId = "001";
         //检查 请求报文中是否有floorNum 小区楼编号,如果没有就随机选一个
         try {
             //if (!reqJson.containsKey("floorNum") || StringUtils.isEmpty(reqJson.getString("floorNum"))) {

+ 135 - 0
Api/src/main/java/com/java110/api/listener/room/SellRoomListener.java

@@ -0,0 +1,135 @@
+package com.java110.api.listener.room;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @ClassName SaveUnitListener
+ * @Description TODO 售卖房屋信息
+ * @Author wuxw
+ * @Date 2019/5/3 11:54
+ * @Version 1.0
+ * add by wuxw 2019/5/3
+ **/
+@Java110Listener("sellRoomListener")
+public class SellRoomListener extends AbstractServiceApiDataFlowListener {
+    private static Logger logger = LoggerFactory.getLogger(SellRoomListener.class);
+
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_SELL_ROOM;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+
+        logger.debug("ServiceDataFlowEvent : {}", event);
+
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        AppService service = event.getAppService();
+
+        String paramIn = dataFlowContext.getReqData();
+
+        //校验数据
+        validate(paramIn);
+        JSONObject paramObj = JSONObject.parseObject(paramIn);
+
+        HttpHeaders header = new HttpHeaders();
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        //添加单元信息
+        businesses.add(sellRoom(paramObj, dataFlowContext));
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
+
+        dataFlowContext.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 售卖房屋信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject sellRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("relId", "-1");
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerRoomRel", businessUnit);
+
+        return business;
+    }
+
+    /**
+     * 数据校验
+     *
+     * @param paramIn "communityId": "7020181217000001",
+     *                "memberId": "3456789",
+     *                "memberTypeCd": "390001200001"
+     */
+    private void validate(String paramIn) {
+        Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(paramIn, "ownerId", "请求报文中未包含ownerId节点");
+        Assert.jsonObjectHaveKey(paramIn, "roomId", "请求报文中未包含roomId节点");
+        Assert.jsonObjectHaveKey(paramIn, "state", "请求报文中未包含state节点");
+
+        JSONObject paramObj = JSONObject.parseObject(paramIn);
+        Assert.hasLength(paramObj.getString("communityId"), "小区ID不能为空");
+        Assert.hasLength(paramObj.getString("ownerId"), "ownerId不能为空");
+        Assert.hasLength(paramObj.getString("roomId"), "roomId不能为空");
+        Assert.hasLength(paramObj.getString("state"), "state不能为空");
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+}

+ 36 - 0
WebService/src/main/java/com/java110/web/components/room/SellRoomComponent.java

@@ -0,0 +1,36 @@
+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;
+
+/**
+ * 售卖房屋
+ */
+@Component("sellRoom")
+public class SellRoomComponent {
+
+    @Autowired
+    private IRoomServiceSMO roomServiceSMOImpl;
+
+    /**
+     * 售卖房屋
+     *
+     * @param pd 包含floorId 和小区ID 页面封装对象
+     * @return 单元信息
+     */
+    public ResponseEntity<String> sell(IPageData pd) {
+        return roomServiceSMOImpl.sellRoom(pd);
+    }
+
+
+    public IRoomServiceSMO getRoomServiceSMOImpl() {
+        return roomServiceSMOImpl;
+    }
+
+    public void setRoomServiceSMOImpl(IRoomServiceSMO roomServiceSMOImpl) {
+        this.roomServiceSMOImpl = roomServiceSMOImpl;
+    }
+}

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

@@ -48,4 +48,11 @@ public interface IRoomServiceSMO {
      * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
      */
     ResponseEntity<String> deleteRoom(IPageData pd);
+
+    /**
+     * 销售房屋信息
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> sellRoom(IPageData pd);
 }

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

@@ -177,6 +177,33 @@ public class RoomServiceSMOImpl extends BaseComponentSMO implements IRoomService
         return responseEntity;
     }
 
+    @Override
+    public ResponseEntity<String> sellRoom(IPageData pd) {
+
+        validateSellRoom(pd);
+
+        return null;
+    }
+
+    /**
+     * 小区房屋查询数据校验
+     *
+     * @param pd 页面数据封装对象
+     */
+    private void validateSellRoom(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "ownerId", "请求报文中未包含ownerId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "roomId", "请求报文中未包含roomId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "state", "请求报文中未包含state节点");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
+        Assert.hasLength(paramIn.getString("ownerId"), "ownerId不能为空");
+        Assert.hasLength(paramIn.getString("roomId"), "roomId不能为空");
+        Assert.hasLength(paramIn.getString("state"), "state不能为空");
+
+    }
+
 
     /**
      * 小区房屋查询数据校验

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

@@ -19,7 +19,7 @@
                 console.log("打开业主成员界面")
                 $('#searchRoomModel').modal('show');
                 vc.component._refreshSearchRoomData();
-                vc.component._loadAllRoomInfo(1,10);
+                //vc.component._loadAllRoomInfo(1,10);
             });
         },
         methods:{
@@ -60,7 +60,7 @@
                 $('#searchRoomModel').modal('hide');
             },
             searchRooms:function(){
-                vc.component._loadAllRoomInfo(1,10,vc.component.searchRoomInfo._currentRoomNum);
+                vc.component._loadAllRoomInfo(1,15,vc.component.searchRoomInfo._currentRoomNum);
             },
             _refreshSearchRoomData:function(){
                 vc.component.searchRoomInfo._currentRoomNum = "";

+ 2 - 2
WebService/src/main/resources/components/sell-room-other/sellRoomOther.html

@@ -10,7 +10,7 @@
                         <div class="form-group row">
                             <label class="col-sm-2 col-form-label">出售状态</label>
                             <div class="col-sm-10">
-                                <select class="custom-select" v-model="otherInfo.state">
+                                <select class="custom-select" v-model="otherInfo.otherState">
                                     <option selected  disabled value="">必填,请选择状态</option>
                                     <option value="2001">业主未迁入</option>
                                     <option value="2001">业主迁入</option>
@@ -22,7 +22,7 @@
                         <div class="form-group row">
                             <label class="col-sm-2 col-form-label">备注</label>
                             <div class="col-sm-10">
-                                <textarea v-model="otherInfo.remark" type="text" placeholder="请填写备注信息" rows="3" class="form-control"></textarea>
+                                <textarea v-model="otherInfo.otherRemark" type="text" placeholder="请填写备注信息" rows="3" class="form-control"></textarea>
                             </div>
                         </div>
                     </div>

+ 11 - 3
WebService/src/main/resources/components/sell-room-other/sellRoomOther.js

@@ -6,11 +6,19 @@
     vc.extends({
         data:{
             otherInfo:{
-                ownerId:"",
-                state:"",
-                remark:""
+                otherState:"",
+                otherRemark:""
             }
         },
+        watch:{
+            otherInfo:{
+                deep: true,
+                handler:function(){
+                    vc.emit('sellRoom','notify',vc.component.otherInfo);
+
+                }
+             }
+        },
         _initMethod:function(){
 
         },

+ 1 - 0
WebService/src/main/resources/components/sell-room-select-owner/sellRoomSelectOwner.js

@@ -21,6 +21,7 @@
         _initEvent:function(){
             vc.on('sellRoomSelectOwner','chooseOwner',function(_owner){
                 vc.component.ownerInfo = _owner;
+                vc.emit('sellRoom','notify',_owner);
             });
 
         },

+ 17 - 1
WebService/src/main/resources/components/sell-room-select-room/sellRoomSelectRoom.js

@@ -21,13 +21,29 @@
 
         },
         _initEvent:function(){
-            vc.on('memberSelectRoom','chooseRoom',function(_room){
+            vc.on('sellRoomSelectRoom','chooseRoom',function(_room){
                 vc.component.roomInfo = _room;
+                vc.emit('sellRoom','notify',_room);
             });
 
         },
         methods:{
 
+            showState:function(_state){
+                if(_state == '2001'){
+                    return "房屋已售";
+                }else if(_state == '2002'){
+                    return "房屋未售";
+                }else if(_state == '2003'){
+                    return "已交定金";
+                }
+                else if(_state == '2004'){
+                    return "已出租";
+                }else{
+                    return "未知";
+                }
+            },
+
             openSearchRoomModel(){
                 vc.emit('searchRoom','openSearchRoomModel',{});
             }

+ 68 - 104
WebService/src/main/resources/components/sell-room/sellRoom.js

@@ -2,109 +2,92 @@
     入驻小区
 **/
 (function(vc){
-    var DEFAULT_PAGE = 1;
-    var DEFAULT_ROW = 10;
     vc.extends({
         data:{
-            roomUnits:[],
-            roomInfo:{
-                rooms:[],
-                total:0,
-                records:1,
-                floorId:'',
-                unitId:'',
+            sellRoomInfo:{
+                ownerId:'',
+                roomId:'',
                 state:'',
-                roomNum:''
+                remark:''
             }
         },
         _initMethod:function(){
 
         },
         _initEvent:function(){
-            vc.on('room','listRoom',function(_param){
-                  vc.component.listRoom();
-            });
-            vc.on('room','loadData',function(_param){
-                vc.component.roomInfo.floorId = _param.floorId;
-                vc.component.roomInfo.unitId = '';
-                vc.component.roomInfo.state = '';
-                vc.component.roomInfo.roomNum = '';
+            vc.on('sellRoom','notify',function(_param){
+                  //vc.copyObject(_param,vc.component.sellRoomInfo);
+
+                  if(_param.hasOwnProperty("ownerId")){
+                    vc.component.sellRoomInfo.ownerId = _param.ownerId;
+                  }
+
+                   if(_param.hasOwnProperty("roomId")){
+                      vc.component.sellRoomInfo.roomId = _param.roomId;
+                    }
+
+                if(_param.hasOwnProperty("otherState")){
+                   vc.component.sellRoomInfo.state = _param.otherState;
+                 }
+
+                  if(_param.hasOwnProperty("otherRemark")){
+                     vc.component.sellRoomInfo.remark = _param.otherRemark;
+                   }
+
 
-                vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
-                vc.component.loadUnits(_param.floorId);
-            });
-            vc.on('pagination','page_event',function(_currentPage){
-                vc.component.listRoom(_currentPage,DEFAULT_ROW);
             });
         },
         methods:{
-            listRoom:function(_page,_row){
-                var param = {
-                    params:{
-                        page:_page,
-                        row:_row,
-                        communityId:vc.getCurrentCommunity().communityId,
-                        floorId:vc.component.roomInfo.floorId,
-                        unitId:vc.component.roomInfo.unitId,
-                        state:vc.component.roomInfo.state,
-                        roomNum:vc.component.roomInfo.roomNum
+            sellRoomValidate:function(){
+                        return vc.validate.validate({
+                            sellRoomInfo:vc.component.sellRoomInfo
+                        },{
+                            'sellRoomInfo.ownerId':[
+                                {
+                                    limit:"required",
+                                    param:"",
+                                    errInfo:"未选择业主"
+                                }
+                            ],
+                            'sellRoomInfo.roomId':[
+                                {
+                                    limit:"required",
+                                    param:"",
+                                    errInfo:"未选择房屋"
+                                }
+                            ],
+                            'sellRoomInfo.state':[
+                                {
+                                    limit:"required",
+                                    param:"",
+                                    errInfo:"未选择出售状态"
+                                }
+                            ],
 
-                    }
-                }
-               //发送get请求
-               vc.http.get('room',
-                            'listRoom',
-                             param,
-                             function(json,res){
-                                var listRoomData =JSON.parse(json);
 
-                                vc.component.roomInfo.total = listRoomData.total;
-                                vc.component.roomInfo.records = listRoomData.records;
-                                vc.component.roomInfo.rooms = listRoomData.rooms;
+                        });
+             },
 
-                                vc.emit('pagination','init',{
-                                    total:vc.component.roomInfo.records,
-                                    currentPage:_page
-                                });
-                             },function(errInfo,error){
-                                console.log('请求失败处理');
-                             }
-                           );
-            },
-            _openEditRoomModel:function(_room){
-                _room.floorId = vc.component.roomInfo.floorId;
-                vc.emit('editRoom','openEditRoomModal',_room);
-            },
-            _openDelRoomModel:function(_room){
-                 _room.floorId = vc.component.roomInfo.floorId;
-                 vc.emit('deleteRoom','openRoomModel',_room);
-            },
-            /**
-                根据楼ID加载房屋
-            **/
-            loadUnits:function(_floorId){
-                vc.component.addRoomUnits = [];
-                var param = {
-                    params:{
-                        floorId:_floorId,
-                        communityId:vc.getCurrentCommunity().communityId
-                    }
+            doSellRoom:function(){
+                //
+                if(!vc.component.sellRoomValidate()){
+                    vc.message(vc.validate.errInfo);
+                    return ;
                 }
-                vc.http.get(
-                    'room',
-                    'loadUnits',
-                     param,
+
+                vc.component.sellRoomInfo.communityId:vc.getCurrentCommunity().communityId;
+            vc.http.post(
+                    'sellRoom',
+                    'sell',
+                    JSON.stringify(vc.component.sellRoomInfo),
+                    {
+                        emulateJSON:true
+                     },
                      function(json,res){
                         //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                         if(res.status == 200){
-                            var tmpUnits = JSON.parse(json);
-                            vc.component.roomUnits = tmpUnits;
-                            /*if(tmpUnits == null || tmpUnits.length == 0){
-                                return ;
-                            }
-                            for(var unitIndex = 0; unitIndex < tmpUnits.length;unitIndex++){
-                               vc.component.addRoomInfo.units[unitIndex] = tmpUnits[unitIndex];
-                            }*/
+                            //关闭model
+
                             return ;
                         }
                         vc.message(json);
@@ -114,27 +97,8 @@
 
                         vc.message(errInfo);
                      });
-            },
-            queryRoomMethod:function(){
-                vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
-            },
-            showState:function(_state){
-                if(_state == '2001'){
-                    return "房屋已售";
-                }else if(_state == '2002'){
-                    return "房屋未售";
-                }else if(_state == '2003'){
-                    return "已交定金";
-                }
-                else if(_state == '2004'){
-                    return "已出租";
-                }else{
-                    return "未知";
-                }
-            },
-            doSellRoom:function(){
-                            //
-                        }
+
+            }
         }
     });
 })(window.vc);

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

@@ -385,6 +385,12 @@ public class ServiceCodeConstant {
     public static final String SERVICE_CODE_SAVE_ROOM = "room.saveRoom";
 
 
+    //售卖房屋
+    public static final String SERVICE_CODE_SELL_ROOM = "room.sellRoom";
+
+
+
+
     //查询房屋信息
     public static final String SERVICE_CODE_QUERY_ROOMS = "room.queryRooms";