From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能

---
 service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java |   80 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 76 insertions(+), 4 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java b/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
old mode 100644
new mode 100755
index e21476c..09830ed
--- a/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
+++ b/service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java
@@ -2,6 +2,7 @@
 
 import com.java110.dto.RoomDto;
 import com.java110.dto.basePrivilege.BasePrivilegeDto;
+import com.java110.dto.contract.ContractDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.owner.OwnerRoomRelDto;
@@ -9,6 +10,7 @@
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.community.IMenuInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.store.IContractInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
@@ -35,6 +37,7 @@
     public static final String SEARCH_TYPE_OWNER_MEMBER_TEL = "7"; //鏍规嵁瀹跺涵鎴愬憳鐢佃瘽
     public static final String SEARCH_TYPE_OWNER_MEMBER_IDCARD = "8"; //鏍规嵁瀹跺涵鎴愬憳韬唤璇�
     public static final String SEARCH_TYPE_SHOPS = "9"; //鏍规嵁鍟嗛摵鍙�
+    public static final String SEARCH_TYPE_CONTRACT = "10"; //鍚堝悓鍙�
 
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
@@ -57,8 +60,11 @@
     @Autowired
     private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
 
+    @Autowired
+    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
     @Override
-    public ResponseEntity<String> query(String communityId, String searchValue, String searchType, String userId) {
+    public ResponseEntity<String> query(String communityId, String searchValue, String searchType, String userId, String storeId) {
         OwnerDto ownerDto = null;
         switch (searchType) {
             case SEARCH_TYPE_ROOM:
@@ -87,6 +93,9 @@
                 break;
             case SEARCH_TYPE_OWNER_MEMBER_IDCARD:
                 ownerDto = queryByOwnerMemberIdCard(communityId, searchValue, userId);
+                break;
+            case SEARCH_TYPE_CONTRACT:
+                ownerDto = queryByContract(communityId, searchValue, userId, storeId);
                 break;
         }
         return ResultVo.createResponseEntity(1, 1, ownerDto);
@@ -449,7 +458,7 @@
         RoomDto roomDto = new RoomDto();
         roomDto.setFloorNum(values[0]);
         roomDto.setUnitNum("0");
-        roomDto.setRoomNum(values[2]);
+        roomDto.setRoomNum(values[1]);
         roomDto.setCommunityId(communityId);
 
         List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
@@ -527,6 +536,54 @@
         for (OwnerDto owner : ownerDtos) {
             //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
             String idCard = owner.getIdCard();
+            if (mark.size() == 0 && idCard != null && idCard.length() >= 16) {
+                idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
+            }
+            //瀵逛笟涓绘墜鏈哄彿闅愯棌澶勭悊
+            String link = owner.getLink();
+            if (mark.size() == 0 && link != null && link.length() == 11) {
+                link = link.substring(0, 3) + "****" + link.substring(7);
+            }
+            owner.setIdCard(idCard);
+            owner.setLink(link);
+            ownerDtoList.add(owner);
+        }
+
+        OwnerDto resOwnerDto = ownerDtoList.get(0);
+
+        resOwnerDto.setRooms(roomDtos);
+
+        return resOwnerDto;
+    }
+
+    /**
+     * 鏍规嵁鍚堝悓鏌ヨ
+     *
+     * @param communityId
+     * @param searchValue
+     * @return
+     */
+    private OwnerDto queryByContract(String communityId, String searchValue, String userId, String storeId) {
+
+
+        ContractDto contractDto = new ContractDto();
+        contractDto.setContractCode(searchValue);
+        contractDto.setStoreId(storeId);
+        List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+        Assert.listOnlyOne(contractDtos, "鏈壘鍒板悎鍚屼俊鎭�");
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(communityId);
+        ownerDto.setMemberId(contractDtos.get(0).getObjId());
+        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+        Assert.listOnlyOne(ownerDtos, "鏈壘鍒颁笟涓讳俊鎭垨鑰呮煡璇㈠埌澶氭潯锛岃鎹㈠叾浠栨潯浠舵煡璇�");
+        //鏌ヨ鏄惁鏈夎劚鏁忔潈闄�
+        List<Map> mark = getPrivilegeOwnerList("/roomCreateFee", userId);
+        List<OwnerDto> ownerDtoList = new ArrayList<>();
+        for (OwnerDto owner : ownerDtos) {
+            //瀵逛笟涓昏韩浠借瘉鍙烽殣钘忓鐞�
+            String idCard = owner.getIdCard();
             if (mark.size() == 0 && idCard != null && !idCard.equals("")) {
                 idCard = idCard.substring(0, 6) + "**********" + idCard.substring(16);
             }
@@ -539,11 +596,26 @@
             owner.setLink(link);
             ownerDtoList.add(owner);
         }
-
         OwnerDto resOwnerDto = ownerDtoList.get(0);
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setOwnerId(ownerDtoList.get(0).getOwnerId());
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
 
+        //娌℃湁鎴垮眿
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
+            return resOwnerDto;
+        }
+        List<String> roomIds = new ArrayList<>();
+        for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
+            roomIds.add(tmpOwnerRoomRelDto.getRoomId());
+        }
+
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        roomDto.setCommunityId(communityId);
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
         resOwnerDto.setRooms(roomDtos);
-
         return resOwnerDto;
     }
 

--
Gitblit v1.8.0