From af16d4b63bafd5ac7ccabdabc6a8017abf081759 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 01 八月 2019 16:35:15 +0800
Subject: [PATCH] 优化 添加房屋选择小区楼后,在添加时 floorId 无法覆盖的问题

---
 UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java |  154 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 139 insertions(+), 15 deletions(-)

diff --git a/UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java b/UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java
index d2d38d6..60ae1ac 100644
--- a/UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java
+++ b/UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java
@@ -1,20 +1,27 @@
 package com.java110.user.smo.impl;
 
 
+import com.java110.common.constant.CommunityMemberTypeConstant;
+import com.java110.common.constant.StatusConstant;
 import com.java110.common.util.BeanConvertUtil;
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
 import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
 import com.java110.core.smo.user.IUserInnerServiceSMO;
+import com.java110.dto.CommunityMemberDto;
 import com.java110.dto.OwnerDto;
 import com.java110.dto.PageDto;
 import com.java110.dto.UserDto;
 import com.java110.user.dao.IOwnerServiceDao;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -33,20 +40,50 @@
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
     @Override
     public List<OwnerDto> queryOwners(@RequestBody OwnerDto ownerDto) {
 
-        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+        //communityInnerServiceSMOImpl.getCommunityMembers()
+        //璋冪敤 灏忓尯鏈嶅姟鏌ヨ 灏忓尯鎴愬憳涓氫富淇℃伅
+        CommunityMemberDto communityMemberDto = BeanConvertUtil.covertBean(ownerDto, CommunityMemberDto.class);
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.OWNER);
+        if (StringUtils.isEmpty(communityMemberDto.getMemberId()) && !StringUtils.isEmpty(ownerDto.getOwnerId())) {
+            communityMemberDto.setMemberId(ownerDto.getOwnerId());
+        }
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
 
-        int page = ownerDto.getPage();
-
-        if (page != PageDto.DEFAULT_PAGE) {
-            ownerDto.setPage((page - 1) * ownerDto.getRow());
-            ownerDto.setRow(page * ownerDto.getRow());
+        if (communityMemberDtos == null || communityMemberDtos.size() < 1) {
+            return null;
         }
 
-        List<OwnerDto> owners = BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.getOwnerInfo(BeanConvertUtil.beanCovertMap(ownerDto)), OwnerDto.class);
+        Map ownerInfo = new HashMap();
+        ownerInfo.put("ownerIds", getOwnerIds(communityMemberDtos));
+        ownerInfo.put("ownerTypeCd", ownerDto.getOwnerTypeCd());
+        ownerInfo.put("statusCd", StatusConstant.STATUS_CD_VALID);
 
+        List<OwnerDto> owners = BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.getOwnerInfo(ownerInfo), OwnerDto.class);
+
+        if (owners == null || owners.size() == 0) {
+            return owners;
+        }
+
+        String[] userIds = getUserIds(owners);
+        //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (OwnerDto owner : owners) {
+            refreshOwner(owner, users);
+        }
+        return owners;
+    }
+
+    @Override
+    public List<OwnerDto> queryOwnerMembers(@RequestBody OwnerDto ownerDto) {
+        List<OwnerDto> owners = BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.getOwnerInfo(BeanConvertUtil.beanCovertMap(ownerDto)), OwnerDto.class);
         if (owners == null || owners.size() == 0) {
             return owners;
         }
