From 7935724516cb699835da888d59cd5b7bec5c6049 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 九月 2024 12:07:29 +0800
Subject: [PATCH] 完成业主功能的优化

---
 service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java |   48 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java b/service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java
index 19a8a4a..411e79a 100644
--- a/service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java
+++ b/service-user/src/main/java/com/java110/user/bmo/owner/impl/QueryOwnerStatisticsBMOImpl.java
@@ -1,13 +1,15 @@
 package com.java110.user.bmo.owner.impl;
 
 import com.java110.dto.owner.OwnerDto;
-import com.java110.intf.community.IComplaintV1InnerServiceSMO;
+import com.java110.intf.store.IComplaintV1InnerServiceSMO;
 import com.java110.intf.community.IRepairPoolV1InnerServiceSMO;
 import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
+import com.java110.intf.store.IContractInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerV1InnerServiceSMO;
 import com.java110.user.bmo.owner.IQueryOwnerStatisticsBMO;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -39,6 +41,9 @@
     @Autowired
     private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
 
+    @Autowired
+    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
     @Override
     public List<OwnerDto> query(List<OwnerDto> ownerDtos) {
 
@@ -51,10 +56,12 @@
             return ownerDtos;
         }
         List<String> ownerIds = new ArrayList<>();
+        List<String> memberIds = new ArrayList<>();
         List<String> ownerTels = new ArrayList<>();
         for(OwnerDto ownerDto : ownerDtos){
             ownerIds.add(ownerDto.getOwnerId());
             ownerTels.add(ownerDto.getLink());
+            memberIds.add(ownerDto.getMemberId());
         }
 
 
@@ -65,18 +72,36 @@
         queryOwnerMemberCount(ownerIds,ownerDtos);
 
         // 鏌ヨ 杞﹁締鏁�
-        queryCarCount(ownerIds,ownerDtos);
+        queryCarCount(memberIds,ownerDtos);
 
         // 鏌ヨ 鎶曡瘔鏁�
-        queryComplaintCount(ownerTels,ownerDtos);
+        //queryComplaintCount(ownerTels,ownerDtos);
 
         // 鏌ヨ 鎶ヤ慨鏁�
-        queryRepairCount(ownerTels,ownerDtos);
+        //queryRepairCount(ownerTels,ownerDtos);
 
         // 鏌ヨ涓氫富娆犺垂
         queryOwnerOweFee(ownerIds,ownerDtos);
 
+        // 鏌ヨ涓氫富鍚堝悓
+        //queryOwnerContractCount(ownerIds,ownerDtos);
+
         return ownerDtos;
+    }
+
+    private void queryOwnerContractCount(List<String> ownerIds, List<OwnerDto> ownerDtos) {
+        Map info = new HashMap();
+        info.put("communityId",ownerDtos.get(0).getCommunityId());
+        info.put("ownerIds",ownerIds.toArray(new String[ownerIds.size()]));
+        List<Map> contractsCount = contractInnerServiceSMOImpl.queryContractsByOwnerIds(info);
+
+        for(OwnerDto ownerDto : ownerDtos) {
+            for (Map count : contractsCount) {
+                if(ownerDto.getOwnerId().equals(count.get("ownerId"))){
+                    ownerDto.setContractCount(count.get("contractCount").toString());
+                }
+            }
+        }
     }
 
     /**
@@ -146,16 +171,16 @@
 
     /**
      * 鏌ヨ涓氫富杞﹁締鏁�
-     * @param ownerIds
+     * @param memberIds
      * @param ownerDtos
      */
-    private void queryCarCount(List<String> ownerIds, List<OwnerDto> ownerDtos) {
+    private void queryCarCount(List<String> memberIds, List<OwnerDto> ownerDtos) {
 
-        List<Map> memberCounts = ownerCarV1InnerServiceSMOImpl.queryOwnerCarCountByOwnerIds(ownerIds);
+        List<Map> memberCounts = ownerCarV1InnerServiceSMOImpl.queryOwnerCarCountByOwnerIds(memberIds);
 
         for(OwnerDto ownerDto : ownerDtos) {
             for (Map count : memberCounts) {
-                if(ownerDto.getOwnerId().equals(count.get("ownerId"))){
+                if(ownerDto.getMemberId().equals(count.get("ownerId"))){
                     ownerDto.setCarCount(count.get("carCount").toString());
                 }
             }
@@ -172,6 +197,10 @@
         List<Map> memberCounts = ownerV1InnerServiceSMOImpl.queryOwnerMembersCount(ownerIds);
 
         for(OwnerDto ownerDto : ownerDtos) {
+            if(OwnerDto.OWNER_TYPE_CD_MEMBER.equals(ownerDto.getOwnerTypeCd())){
+                ownerDto.setMemberCount("0");
+                continue;
+            }
             for (Map count : memberCounts) {
                 if(ownerDto.getOwnerId().equals(count.get("ownerId"))){
                     ownerDto.setMemberCount(count.get("memberCount").toString());
@@ -192,7 +221,8 @@
 
         for(OwnerDto ownerDto : ownerDtos) {
             for (Map count : ownerRoomCounts) {
-                if(ownerDto.getOwnerId().equals(count.get("ownerId"))){
+                if(!StringUtil.isEmpty(ownerDto.getOwnerId()) && !StringUtil.isEmpty(count.get("ownerId").toString()))
+                if(ownerDto.getOwnerId().equals(count.get("ownerId").toString())){
                     ownerDto.setRoomCount(count.get("roomCount").toString());
                 }
             }

--
Gitblit v1.8.0