From 9637082376d3aabe54759d34d02b72e9a53e676c Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期六, 29 四月 2023 05:00:07 +0800
Subject: [PATCH] 优化代码

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java |  102 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 70 insertions(+), 32 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..e203489 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
@@ -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,6 +150,66 @@
         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 = "";
         for (ApiFeeDataVo apiFeeDataVo : fees) {

--
Gitblit v1.8.0