From db055d52d2a25b166a37b646a3c5dab8396a2355 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期六, 26 九月 2020 18:48:03 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/listener/fee/RentingPayFeeConfirmListener.java |  239 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 125 insertions(+), 114 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/fee/RentingPayFeeConfirmListener.java b/service-api/src/main/java/com/java110/api/listener/fee/RentingPayFeeConfirmListener.java
index 8ec8a32..13d730e 100644
--- a/service-api/src/main/java/com/java110/api/listener/fee/RentingPayFeeConfirmListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/fee/RentingPayFeeConfirmListener.java
@@ -98,145 +98,156 @@
         RentingPoolDto rentingPoolDto = BeanConvertUtil.covertBean(paramObj, RentingPoolDto.class);
 
         JSONArray businesses = new JSONArray();
-
+        BigDecimal serviceDec = null;
+        BigDecimal payMoney = null;
+        double receivableAmount = 0.0;
+        PayFeeDetailPo payFeeDetailPo = null;
+        CommunityMemberDto communityMemberDto = null;
+        List<CommunityMemberDto> communityMemberDtos = null;
+        PayFeePo payFeePo = null;
         //鐗╀笟 鏀跺彇璐圭敤
         double propertyRate = Double.parseDouble(rentingPoolDto.getPropertySeparateRate());
-        BigDecimal serviceDec = new BigDecimal(propertyRate);
-        BigDecimal payMoney = new BigDecimal(money);
-        double receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
-        payFeeDetailPo.setDetailId("-1");
-        payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
-        payFeeDetailPo.setPrimeRate("1.0");
-        payFeeDetailPo.setCycles("1");
-        payFeeDetailPo.setReceivableAmount(receivableAmount + "");
-        payFeeDetailPo.setReceivedAmount(receivableAmount + "");
-        payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
-        //娣诲姞鍗曞厓淇℃伅
-        businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
+        if (propertyRate > 0) {
+            serviceDec = new BigDecimal(propertyRate);
+            payMoney = new BigDecimal(money);
+            receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            payFeeDetailPo = new PayFeeDetailPo();
+            payFeeDetailPo.setDetailId("-1");
+            payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+            payFeeDetailPo.setPrimeRate("1.0");
+            payFeeDetailPo.setCycles("1");
+            payFeeDetailPo.setReceivableAmount(receivableAmount + "");
+            payFeeDetailPo.setReceivedAmount(receivableAmount + "");
+            payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
+            //娣诲姞鍗曞厓淇℃伅
+            businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
 
-        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
-        communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
-        communityMemberDto.setMemberTypeCd("390001200002");//鏌ヨ鐗╀笟
-        communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
-        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+            communityMemberDto = new CommunityMemberDto();
+            communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
+            communityMemberDto.setMemberTypeCd("390001200002");//鏌ヨ鐗╀笟
+            communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
+            communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
 
-        Assert.listOnlyOne(communityMemberDtos, "鐗╀笟淇℃伅鏌ヨ鏈夎");
+            Assert.listOnlyOne(communityMemberDtos, "鐗╀笟淇℃伅鏌ヨ鏈夎");
 
-        String propertyId = communityMemberDtos.get(0).getMemberId();
-        PayFeePo payFeePo = new PayFeePo();
-        payFeePo.setFeeId(payFeeDetailPo.getFeeId());
-        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
-        payFeePo.setIncomeObjId(propertyId);
-        payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
-        payFeePo.setUserId("-1");
-        payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
-        payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
-        payFeePo.setAmount(receivableAmount + "");
-        payFeePo.setState(FeeDto.STATE_FINISH);
-        payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
-        payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
-        businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
-
+            String propertyId = communityMemberDtos.get(0).getMemberId();
+            payFeePo = new PayFeePo();
+            payFeePo.setFeeId(payFeeDetailPo.getFeeId());
+            payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+            payFeePo.setIncomeObjId(propertyId);
+            payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
+            payFeePo.setUserId("-1");
+            payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
+            payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
+            payFeePo.setAmount(receivableAmount + "");
+            payFeePo.setState(FeeDto.STATE_FINISH);
+            payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
+            payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
+            businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
+        }
 
         //浠g悊鍟嗗垎鎴�
         //鐗╀笟 鏀跺彇璐圭敤
         double proxyRate = Double.parseDouble(rentingPoolDto.getProxySeparateRate());