@@ -70,9 +107,25 @@
     private void refreshOwner(OwnerDto owner, List<UserDto> users) {
         for (UserDto user : users) {
             if (owner.getUserId().equals(user.getUserId())) {
-                BeanConvertUtil.covertBean(user, owner);
+                //BeanConvertUtil.covertBean(user, owner);
+                owner.setUserName(user.getUserName());
             }
         }
+    }
+
+    /**
+     * 鑾峰彇鎵归噺userId
+     *
+     * @param communityMemberDtos 灏忓尯妤间俊鎭�
+     * @return 鎵归噺userIds 淇℃伅
+     */
+    private String[] getOwnerIds(List<CommunityMemberDto> communityMemberDtos) {
+        List<String> ownerIds = new ArrayList<String>();
+        for (CommunityMemberDto communityMemberDto : communityMemberDtos) {
+            ownerIds.add(communityMemberDto.getMemberId());
+        }
+
+        return ownerIds.toArray(new String[ownerIds.size()]);
     }
 
     /**
@@ -92,7 +145,85 @@
 
     @Override
     public int queryOwnersCount(@RequestBody OwnerDto ownerDto) {
+
+        //璋冪敤 灏忓尯鏈嶅姟鏌ヨ 灏忓尯鎴愬憳涓氫富淇℃伅
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityId(ownerDto.getCommunityId());
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.OWNER);
+        return communityInnerServiceSMOImpl.getCommunityMemberCount(communityMemberDto);
+
+    }
+
+    @Override
+    public int queryOwnerCountByCondition(@RequestBody OwnerDto ownerDto) {
+
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+        int page = ownerDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            ownerDto.setPage((page - 1) * ownerDto.getRow());
+            ownerDto.setRow(page * ownerDto.getRow());
+        }
         return ownerServiceDaoImpl.queryOwnersCount(BeanConvertUtil.beanCovertMap(ownerDto));
+    }
+
+    @Override
+    public List<OwnerDto> queryOwnersByCondition(@RequestBody OwnerDto ownerDto) {
+//鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+
+        int page = ownerDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            ownerDto.setPage((page - 1) * ownerDto.getRow());
+            ownerDto.setRow(page * ownerDto.getRow());
+        }
+        List<OwnerDto> owners = BeanConvertUtil.covertBeanList(
+                ownerServiceDaoImpl.getOwnerInfoByCondition(BeanConvertUtil.beanCovertMap(ownerDto)), OwnerDto.class);
+        if (owners == null || owners.size() == 0) {
+            return owners;
+        }
+
+        String[] userIds = getUserIds(owners);
+        //鏍规嵁 userId 鏌ヨ鐢ㄦ埛淇℃伅
+        List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
+
+        for (OwnerDto owner : owners) {
+            refreshOwner(owner, users);
+        }
+        return owners;
+    }
+
+
+    @Override
+    public int queryNoEnterRoomOwnerCount(@RequestBody OwnerDto ownerDto) {
+        return ownerServiceDaoImpl.queryNoEnterRoomOwnerCount(BeanConvertUtil.beanCovertMap(ownerDto));
+    }
+
+    @Override
+    public List<OwnerDto> queryOwnersByRoom(@RequestBody OwnerDto ownerDto) {
+        return BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.queryOwnersByRoom(BeanConvertUtil.beanCovertMap(ownerDto)), OwnerDto.class);
+    }
+
+    @Override
+    public List<OwnerDto> queryOwnersByParkingSpace(@RequestBody OwnerDto ownerDto) {
+        return BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.queryOwnersByParkingSpace(BeanConvertUtil.beanCovertMap(ownerDto)), OwnerDto.class);
+    }
+
+    public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
+        return userInnerServiceSMOImpl;
+    }
+
+    public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
+        this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
+    }
+
+    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
+        return communityInnerServiceSMOImpl;
+    }
+
+    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
+        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
     }
 
     public IOwnerServiceDao getOwnerServiceDaoImpl() {
@@ -103,11 +234,4 @@
         this.ownerServiceDaoImpl = ownerServiceDaoImpl;
     }
 
-    public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
-        return userInnerServiceSMOImpl;
-    }
-
-    public void setUserInnerServiceSMOImpl(IUserInnerServiceSMO userInnerServiceSMOImpl) {
-        this.userInnerServiceSMOImpl = userInnerServiceSMOImpl;
-    }
 }

--
Gitblit v1.8.0