From cb921ad901790925db64afc1bcbafb678e8a12b6 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 21 八月 2023 09:42:17 +0800
Subject: [PATCH] 优化完成催缴短信方式

---
 service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java |   66 ++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 21 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java b/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
index 08c6eec..c96edc1 100644
--- a/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
+++ b/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
@@ -7,20 +7,20 @@
 import com.java110.core.factory.WechatFactory;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.feeCollectionOrder.FeeCollectionOrderDto;
-import com.java110.dto.logSystemError.LogSystemErrorDto;
+import com.java110.dto.fee.FeeCollectionOrderDto;
+import com.java110.dto.log.LogSystemErrorDto;
 import com.java110.dto.owner.OwnerAppUserDto;
 import com.java110.dto.owner.OwnerDto;
-import com.java110.dto.reportOweFee.ReportOweFeeDto;
-import com.java110.dto.reportOweFee.ReportOweFeeItemDto;
-import com.java110.dto.smallWeChat.SmallWeChatDto;
-import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
-import com.java110.dto.smsConfig.SmsConfigDto;
+import com.java110.dto.reportFee.ReportOweFeeDto;
+import com.java110.dto.reportFee.ReportOweFeeItemDto;
+import com.java110.dto.wechat.SmallWeChatDto;
+import com.java110.dto.wechat.SmallWechatAttrDto;
+import com.java110.dto.sms.SmsConfigDto;
 import com.java110.dto.task.TaskDto;
-import com.java110.entity.wechat.Content;
-import com.java110.entity.wechat.Data;
-import com.java110.entity.wechat.Miniprogram;
-import com.java110.entity.wechat.PropertyFeeTemplateMessage;
+import com.java110.dto.wechat.Content;
+import com.java110.dto.wechat.Data;
+import com.java110.dto.wechat.Miniprogram;
+import com.java110.dto.wechat.PropertyFeeTemplateMessage;
 import com.java110.intf.common.ISmsConfigInnerServiceSMO;
 import com.java110.intf.fee.IFeeCollectionDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeCollectionOrderInnerServiceSMO;
@@ -31,11 +31,12 @@
 import com.java110.intf.user.IOwnerAppUserInnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.job.quartz.TaskSystemQuartz;
-import com.java110.po.feeCollectionDetail.FeeCollectionDetailPo;
-import com.java110.po.feeCollectionOrder.FeeCollectionOrderPo;
-import com.java110.po.logSystemError.LogSystemErrorPo;
+import com.java110.po.fee.FeeCollectionDetailPo;
+import com.java110.po.fee.FeeCollectionOrderPo;
+import com.java110.po.log.LogSystemErrorPo;
 import com.java110.service.smo.ISaveSystemErrorSMO;
 import com.java110.utils.cache.MappingCache;
+import com.java110.utils.cache.UrlCache;
 import com.java110.utils.constant.WechatConstant;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -43,13 +44,14 @@
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.util.*;
 
@@ -208,6 +210,9 @@
                 feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_SMS);
                 break;
             case FeeCollectionOrderDto.COLLECTION_WAY_WECHAT:
