Ver código fonte

加入物业费信息查询接口

wuxw 6 anos atrás
pai
commit
cf860d0ae8

+ 232 - 0
Api/src/main/java/com/java110/api/listener/fee/QueryFeeListener.java

@@ -0,0 +1,232 @@
+package com.java110.api.listener.fee;
+
+
+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.ListenerExecuteException;
+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.fee.IFeeConfigInnerServiceSMO;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
+import com.java110.core.smo.floor.IFloorInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.dto.FeeConfigDto;
+import com.java110.dto.FeeDto;
+import com.java110.dto.FloorDto;
+import com.java110.dto.OwnerDto;
+import com.java110.dto.OwnerRoomRelDto;
+import com.java110.dto.RoomDto;
+import com.java110.dto.UnitDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.vo.api.ApiFeeVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.rmi.server.UnicastRemoteObject;
+import java.util.List;
+
+/**
+ * @ClassName FloorDto
+ * @Description 小区楼数据层侦听类
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@Java110Listener("queryFee")
+public class QueryFeeListener extends AbstractServiceApiDataFlowListener {
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_QUERY_FEE_CONFIG;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+    /**
+     * 业务层数据处理
+     *
+     * @param event 时间对象
+     */
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        //获取请求数据
+        JSONObject reqJson = dataFlowContext.getReqJson();
+        validateFeeData(reqJson);
+        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+        feeDtoParamIn.setPayerObjId(reqJson.getString("roomId"));
+
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
+        ResponseEntity<String> responseEntity = null;
+        if (feeDtos == null || feeDtos.size() == 0) {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+        }
+
+        FeeDto feeDto = feeDtos.get(0);
+
+        ApiFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiFeeVo.class);
+
+        //查询 房屋信息
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(feeDto.getPayerObjId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        if (roomDtos == null || roomDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到房屋信息 roomId" + feeDto.getPayerObjId());
+        }
+
+        roomDto = roomDtos.get(0);
+        apiFeeVo.setRoomId(roomDto.getRoomId());
+        apiFeeVo.setRoomNum(roomDto.getRoomNum());
+
+        //查询单元信息
+        UnitDto unitDto = new UnitDto();
+        unitDto.setUnitId(roomDto.getUnitId());
+        List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto);
+
+        if (unitDtos == null || unitDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到单元信息 unitId" + roomDto.getUnitId());
+        }
+
+        unitDto = unitDtos.get(0);
+
+        apiFeeVo.setUnitId(unitDto.getUnitId());
+        apiFeeVo.setUnitNum(unitDto.getUnitNum());
+
+        //查询 小区楼信息
+        FloorDto floorDto = new FloorDto();
+        floorDto.setFloorId(unitDto.getFloorId());
+        List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
+
+        if (floorDtos == null || floorDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到小区楼信息 floorId" + unitDto.getFloorId());
+        }
+
+        floorDto = floorDtos.get(0);
+        apiFeeVo.setFloorNum(floorDto.getFloorNum());
+        apiFeeVo.setFloorId(floorDto.getFloorId());
+
+        // 业主信息
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(roomDto.getRoomId());
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到房屋和业主关系信息 roomId" + roomDto.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+
+        if (ownerDtos == null || ownerDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到业主信息 ownerId" + ownerRoomRelDtos.get(0).getOwnerId());
+        }
+        ownerDto = ownerDtos.get(0);
+        apiFeeVo.setOwnerId(ownerDto.getOwnerId());
+        apiFeeVo.setOwnerName(ownerDto.getName());
+        apiFeeVo.setLink(ownerDto.getLink());
+
+        responseEntity = new ResponseEntity<String>(apiFeeVo.toString(), HttpStatus.OK);
+
+
+        dataFlowContext.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 校验查询条件是否满足条件
+     *
+     * @param reqJson 包含查询条件
+     */
+    private void validateFeeData(JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "feeTypeCd", "请求中未包含feeTypeCd信息");
+        Assert.jsonObjectHaveKey(reqJson, "roomId", "请求中未包含roomId信息");
+
+
+    }
+
+    @Override
+    public int getOrder() {
+        return super.DEFAULT_ORDER;
+    }
+
+    public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
+        return feeInnerServiceSMOImpl;
+    }
+
+    public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
+        this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
+    }
+
+
+    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
+        return roomInnerServiceSMOImpl;
+    }
+
+    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
+        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
+    }
+
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+
+    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
+        return ownerInnerServiceSMOImpl;
+    }
+
+    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
+        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
+    }
+
+    public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
+        return ownerRoomRelInnerServiceSMOImpl;
+    }
+
+    public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
+        this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
+    }
+}

