wuxw
2019-06-02 cf860d0ae8c520192bbb6b01fa35aa6e37ae00bd
加入物业费信息查询接口
2个文件已修改
2个文件已添加
372 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/fee/QueryFeeListener.java 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/hc小区管理系统数据库模型v1.0.pdb 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/hc小区管理系统数据库模型v1.0.pdm 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/ApiFeeVo.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeListener.java
New file
@@ -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;
    }
}
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 @@
<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>
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 @@
<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>
java110-bean/src/main/java/com/java110/vo/api/ApiFeeVo.java
New file
@@ -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;
    }
}