From 4e134e61ede1f8574189af45c810ca365c7c7f9a Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 五月 2022 18:33:14 +0800
Subject: [PATCH] 优化代码

---
 service-job/src/main/java/com/java110/job/adapt/payment/receipt/PayFeeReceiptAdapt.java |  185 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 185 insertions(+), 0 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/payment/receipt/PayFeeReceiptAdapt.java b/service-job/src/main/java/com/java110/job/adapt/payment/receipt/PayFeeReceiptAdapt.java
new file mode 100644
index 0000000..8608df0
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/adapt/payment/receipt/PayFeeReceiptAdapt.java
@@ -0,0 +1,185 @@
+package com.java110.job.adapt.payment.receipt;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.fee.FeeDetailDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.logSystemError.LogSystemErrorDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IFeeReceiptDetailInnerServiceSMO;
+import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
+import com.java110.intf.user.IOwnerAppUserInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.po.fee.PayFeeDetailPo;
+import com.java110.po.feeReceipt.FeeReceiptPo;
+import com.java110.po.feeReceiptDetail.FeeReceiptDetailPo;
+import com.java110.po.logSystemError.LogSystemErrorPo;
+import com.java110.service.smo.ISaveSystemErrorSMO;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ExceptionUtil;
+import com.java110.utils.util.StringUtil;
+import org.slf4j.Logger;
+import com.java110.core.log.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 缂磋垂鏀舵嵁澶勭悊
+ *
+ * @author fqz
+ * @date 2020-12-11  18:54
+ */
+@Component(value = "payFeeReceiptAdapt")
+public class PayFeeReceiptAdapt extends DatabusAdaptImpl {
+
+    private static Logger logger = LoggerFactory.getLogger(PayFeeReceiptAdapt.class);
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMO;
+
+    @Autowired
+    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
+
+    @Autowired
+    private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeReceiptDetailInnerServiceSMO feeReceiptDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMO;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMO;
+
+    @Autowired
+    private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
+
+    //妯℃澘淇℃伅鎺ㄩ�佸湴鍧�
+    private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
+
+    public final static String ALI_SMS_DOMAIN = "ALI_SMS";
+
+    @Override
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+
+        if(data != null){
+            logger.debug("璇锋眰鏃ュ織:{}",data);
+        }
+        JSONArray businessPayFeeDetails = null;
+        if (data == null) {
+            FeeDetailDto feeDetailDto = new FeeDetailDto();
+            feeDetailDto.setbId(business.getbId());
+            List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
+            Assert.listOnlyOne(feeDetailDtos, "鏈煡璇㈠埌缂磋垂璁板綍");
+            businessPayFeeDetails = JSONArray.parseArray(JSONArray.toJSONString(feeDetailDtos, SerializerFeature.WriteDateUseDateFormat));
+        } else if (data.containsKey(PayFeeDetailPo.class.getSimpleName())) {
+            Object bObj = data.get(PayFeeDetailPo.class.getSimpleName());
+            if (bObj instanceof JSONObject) {
+                businessPayFeeDetails = new JSONArray();
+                businessPayFeeDetails.add(bObj);
+            } else if (bObj instanceof Map) {
+                businessPayFeeDetails = new JSONArray();
+                businessPayFeeDetails.add(JSONObject.parseObject(JSONObject.toJSONString(bObj)));
+            } else if (bObj instanceof List) {
+                businessPayFeeDetails = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+            } else {
+                businessPayFeeDetails = (JSONArray) bObj;
+            }
+        } else {
+            if (data instanceof JSONObject) {
+                businessPayFeeDetails = new JSONArray();
+                businessPayFeeDetails.add(data);
+            }
+        }
+
+        if (businessPayFeeDetails == null) {
+            return;
+        }
+        for (int bPayFeeDetailIndex = 0; bPayFeeDetailIndex < businessPayFeeDetails.size(); bPayFeeDetailIndex++) {
+            JSONObject businessPayFeeDetail = businessPayFeeDetails.getJSONObject(bPayFeeDetailIndex);
+            doPayFeeDetail(business, businessPayFeeDetail);
+        }
+    }
+
+    private void doPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
+        try {
+            //鏌ヨ缂磋垂鏄庣粏
+            PayFeeDetailPo payFeeDetailPo = BeanConvertUtil.covertBean(businessPayFeeDetail, PayFeeDetailPo.class);
+            FeeDto feeDto = new FeeDto();
+            feeDto.setFeeId(payFeeDetailPo.getFeeId());
+            feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
+            List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+            Assert.listOnlyOne(feeDtos, "鏈煡璇㈠埌璐圭敤淇℃伅");
+
+            feeDto = feeDtos.get(0);
+
+            //鏌ヨ涓氫富淇℃伅
+            OwnerDto ownerDto = computeFeeSMOImpl.getFeeOwnerDto(feeDto);
+
+            //娣诲姞鍗曞厓淇℃伅
+            FeeReceiptPo feeReceiptPo = new FeeReceiptPo();
+            FeeReceiptDetailPo feeReceiptDetailPo = new FeeReceiptDetailPo();
+
+            feeReceiptDetailPo.setAmount(businessPayFeeDetail.getString("receivedAmount"));
+            feeReceiptDetailPo.setCommunityId(feeDto.getCommunityId());
+            feeReceiptDetailPo.setCycle(businessPayFeeDetail.getString("cycles"));
+            feeReceiptDetailPo.setDetailId(businessPayFeeDetail.getString("detailId"));
+            feeReceiptDetailPo.setEndTime(businessPayFeeDetail.getString("endTime"));
+            feeReceiptDetailPo.setFeeId(feeDto.getFeeId());
+            feeReceiptDetailPo.setFeeName(StringUtil.isEmpty(feeDto.getImportFeeName()) ? feeDto.getFeeName() : feeDto.getImportFeeName());
+            feeReceiptDetailPo.setStartTime(businessPayFeeDetail.getString("startTime"));
+            feeReceiptDetailPo.setReceiptId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
+            computeFeeSMOImpl.freshFeeReceiptDetail(feeDto, feeReceiptDetailPo);
+            feeReceiptPo.setAmount(feeReceiptDetailPo.getAmount());
+            feeReceiptPo.setCommunityId(feeReceiptDetailPo.getCommunityId());
+            feeReceiptPo.setReceiptId(feeReceiptDetailPo.getReceiptId());
+            feeReceiptPo.setObjType(feeDto.getPayerObjType());
+            feeReceiptPo.setObjId(feeDto.getPayerObjId());
+            feeReceiptPo.setObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
+            feeReceiptPo.setPayObjId(ownerDto.getOwnerId());
+            feeReceiptPo.setPayObjName(ownerDto.getName());
+
+            //杩欓噷鍙槸鍐欏叆 鏀舵嵁琛紝鏆備笉鑰冭檻 浜嬪姟涓�鑷存�ч棶棰橈紝灏辩畻鍐欏叆澶辫触 涔熷彧鏄奖鍝� 鏀舵嵁鎵撳嵃锛屽鏋� 璐靛叕鍙稿 鏀舵嵁瑕佹眰 姣旇緝楂橈紝涓嶈兘鏈夊け璐ョ殑鎯呭喌 璇峰姞鍏ヤ簨鍔$鐞�
+            feeReceiptDetailInnerServiceSMOImpl.saveFeeReceiptDetail(feeReceiptDetailPo);
+            feeReceiptInnerServiceSMOImpl.saveFeeReceipt(feeReceiptPo);
+        }catch (Exception e){
+            LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+            logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+            logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_NOTICE);
+            logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+            saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+            logger.error("閫氱煡寮傚父", e);
+        }
+    }
+
+
+}

--
Gitblit v1.8.0