Kaynağa Gözat

房屋加入缓存

java110 5 yıl önce
ebeveyn
işleme
5403eb830e

+ 22 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -1,6 +1,8 @@
 package com.java110.dto.fee;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.RoomDto;
+import com.java110.dto.owner.OwnerCarDto;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -114,6 +116,10 @@ public class FeeDto extends PageDto implements Serializable {
 
     private List<FeeAttrDto> feeAttrDtos;
 
+    private List<RoomDto> cacheRooms;
+
+    private List<OwnerCarDto> cacheOwnerCars;
+
 
     public String getAmount() {
         return amount;
@@ -548,4 +554,20 @@ public class FeeDto extends PageDto implements Serializable {
     public void setOwnerId(String ownerId) {
         this.ownerId = ownerId;
     }
+
+    public List<RoomDto> getCacheRooms() {
+        return cacheRooms;
+    }
+
+    public void setCacheRooms(List<RoomDto> cacheRooms) {
+        this.cacheRooms = cacheRooms;
+    }
+
+    public List<OwnerCarDto> getCacheOwnerCars() {
+        return cacheOwnerCars;
+    }
+
+    public void setCacheOwnerCars(List<OwnerCarDto> cacheOwnerCars) {
+        this.cacheOwnerCars = cacheOwnerCars;
+    }
 }

+ 8 - 2
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java

@@ -159,7 +159,10 @@ public class ComputeFeeSMOImpl implements IComputeFeeSMO {
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(feeDto.getCommunityId());
         roomDto.setRoomId(feeDto.getPayerObjId());
-        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        List<RoomDto> roomDtos = feeDto.getCacheRooms();
+        if(roomDtos == null || roomDtos.size() < 1) {
+            roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        }
 
         if (roomDtos == null || roomDtos.size() < 1) { //数据有问题
             return;
@@ -588,7 +591,10 @@ public class ComputeFeeSMOImpl implements IComputeFeeSMO {
             RoomDto roomDto = new RoomDto();
             roomDto.setRoomId(feeDto.getPayerObjId());
             roomDto.setCommunityId(feeDto.getCommunityId());
-            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+            List<RoomDto> roomDtos = feeDto.getCacheRooms();
+            if(roomDtos == null || roomDtos.size() < 1) {
+                roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+            }
             if (roomDtos == null || roomDtos.size() != 1) {
                 throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查到房屋信息,查询多条数据");
             }

+ 8 - 0
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java

@@ -171,6 +171,10 @@ public class QueryOweFeeImpl implements IQueryOweFee {
         roomDto.setCommunityId(feeDto.getCommunityId());
         roomDto.setRoomId(feeDto.getPayerObjId());
         List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        if (roomDtos == null || roomDtos.size() < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "成功", new JSONArray());
+        }
         //查询费用信息arrearsEndTime
         FeeDto tmpFeeDto = null;
         List<RoomDto> tmpRoomDtos = new ArrayList<>();
@@ -186,8 +190,12 @@ public class QueryOweFeeImpl implements IQueryOweFee {
                 feeDtos = new ArrayList<>();
                 return ResultVo.createResponseEntity(feeDtos);
             }
+
             List<FeeDto> tmpFeeDtos = new ArrayList<>();
             for (FeeDto tempFeeDto : feeDtos) {
+                List<RoomDto> tmpCacheRoomDtos = new ArrayList<>();
+                tmpCacheRoomDtos.add(tmpRoomDto);
+                tempFeeDto.setCacheRooms(tmpCacheRoomDtos);
                 computeFeeSMOImpl.computeEveryOweFee(tempFeeDto);//计算欠费金额
                 //如果金额为0 就排除
                 if (tempFeeDto.getFeePrice() > 0 && tempFeeDto.getEndTime().getTime() <= DateUtil.getCurrentDate().getTime()) {