+ 2 - 2
docs/hc小区管理系统数据库模型v1.0.pdb

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?PowerDesigner AppLocale="UTF16" ID="{0769820D-50C2-43E8-9E22-B3D04BAFBB81}" Label="" LastModificationDate="1559352008" Name="hc小区管理系统数据库模型v1.0" Objects="952" Symbols="92" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.1.0.2850"?>
+<?PowerDesigner AppLocale="UTF16" ID="{0769820D-50C2-43E8-9E22-B3D04BAFBB81}" Label="" LastModificationDate="1559446936" Name="hc小区管理系统数据库模型v1.0" Objects="952" Symbols="92" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.1.0.2850"?>
 <!-- do not edit this file -->
 
 <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@@ -24569,7 +24569,7 @@ LABL 0 新宋体,8,N</a:FontList>
 <a:Code>MYSQL50</a:Code>
 <a:CreationDate>1558582641</a:CreationDate>
 <a:Creator>Administrator</a:Creator>
-<a:ModificationDate>1559352008</a:ModificationDate>
+<a:ModificationDate>1559446936</a:ModificationDate>
 <a:Modifier>Administrator</a:Modifier>
 <a:TargetModelURL>file:///%_DBMS%/mysql50.xdb</a:TargetModelURL>
 <a:TargetModelID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetModelID>

+ 2 - 2
docs/hc小区管理系统数据库模型v1.0.pdm

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?PowerDesigner AppLocale="UTF16" ID="{0769820D-50C2-43E8-9E22-B3D04BAFBB81}" Label="" LastModificationDate="1559352008" Name="hc小区管理系统数据库模型v1.0" Objects="952" Symbols="92" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.1.0.2850"?>
+<?PowerDesigner AppLocale="UTF16" ID="{0769820D-50C2-43E8-9E22-B3D04BAFBB81}" Label="" LastModificationDate="1559446936" Name="hc小区管理系统数据库模型v1.0" Objects="952" Symbols="92" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.1.0.2850"?>
 <!-- do not edit this file -->
 
 <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@@ -24569,7 +24569,7 @@ LABL 0 新宋体,8,N</a:FontList>
 <a:Code>MYSQL50</a:Code>
 <a:CreationDate>1558582641</a:CreationDate>
 <a:Creator>Administrator</a:Creator>
-<a:ModificationDate>1559352008</a:ModificationDate>
+<a:ModificationDate>1559446936</a:ModificationDate>
 <a:Modifier>Administrator</a:Modifier>
 <a:TargetModelURL>file:///%_DBMS%/mysql50.xdb</a:TargetModelURL>
 <a:TargetModelID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetModelID>

+ 132 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiFeeVo.java

@@ -0,0 +1,132 @@
+package com.java110.vo.api;
+
+/**
+ * @ClassName ApiFeeVo
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2019/6/2 18:05
+ * @Version 1.0
+ * add by wuxw 2019/6/2
+ **/
+public class ApiFeeVo {
+
+
+   private String feeId;
+   private String floorNum;
+   private String floorId;
+   private String unitId;
+   private String unitNum;
+   private String roomId;
+   private String roomNum;
+   private String ownerId;
+   private String ownerName;
+   private String link;
+   private String startTime;
+   private String endTime;
+   private String amount;
+
+
+    public String getFeeId() {
+        return feeId;
+    }
+
+    public void setFeeId(String feeId) {
+        this.feeId = feeId;
+    }
+
+    public String getFloorNum() {
+        return floorNum;
+    }
+
+    public void setFloorNum(String floorNum) {
+        this.floorNum = floorNum;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomNum() {
+        return roomNum;
+    }
+
+    public void setRoomNum(String roomNum) {
+        this.roomNum = roomNum;
+    }
+
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getAmount() {
+        return amount;
+    }
+
+    public void setAmount(String amount) {
+        this.amount = amount;
+    }
+
+    public String getUnitId() {
+        return unitId;
+    }
+
+    public void setUnitId(String unitId) {
+        this.unitId = unitId;
+    }
+
+    public String getUnitNum() {
+        return unitNum;
+    }
+
+    public void setUnitNum(String unitNum) {
+        this.unitNum = unitNum;
+    }
+
+    public String getFloorId() {
+        return floorId;
+    }
+
+    public void setFloorId(String floorId) {
+        this.floorId = floorId;
+    }
+}