From b173d31976fc4731b7c247d4038de92134eba317 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 29 六月 2023 11:42:17 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java |  101 +++++++++++++++++++++++---------------------------
 1 files changed, 46 insertions(+), 55 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java
index f5c745d..7308b9d 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java
@@ -116,16 +116,38 @@
         // todo 澶勭悊 澶氫釜鎴垮眿
         morePayerObjIds(reqJson, payFeeDetailMonthDto);
 
-        int count = payFeeDetailMonthInnerServiceSMOImpl.queryPayFeeDetailMonthsCount(payFeeDetailMonthDto);
+        int count = payFeeDetailMonthInnerServiceSMOImpl.queryPagePayFeeDetailMonthsCount(payFeeDetailMonthDto);
+
         List<PayFeeDetailMonthDto> payFeeDetailMonthDtos = null;
         if (count > 0) {
-            payFeeDetailMonthDtos = payFeeDetailMonthInnerServiceSMOImpl.queryPayFeeDetailMonths(payFeeDetailMonthDto);//鏌ヨ璐圭敤椤圭洰
-            //freshFeeAttrs(fees, feeDtos);
+            payFeeDetailMonthDtos = payFeeDetailMonthInnerServiceSMOImpl.queryPagePayFeeDetailMonths(payFeeDetailMonthDto);//鏌ヨ璐圭敤椤圭洰
+            //todo 鏍规嵁閰嶇疆澶勭悊灏忔暟鐐�
+            doScale(payFeeDetailMonthDtos);
+            //todo 灏� 璐圭敤涓嬬殑灞炴�у埛鍏ヨ繘鍘伙紝鏂逛究鍓嶆灞曠ず浣跨敤
+            freshFeeAttrs(payFeeDetailMonthDtos);
         } else {
             payFeeDetailMonthDtos = new ArrayList<>();
         }
 
         context.setResponseEntity(ResultVo.createResponseEntity((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, payFeeDetailMonthDtos));
+    }
+
+    /**
+     * 澶勭悊搴旀敹灏忔暟鐐�
+     *
+     * @param payFeeDetailMonthDtos
+     */
+    private void doScale(List<PayFeeDetailMonthDto> payFeeDetailMonthDtos) {
+        if (payFeeDetailMonthDtos == null || payFeeDetailMonthDtos.size() < 1) {
+            return;
+        }
+        double amount = 0.0;
+        for (PayFeeDetailMonthDto payFeeDetailMonthDto : payFeeDetailMonthDtos) {
+            amount = MoneyUtil.computePriceScale(Double.parseDouble(payFeeDetailMonthDto.getReceivableAmount()),
+                    payFeeDetailMonthDto.getScale(),
+                    Integer.parseInt(payFeeDetailMonthDto.getDecimalPlace()));
+            payFeeDetailMonthDto.setReceivableAmount(amount + "");
+        }
     }
 
     /**
@@ -188,61 +210,30 @@
         }
     }
 
-    private void freshFeeAttrs(List<ApiFeeDataVo> fees, List<FeeDto> feeDtos) {
-        String link = "";
-        for (FeeDto feeDto : feeDtos) {
-            if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) { //鎴垮眿
-                OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
-                ownerRoomRelDto.setRoomId(feeDto.getPayerObjId());
-                List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
-                if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
-                    continue;
-                }
-                OwnerDto ownerDto = new OwnerDto();
-                ownerDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
-                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-                Assert.listOnlyOne(ownerDtos, "鏌ヨ涓氫富閿欒锛�");
-                link = ownerDtos.get(0).getLink();
-            } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
-                OwnerCarDto ownerCarDto = new OwnerCarDto();
-                ownerCarDto.setMemberId(feeDto.getPayerObjId());
-                List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-                Assert.listOnlyOne(ownerCarDtos, "鏌ヨ涓氫富杞﹁締琛ㄩ敊璇紒");
-                OwnerDto ownerDto = new OwnerDto();
-                ownerDto.setMemberId(ownerCarDtos.get(0).getOwnerId());
-                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-                Assert.listOnlyOne(ownerDtos, "鏌ヨ涓氫富閿欒锛�");
-                link = ownerDtos.get(0).getLink();
-            }
-            FeeAttrDto feeAttrDto = new FeeAttrDto();
-            feeAttrDto.setFeeId(feeDto.getFeeId());
-            List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
-            if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
-                continue;
-            }
-            for (FeeAttrDto feeAttr : feeAttrDtos) {
-                if (!FeeAttrDto.SPEC_CD_OWNER_LINK.equals(feeAttr.getSpecCd())) { //鑱旂郴鏂瑰紡
-                    continue;
-                }
-                if (feeAttr.getValue().equals(link)) {
-                    continue;
-                }
-                FeeAttrPo feeAttrPo = new FeeAttrPo();
-                feeAttrPo.setAttrId(feeAttr.getAttrId());
-                feeAttrPo.setValue(link);
-                int flag = feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
-                if (flag < 1) {
-                    throw new CmdException("鏇存柊涓氫富鑱旂郴鏂瑰紡澶辫触");
-                }
-
-            }
+    private void freshFeeAttrs(List<PayFeeDetailMonthDto> payFeeDetailMonthDtos) {
+        List<String> feeIds = new ArrayList<>();
+        for (PayFeeDetailMonthDto feeDto : payFeeDetailMonthDtos) {
+            feeIds.add(feeDto.getFeeId());
         }
-        for (ApiFeeDataVo apiFeeDataVo : fees) {
-            for (FeeDto feeDto : feeDtos) {
-                if (apiFeeDataVo.getFeeId().equals(feeDto.getFeeId())) {
-                    apiFeeDataVo.setFeeAttrs(feeDto.getFeeAttrDtos());
+
+        FeeAttrDto feeAttrDto = new FeeAttrDto();
+        feeAttrDto.setFeeIds(feeIds.toArray(new String[feeIds.size()]));
+        List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
+
+        if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+            return;
+        }
+
+        List<FeeAttrDto> tmpFeeAttrDtos = null;
+        for (PayFeeDetailMonthDto feeDto : payFeeDetailMonthDtos) {
+            tmpFeeAttrDtos = new ArrayList<>();
+            for (FeeAttrDto tmpFeeAttrDto : feeAttrDtos) {
+                if (!feeDto.getFeeId().equals(tmpFeeAttrDto.getFeeId())) {
+                    continue;
                 }
+                tmpFeeAttrDtos.add(tmpFeeAttrDto);
             }
+            feeDto.setFeeAttrs(tmpFeeAttrDtos);
         }
     }
 }

--
Gitblit v1.8.0