-        serviceDec = new BigDecimal(proxyRate);
-        payMoney = new BigDecimal(money);
-        receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        payFeeDetailPo = new PayFeeDetailPo();
-        payFeeDetailPo.setDetailId("-2");
-        payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
-        payFeeDetailPo.setPrimeRate("1.0");
-        payFeeDetailPo.setCycles("1");
-        payFeeDetailPo.setReceivableAmount(receivableAmount + "");
-        payFeeDetailPo.setReceivedAmount(receivableAmount + "");
-        payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
-        //娣诲姞鍗曞厓淇℃伅
-        businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
+        if (proxyRate > 0) {
+            serviceDec = new BigDecimal(proxyRate);
+            payMoney = new BigDecimal(money);
+            receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            payFeeDetailPo = new PayFeeDetailPo();
+            payFeeDetailPo.setDetailId("-2");
+            payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+            payFeeDetailPo.setPrimeRate("1.0");
+            payFeeDetailPo.setCycles("1");
+            payFeeDetailPo.setReceivableAmount(receivableAmount + "");
+            payFeeDetailPo.setReceivedAmount(receivableAmount + "");
+            payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
+            //娣诲姞鍗曞厓淇℃伅
+            businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
 
-        communityMemberDto = new CommunityMemberDto();
-        communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
-        communityMemberDto.setMemberTypeCd("390001200003");//鏌ヨ浠g悊鍟�
-        communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
-        communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+            communityMemberDto = new CommunityMemberDto();
+            communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
+            communityMemberDto.setMemberTypeCd("390001200003");//鏌ヨ浠g悊鍟�
+            communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
+            communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
 
-        Assert.listOnlyOne(communityMemberDtos, "浠g悊鍟嗕俊鎭煡璇㈡湁璇�");
+            Assert.listOnlyOne(communityMemberDtos, "浠g悊鍟嗕俊鎭煡璇㈡湁璇�");
 
-        String proxyId = communityMemberDtos.get(0).getMemberId();
-        payFeePo = new PayFeePo();
-        payFeePo.setFeeId(payFeeDetailPo.getFeeId());
-        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
-        payFeePo.setIncomeObjId(proxyId);
-        payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
-        payFeePo.setUserId("-1");
-        payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
-        payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
-        payFeePo.setAmount(receivableAmount + "");
-        payFeePo.setState(FeeDto.STATE_FINISH);
-        payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
-        payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
-        businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
-
+            String proxyId = communityMemberDtos.get(0).getMemberId();
+            payFeePo = new PayFeePo();
+            payFeePo.setFeeId(payFeeDetailPo.getFeeId());
+            payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+            payFeePo.setIncomeObjId(proxyId);
+            payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
+            payFeePo.setUserId("-1");
+            payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
+            payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
+            payFeePo.setAmount(receivableAmount + "");
+            payFeePo.setState(FeeDto.STATE_FINISH);
+            payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
+            payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
+            businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
+        }
         //杩愯惀鍒嗘垚
         //鐗╀笟 鏀跺彇璐圭敤
         double adminRate = Double.parseDouble(rentingPoolDto.getAdminSeparateRate());
-        serviceDec = new BigDecimal(adminRate);
-        payMoney = new BigDecimal(money);
-        receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-        payFeeDetailPo = new PayFeeDetailPo();
-        payFeeDetailPo.setDetailId("-3");
-        payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
-        payFeeDetailPo.setPrimeRate("1.0");
-        payFeeDetailPo.setCycles("1");
-        payFeeDetailPo.setReceivableAmount(receivableAmount + "");
-        payFeeDetailPo.setReceivedAmount(receivableAmount + "");
-        payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
-        //娣诲姞鍗曞厓淇℃伅
-        businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
 
-        communityMemberDto = new CommunityMemberDto();
-        communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
-        communityMemberDto.setMemberTypeCd("390001200000");//鏌ヨ浠g悊鍟�
-        communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
-        communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        if (adminRate > 0) {
+            serviceDec = new BigDecimal(adminRate);
+            payMoney = new BigDecimal(money);
+            receivableAmount = serviceDec.multiply(payMoney).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            payFeeDetailPo = new PayFeeDetailPo();
+            payFeeDetailPo.setDetailId("-3");
+            payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeeDetailPo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+            payFeeDetailPo.setPrimeRate("1.0");
+            payFeeDetailPo.setCycles("1");
+            payFeeDetailPo.setReceivableAmount(receivableAmount + "");
+            payFeeDetailPo.setReceivedAmount(receivableAmount + "");
+            payFeeDetailPo.setCommunityId(rentingPoolDto.getCommunityId());
+            //娣诲姞鍗曞厓淇℃伅
+            businesses.add(feeBMOImpl.addSimpleFeeDetail(payFeeDetailPo, dataFlowContext));
 
-        Assert.listOnlyOne(communityMemberDtos, "浠g悊鍟嗕俊鎭煡璇㈡湁璇�");
+            communityMemberDto = new CommunityMemberDto();
+            communityMemberDto.setCommunityId(rentingPoolDto.getCommunityId());
+            communityMemberDto.setMemberTypeCd("390001200000");//鏌ヨ浠g悊鍟�
+            communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
+            communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
 
-        String adminId = communityMemberDtos.get(0).getMemberId();
-        payFeePo = new PayFeePo();
-        payFeePo.setFeeId(payFeeDetailPo.getFeeId());
-        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
-        payFeePo.setIncomeObjId(adminId);
-        payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
-        payFeePo.setUserId("-1");
-        payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
-        payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
-        payFeePo.setAmount(receivableAmount + "");
-        payFeePo.setState(FeeDto.STATE_FINISH);
-        payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
-        payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
-        businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
+            Assert.listOnlyOne(communityMemberDtos, "浠g悊鍟嗕俊鎭煡璇㈡湁璇�");
 
+            String adminId = communityMemberDtos.get(0).getMemberId();
+            payFeePo = new PayFeePo();
+            payFeePo.setFeeId(payFeeDetailPo.getFeeId());
+            payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+            payFeePo.setIncomeObjId(adminId);
+            payFeePo.setCommunityId(rentingPoolDto.getCommunityId());
+            payFeePo.setUserId("-1");
+            payFeePo.setPayerObjId(rentingPoolDto.getRentingId());
+            payFeePo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_SYSTEM);
+            payFeePo.setAmount(receivableAmount + "");
+            payFeePo.setState(FeeDto.STATE_FINISH);
+            payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_RENTING);
+            payFeePo.setConfigId(FeeConfigDto.CONFIG_ID_RENTING);
+            businesses.add(feeBMOImpl.addSimpleFee(payFeePo, dataFlowContext));
+        }
         ResponseEntity<String> responseEntity = feeBMOImpl.callService(dataFlowContext, service.getServiceCode(), businesses);
         dataFlowContext.setResponseEntity(responseEntity);
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
             return;
         }
 
+
         RentingPoolPo rentingPoolPo = new RentingPoolPo();
         rentingPoolPo.setRentingId(rentingPoolDto.getRentingId());
         rentingPoolPo.setCommunityId(rentingPoolDto.getCommunityId());

--
Gitblit v1.8.0