+                if(StringUtil.isEmpty(reportOweFeeDo.getOwnerId())  || "-1".equals(reportOweFeeDo.getOwnerId())){
+                    return;
+                }
                 if (!StringUtil.isEmpty(reportOweFeeDo.getOwnerId())) {
                     Map paramInfo = getOwnerAppUserDto(feeCollectionOrderDto.getCommunityId(), reportOweFeeDo.getOwnerId());
                     resultVo = doSendWechat(reportOweFeeDo, feeCollectionOrderDto, paramInfo);//寰俊
@@ -288,7 +293,12 @@
         List<ReportOweFeeItemDto> itemDtos = reportOweFeeDo.getItems();
         String oweUrl = "";
         for (ReportOweFeeItemDto itemDto : itemDtos) {
+            BigDecimal amountOwed = new BigDecimal(itemDto.getAmountOwed());
             oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportOweFeeDo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
+            String[] roomName = new String[]{};
+            if ("3333".equals(reportOweFeeDo.getPayerObjType())) {
+                roomName = itemDto.getPayerObjName().split("-",3);
+            }
             for (OwnerAppUserDto appUserDto : ownerAppUserDtos) {
                 try {
                     //鑾峰彇鐢ㄦ埛缂磋垂鍒版湡鏃堕棿
@@ -303,13 +313,18 @@
                     templateMessage.setTemplate_id(templateId);
                     templateMessage.setTouser(appUserDto.getOpenId());
                     data.setFirst(new Content(itemDto.getFeeName() + "鎻愰啋"));
-                    data.setKeyword1(new Content(itemDto.getPayerObjName()));
-                    data.setKeyword2(new Content(itemDto.getAmountOwed()));
+                    if ("3333".equals(reportOweFeeDo.getPayerObjType())) {
+                        data.setKeyword1(new Content(roomName[0] + "鏍�" + roomName[1] + "鍗曞厓" + roomName[2] + "瀹�"));
+                    } else {
+                        data.setKeyword1(new Content(itemDto.getPayerObjName()));
+                    }
+                    DecimalFormat df = new DecimalFormat("0.00");
+                    data.setKeyword2(new Content(df.format(amountOwed) + "鍏�"));
                     data.setKeyword3(new Content(
                             DateUtil.getFormatTimeString(itemDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
                                     + "鑷�"
                                     + DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)));
-                    data.setRemark(new Content("璇锋偍鍙婃椂缂磋垂,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛�"));
+                    data.setRemark(new Content("璇锋偍鍙婃椂缂磋垂,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛橈紒"));
 
                     if (!StringUtil.isEmpty(oweUrl)) {
                         if (miniprogram == null) {
@@ -319,7 +334,8 @@
                             templateMessage.setMiniprogram(miniprogram);
                         }
                     }
-                    templateMessage.setData(data);
+                    templateMessage.setData(BeanConvertUtil.beanCovertJson(data));
+
                     logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
                     ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
                     logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", responseEntity);
@@ -372,6 +388,11 @@
             param.put("date2", DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B));
             param.put("mount", reportOweFeeDo.getAmountOwed());
             paramIn = param;
+        }else if(SendSmsFactory.SMS_COMPANY_YIDONG.equals(smsConfigDto1.getSmsType())){
+            paramIn = "灏婃暚鐨勪笟涓�"+ reportOweFeeDo.getOwnerName()+"锛屾偍"+reportOweFeeDo.getPayerObjName()+"鐨�"+itemDtos.get(0).getFeeName()
+                    +"锛岃处鍗曟棩鏈�"+DateUtil.getFormatTimeString(itemDtos.get(0).getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
+                    +"鑷�"+DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)
+                    +"锛岀即璐归噾棰濓細"+reportOweFeeDo.getAmountOwed()+"鍏冿紝璇峰強鏃剁即璐�";
         } else {
             paramIn = new String[]{
                     reportOweFeeDo.getOwnerName(),
@@ -397,6 +418,7 @@
     }
 
     private Map getOwnerAppUserDto(String communityId, String memberId) {
+
         SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
         smallWeChatDto.setWeChatType("1100");
         smallWeChatDto.setObjType(SmallWeChatDto.OBJ_TYPE_COMMUNITY);
@@ -447,8 +469,8 @@
         }
         String url = sendTemplate + accessToken;
 
-        String oweRoomUrl = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE);
-        String oweCarUrl = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE);
+        String oweRoomUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE);
+        String oweCarUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE);
         Miniprogram miniprogram = null;
         if (oweRoomUrl.contains("@@")) {
             miniprogram = new Miniprogram();
@@ -483,11 +505,13 @@
         }
         ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
         reportOweFeeDto.setPayerObjIds(payObjIds.toArray(new String[payObjIds.size()]));
+        reportOweFeeDto.setHasOweFee("Y");
         List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
         List<ReportOweFeeDto> reportOweFeeDtos = new ArrayList<>();
         for (ReportOweFeeDto reportOweFee : allReportOweFeeDtos) {
             ReportOweFeeDto reportOwe = new ReportOweFeeDto();
             reportOwe.setOweId(reportOweFee.getOweId());
+            reportOwe.setHasOweFee("Y");
             reportOweFee.setPayerObjType(reportOweFee.getPayerObjType());
             if (reportOweFee.getPayerObjType().equals("3333")) {
                 List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByRoom(reportOwe);

--
Gitblit v1.8.0