From d7d9b601b2e4fdb663375993e2cfbdbd363df421 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 11 七月 2023 22:17:37 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java |  199 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 122 insertions(+), 77 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java
index 3e82feb..7c37664 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java
@@ -8,9 +8,9 @@
 import com.java110.core.factory.CommunitySettingFactory;
 import com.java110.core.log.LoggerFactory;
 import com.java110.core.smo.IComputeFeeSMO;
-import com.java110.dto.FloorDto;
-import com.java110.dto.RoomDto;
-import com.java110.dto.UnitDto;
+import com.java110.dto.floor.FloorDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.dto.unit.UnitDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.owner.OwnerCarDto;
@@ -44,6 +44,9 @@
 import java.util.List;
 import java.util.Map;
 
+/**
+ * 鏌ヨ 璐圭敤淇℃伅
+ */
 @Java110Cmd(serviceCode = "fee.listFee")
 public class ListFeeCmd extends Cmd {
 
@@ -99,39 +102,14 @@
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
-        if (reqJson.containsKey("roomNum") && !StringUtil.isEmpty(reqJson.getString("roomNum"))) {
-            String[] roomNums = reqJson.getString("roomNum").split("-", 3);
-            if (roomNums == null || roomNums.length != 3) {
-                throw new IllegalArgumentException("鎴垮眿缂栧彿鏍煎紡閿欒锛�");
-            }
-            String floorNum = roomNums[0];
-            String unitNum = roomNums[1];
-            String roomNum = roomNums[2];
-            FloorDto floorDto = new FloorDto();
-            floorDto.setFloorNum(floorNum);
-            floorDto.setCommunityId(reqJson.getString("communityId"));
-            List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
-            if (floorDtos != null && floorDtos.size() > 0) {
-                for (FloorDto floor : floorDtos) {
-                    UnitDto unitDto = new UnitDto();
-                    unitDto.setFloorId(floor.getFloorId());
-                    unitDto.setUnitNum(unitNum);
-                    List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto);
-                    if (unitDtos != null && unitDtos.size() > 0) {
-                        for (UnitDto unit : unitDtos) {
-                            RoomDto roomDto = new RoomDto();
-                            roomDto.setUnitId(unit.getUnitId());
-                            roomDto.setRoomNum(roomNum);
-                            roomDto.setCommunityId(reqJson.getString("communityId"));
-                            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
-                            Assert.listOnlyOne(roomDtos, "鏌ヨ涓嶅埌鎴垮眿锛�");
-                            reqJson.put("payerObjId", roomDtos.get(0).getRoomId());
-                        }
-                    }
-                }
-            }
-        }
+        // todo 鎴垮眿鍚嶇О 鍒峰叆 鎴垮眿ID
+        freshPayerObjIdByRoomNum(reqJson);
+
         FeeDto feeDto = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+
+        // todo 澶勭悊 澶氫釜鎴垮眿
+        morePayerObjIds(reqJson, feeDto);
+
         List<ApiFeeDataVo> fees = new ArrayList<>();
         if (reqJson.containsKey("ownerId") && !StringUtil.isEmpty(reqJson.getString("ownerId"))) {
             OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
@@ -172,52 +150,118 @@
         cmdDataFlowContext.setResponseEntity(responseEntity);
     }
 
