java110 лет назад: 5
Родитель
Сommit
1d5d314d7a

+ 70 - 8
service-api/src/main/java/com/java110/api/listener/room/QueryRoomsListener.java

@@ -2,18 +2,22 @@ package com.java110.api.listener.room;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.FloorDto;
+import com.java110.dto.RoomDto;
+import com.java110.dto.basePrivilege.BasePrivilegeDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.community.IFloorInnerServiceSMO;
+import com.java110.intf.community.IMenuInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.exception.SMOException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.IFloorInnerServiceSMO;
-import com.java110.intf.community.IRoomInnerServiceSMO;
-import com.java110.dto.FloorDto;
-import com.java110.dto.RoomDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.vo.api.ApiRoomDataVo;
 import com.java110.vo.api.ApiRoomVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +27,7 @@ import org.springframework.http.ResponseEntity;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName QueryRoomsListener
@@ -41,6 +46,12 @@ public class QueryRoomsListener extends AbstractServiceApiDataFlowListener {
     @Autowired
     private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_QUERY_ROOMS;
@@ -67,7 +78,8 @@ public class QueryRoomsListener extends AbstractServiceApiDataFlowListener {
         List<RoomDto> roomDtoList = null;
         if (total > 0) {
             roomDtoList = roomInnerServiceSMOImpl.queryRooms(roomDto);
-        }else{
+            refreshRoomOwners(dataFlowContext.getUserId(), reqJson.getString("communityId"), roomDtoList);
+        } else {
             roomDtoList = new ArrayList<>();
         }
         apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
@@ -78,6 +90,43 @@ public class QueryRoomsListener extends AbstractServiceApiDataFlowListener {
         dataFlowContext.setResponseEntity(responseEntity);
     }
 
+    /**
+     * 刷入房屋业主信息
+     *
+     * @param roomDtos
+     */
+    private void refreshRoomOwners(String userId, String communityId, List<RoomDto> roomDtos) {
+        List<String> roomIds = new ArrayList<>();
+        for (RoomDto roomDto : roomDtos) {
+            roomIds.add(roomDto.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(communityId);
+        ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+        for (RoomDto roomDto : roomDtos) {
+            for (OwnerDto tmpOwnerDto : ownerDtos) {
+                if (roomDto.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+                    roomDto.setOwnerId(tmpOwnerDto.getOwnerId());
+                    roomDto.setOwnerName(tmpOwnerDto.getName());
+                    //对业主身份证号隐藏处理
+                    String idCard = tmpOwnerDto.getIdCard();
+                    if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
+                        idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+                    }
+                    //对业主手机号隐藏处理
+                    String link = tmpOwnerDto.getLink();
+                    if (mark.size() == 0 && link != null && !link.equals("")) {
+                        link = link.substring(0, 3) + "****" + link.substring(7);
+                    }
+                    roomDto.setIdCard(idCard);
+                    roomDto.setLink(link);
+                }
+            }
+        }
+    }
+
     /**
      * 校验小区房屋查询入参信息
      *
@@ -107,6 +156,19 @@ public class QueryRoomsListener extends AbstractServiceApiDataFlowListener {
 
     }
 
+    /**
+     * 脱敏处理
+     *
+     * @return
+     */
+    public List<Map> getPrivilegeOwnerList(String resource, String userId) {
+        BasePrivilegeDto basePrivilegeDto = new BasePrivilegeDto();
+        basePrivilegeDto.setResource(resource);
+        basePrivilegeDto.setUserId(userId);
+        List<Map> privileges = menuInnerServiceSMOImpl.checkUserHasResource(basePrivilegeDto);
+        return privileges;
+    }
+
 
     @Override
     public int getOrder() {