From 34407713f09ea512423204c7e81b242eef3fbe75 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 20 十月 2023 20:43:54 +0800
Subject: [PATCH] 优化代码

---
 service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java |  149 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 111 insertions(+), 38 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java b/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
index 86cd07a..f5f3890 100644
--- a/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
@@ -78,7 +78,7 @@
             }
         }
 
-        if (oweFeeCallablePos.size() < 1) {
+        if (oweFeeCallablePos.isEmpty()) {
             return;
         }
 
@@ -92,50 +92,82 @@
         String oweUrl = "";
         OweFeeCallablePo updateOweFeeCallablePo = null;
         OwnerAppUserDto ownerAppUserDto = null;
-        for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) {
+        String userId = "";
+        List<JSONObject> contents = null;
 
-            if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
+        List<OweFeeCallablePo> sendOweFeeCallablePos = null;
+
+        //todo 鎸夋埧灞嬪彂閫�
+        for (int roomIndex = 0; roomIndex < roomIds.size(); roomIndex++) {
+            contents = new ArrayList<>();
+            String notifyWay = MsgNotifyFactory.NOTIFY_WAY_WECHAT;
+            userId = "";
+            sendOweFeeCallablePos = new ArrayList<>();
+            for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) {
+                if (!oweFeeCallablePo.getPayerObjId().equals(roomIds.getString(roomIndex))) {
+                    continue;
+                }
+
+                //todo 涓氫富涓嶅瓨鍦�
+                if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
+                    updateOweFeeCallablePo = new OweFeeCallablePo();
+                    updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
+                    updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
+                    updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
+                    updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富涓嶅瓨鍦�");
+                    oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
+                    continue;
+                }
+
+
+                ownerAppUserDto = new OwnerAppUserDto();
+                ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId());
+                ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId());
+                ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
+                List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+                if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) {
+                    userId = ownerAppUserDtos.get(0).getUserId();
+                }
+
+                oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
+                content = new JSONObject();
+                content.put("feeTypeName", oweFeeCallablePo.getFeeName());
+                content.put("payerObjName", oweFeeCallablePo.getPayerObjName());
+                content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed());
+                content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime()));
+                content.put("url", oweUrl + oweFeeCallablePo.getPayerObjId());
+
+                if (OweFeeCallableDto.CALLABLE_WAY_SMS.equals(oweFeeCallablePo.getCallableWay())) {
+                    notifyWay = MsgNotifyFactory.NOTIFY_WAY_ALI;
+                }
+                contents.add(content);
+                sendOweFeeCallablePos.add(oweFeeCallablePo);
+
+            }
+
+            if (contents.isEmpty()) {
+                return;
+            }
+
+            //todo 鍌即
+            ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), userId, oweFeeCallablePos.get(0).getOwnerId(), contents, notifyWay);
+
+            for (OweFeeCallablePo oweFeeCallablePo : sendOweFeeCallablePos) {
+                if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) {
+                    continue;
+                }
                 updateOweFeeCallablePo = new OweFeeCallablePo();
                 updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
                 updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富涓嶅瓨鍦�");
+                if (resultVo.getCode() != ResultVo.CODE_OK) {
+                    updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
+                    updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg());
+                } else {
+                    updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
+                }
                 oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
-                continue;
-            }
-            ownerAppUserDto = new OwnerAppUserDto();
-            ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId());
-            ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId());
-            ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
-            List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
-            if (ownerAppUserDtos == null || ownerAppUserDtos.size() < 1) {
-                updateOweFeeCallablePo = new OweFeeCallablePo();
-                updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
-                updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-涓氫富鏈粦瀹�");
-                oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
-                continue;
             }
 
-            oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
-            content = new JSONObject();
-            content.put("feeTypeName", oweFeeCallablePo.getFeeName());
-            content.put("payerObjName", oweFeeCallablePo.getPayerObjName());
-            content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed());
-            content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime()));
-            content.put("url", oweUrl);
-            ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), ownerAppUserDtos.get(0).getUserId(), content);
-            updateOweFeeCallablePo = new OweFeeCallablePo();
-            updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId());
-            updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId());
-            if (resultVo.getCode() != ResultVo.CODE_OK) {
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL);
-                updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg());
-            } else {
-                updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE);
-            }
-            oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo);
         }
     }
 
@@ -163,6 +195,11 @@
         OweFeeCallablePo oweFeeCallablePo = null;
 
         for (ReportOweFeeDto reportOweFeeDto : feeDtos) {
+
+            // todo  鏍¢獙 鏃堕棿鑼冨洿
+            if (!hasInTime(reportOweFeeDto, data)) {
+                continue;
+            }
             oweFeeCallablePo = new OweFeeCallablePo();
 
             oweFeeCallablePo.setAmountdOwed(reportOweFeeDto.getAmountOwed());
@@ -216,6 +253,17 @@
         if (data.containsKey("feeId")) {
             reportOweFeeDto.setFeeId(data.getString("feeId"));
         }
+        List<String> feeIds = new ArrayList<>();
+
+        if (data.containsKey("feeIds")) {
+            JSONArray feeIdAs = data.getJSONArray("feeIds");
+            for (int feeIndex = 0; feeIndex < feeIdAs.size(); feeIndex++) {
+                feeIds.add(feeIdAs.getString(feeIndex));
+            }
+            if (feeIds.size() > 0) {
+                reportOweFeeDto.setFeeIds(feeIds.toArray(new String[feeIds.size()]));
+            }
+        }
         List<String> configIdss = new ArrayList<>();
         if (data.containsKey("configIds")) {
             JSONArray configIds = data.getJSONArray("configIds");
@@ -232,5 +280,30 @@
 
     }
 
+    private boolean hasInTime(ReportOweFeeDto tempFeeDto, JSONObject reqJson) {
+        if (!reqJson.containsKey("startTime") || !reqJson.containsKey("endTime")) {
+            return true;
+        }
+
+        String startTime = reqJson.getString("startTime");
+        String endTime = reqJson.getString("endTime");
+
+        if (StringUtil.isEmpty(startTime) || StringUtil.isEmpty(endTime)) {
+            return true;
+        }
+        if (StringUtil.isEmpty(tempFeeDto.getDeadlineTime())) {
+            return true;
+        }
+        if (StringUtil.isEmpty(tempFeeDto.getEndTime())) {
+            return true;
+        }
+
+        if (DateUtil.getDateFromStringB(tempFeeDto.getEndTime()).before(DateUtil.getDateFromStringB(startTime)) && DateUtil.getDateFromStringB(tempFeeDto.getDeadlineTime()).after(DateUtil.getDateFromStringB(endTime))) {
+            return true;
+        }
+
+        return false;
+    }
+
 
 }

--
Gitblit v1.8.0