+    /**
+     * 澶勭悊 澶氬璞� 璐圭敤
+     *
+     * @param reqJson
+     * @param feeDto
+     */
+    private void morePayerObjIds(JSONObject reqJson, FeeDto feeDto) {
+        if (!reqJson.containsKey("payerObjIds") || StringUtil.isEmpty(reqJson.getString("payerObjIds"))) {
+            return;
+        }
+
+        String payerObjIds = reqJson.getString("payerObjIds");
+        feeDto.setPayerObjIds(payerObjIds.split(","));
+    }
+
+    /**
+     * 鏍规嵁鎴垮眿鍚嶇О 鍒峰叆 payerObjId
+     *
+     * @param reqJson
+     */
+    private void freshPayerObjIdByRoomNum(JSONObject reqJson) {
+        if (!reqJson.containsKey("roomNum") || StringUtil.isEmpty(reqJson.getString("roomNum"))) {
+            return;
+        }
+
+        String[] roomNums = reqJson.getString("roomNum").split("-", 3);
+        if (roomNums == null || roomNums.length != 3) {
+            throw new IllegalArgumentException("鎴垮眿缂栧彿鏍煎紡閿欒锛�");
+        }
+
+        String floorNum = roomNums[0];
+        String unitNum = roomNums[1];
+        String roomNum = roomNums[2];
+        FloorDto floorDto = new FloorDto();
+        floorDto.setFloorNum(floorNum);
+        floorDto.setCommunityId(reqJson.getString("communityId"));
+        List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
+        if (floorDtos == null || floorDtos.size() < 1) {
+            return;
+        }
+        for (FloorDto floor : floorDtos) {
+            UnitDto unitDto = new UnitDto();
+            unitDto.setFloorId(floor.getFloorId());
+            unitDto.setUnitNum(unitNum);
+            List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto);
+            if (unitDtos == null || unitDtos.size() < 1) {
+                continue;
+            }
+            for (UnitDto unit : unitDtos) {
+                RoomDto roomDto = new RoomDto();
+                roomDto.setUnitId(unit.getUnitId());
+                roomDto.setRoomNum(roomNum);
+                roomDto.setCommunityId(reqJson.getString("communityId"));
+                List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+                Assert.listOnlyOne(roomDtos, "鏌ヨ涓嶅埌鎴垮眿锛�");
+                reqJson.put("payerObjId", roomDtos.get(0).getRoomId());
+            }
+        }
+    }
+
     private void freshFeeAttrs(List<ApiFeeDataVo> fees, List<FeeDto> feeDtos) {
         String link = "";
+        //todo 褰卞搷鏌ヨ鎬ц兘 娉ㄩ噴 by wuxw
+//        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("鏇存柊涓氫富鑱旂郴鏂瑰紡澶辫触");
+//                }
+//
+//            }
+//        }
         for (ApiFeeDataVo apiFeeDataVo : fees) {
             for (FeeDto feeDto : feeDtos) {
-                if (!StringUtil.isEmpty(feeDto.getPayerObjType()) && feeDto.getPayerObjType().equals("3333")) { //鎴垮眿
-                    OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
-                    ownerRoomRelDto.setRoomId(feeDto.getPayerObjId());
-                    List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
-                    if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() == 1) {
-                        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 {
-                        continue;
-                    }
-                } else if (!StringUtil.isEmpty(feeDto.getPayerObjType()) && feeDto.getPayerObjType().equals("6666")) {
-                    OwnerCarDto ownerCarDto = new OwnerCarDto();
-                    ownerCarDto.setCarId(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() > 0) {
-                    for (FeeAttrDto feeAttr : feeAttrDtos) {
-                        if (!StringUtil.isEmpty(feeAttr.getSpecCd()) && feeAttr.getSpecCd().equals("390009")) { //鑱旂郴鏂瑰紡
-                            if (!feeAttr.getValue().equals(link)) {
-                                FeeAttrPo feeAttrPo = new FeeAttrPo();
-                                feeAttrPo.setAttrId(feeAttr.getAttrId());
-                                feeAttrPo.setValue(link);
-                                int flag = feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
-                                if (flag < 1) {
-                                    throw new CmdException("鏇存柊涓氫富鑱旂郴鏂瑰紡澶辫触");
-                                }
-                            }
-                        }
-                    }
-                }
                 if (apiFeeDataVo.getFeeId().equals(feeDto.getFeeId())) {
                     apiFeeDataVo.setFeeAttrs(feeDto.getFeeAttrDtos());
                 }
@@ -338,6 +382,7 @@
 
     }
 
+
     /**
      * 鏍规嵁鍚堝悓鏉ョ畻鍗曚环
      *

--
Gitblit v1.8.0