From 51aa6b4f8a3d199b3e5f93f7b5513a040aecfc10 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 14 四月 2022 15:00:22 +0800
Subject: [PATCH] 优化代码

---
 service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java |  171 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 128 insertions(+), 43 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java b/service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java
index eedce2d..b48ad19 100755
--- a/service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/payment/notice/MachinePaymentNoticeAdapt.java
@@ -36,7 +36,11 @@
 import com.java110.intf.order.IPrivilegeInnerServiceSMO;
 import com.java110.intf.store.ISmallWeChatInnerServiceSMO;
 import com.java110.intf.store.ISmallWechatAttrInnerServiceSMO;
-import com.java110.intf.user.*;
+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.intf.user.IStaffAppAuthInnerServiceSMO;
 import com.java110.job.adapt.DatabusAdaptImpl;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.utils.cache.MappingCache;
@@ -46,12 +50,16 @@
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -134,12 +142,26 @@
                 businessPayFeeDetails = (JSONArray) bObj;
             }
         } else {
-            return;
+            if (data instanceof JSONObject) {
+                businessPayFeeDetails = new JSONArray();
+                businessPayFeeDetails.add(data);
+            }
         }
         for (int bPayFeeDetailIndex = 0; bPayFeeDetailIndex < businessPayFeeDetails.size(); bPayFeeDetailIndex++) {
             JSONObject businessPayFeeDetail = businessPayFeeDetails.getJSONObject(bPayFeeDetailIndex);
             doSendPayFeeDetail(business, businessPayFeeDetail);
         }
+    }
+
+    private String subDay(String date) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date dt = sdf.parse(date);
+        Calendar rightNow = Calendar.getInstance();
+        rightNow.setTime(dt);
+        rightNow.add(Calendar.DAY_OF_MONTH, -1);
+        Date dt1 = rightNow.getTime();
+        String reStr = sdf.format(dt1);
+        return reStr;
     }
 
     private void doSendPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
@@ -162,25 +184,55 @@
         String startTime = DateUtil.dateTimeToDate(payFeeDetailPo.getStartTime());
         //鑾峰彇鐢ㄦ埛缂磋垂鍒版湡鏃堕棿
         String endTime = DateUtil.dateTimeToDate(payFeeDetailPo.getEndTime());
+        try {
+            endTime = subDay(endTime);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
         //鑾峰彇鐢ㄦ埛缂磋垂閲戦
         String receivedAmount = payFeeDetailPo.getReceivedAmount();
         //鑾峰彇璐圭敤绫诲瀷
         String feeTypeCd = feeDtos.get(0).getFeeTypeCd();
+        //鑾峰彇浠樿垂瀵硅薄绫诲瀷
+        String payerObjType = feeDtos.get(0).getPayerObjType();
+        //鑾峰彇鐘舵��
+        String state = payFeeDetailPo.getState();
+        //杞︾墝鍙�
+        String carNum = "";
+        //鍋滆溅鍦�
+        String num = "";
+        //杞︿綅
+        String spaceNum = "";
+        if (!StringUtil.isEmpty(payerObjType) && payerObjType.equals("6666")) {
+            String[] split = payerObjName.split("-");
+            //鑾峰彇杞︾墝
+            carNum = split[0];
+            //鑾峰彇鍋滆溅鍦�
+            num = split[1];
+            //鑾峰彇杞︿綅
+            spaceNum = split[2];
+        }
         //鑾峰彇绀惧尯鍚嶇О
         String name = communityDtos.get(0).getName();
         JSONObject paramIn = new JSONObject();
-        paramIn.put("payFeeRoom", name + payerObjName);
+        paramIn.put("payFeeRoom", name + "-" + payerObjName);
         paramIn.put("feeTypeCdName", feeTypeCdName);
         paramIn.put("payFeeTime", startTime + "鑷�" + endTime);
         paramIn.put("receivedAmount", receivedAmount);
         paramIn.put("startTime", startTime);
         paramIn.put("endTime", endTime);
+        paramIn.put("payerObjType", payerObjType);
+        paramIn.put("carNum", carNum);
+        paramIn.put("num", num);
+        paramIn.put("spaceNum", spaceNum);
+        paramIn.put("state", state);
         //缁欎笟涓绘帹閫佹秷鎭�
         sendMessage(paramIn, communityDtos.get(0), payFeeDetailPo);
-        if (feeTypeCd.equals("888800010012")) {
+        if (!StringUtil.isEmpty(state) && !state.equals("1300") && feeTypeCd.equals("888800010012")) {
             //缁欏鐞嗘姤淇畬缁撳崟鐨勭淮淇笀鍌呮帹閫佹秷鎭�
             sendMsg(paramIn, communityDtos.get(0), payFeeDetailPo);
-        } else {
+        }
+        if (!StringUtil.isEmpty(state) && !state.equals("1300")) {
             //缁欏憳宸ユ帹閫佹秷鎭�
             publishMsg(paramIn, communityDtos.get(0), payFeeDetailPo);
         }
@@ -231,37 +283,50 @@
         basePrivilegeDto.setResource("/wechatNotification");
         basePrivilegeDto.setStoreId(feeDtos.get(0).getIncomeObjId());
         List<UserDto> userDtos = privilegeInnerServiceSMO.queryPrivilegeUsers(basePrivilegeDto);
-        String sendTemplate = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN,WechatConstant.SEND_TEMPLATE_URL);
-        if(StringUtil.isEmpty(sendTemplate)){
+        String sendTemplate = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.SEND_TEMPLATE_URL);
+        if (StringUtil.isEmpty(sendTemplate)) {
             sendTemplate = sendMsgUrl;
         }
         String url = sendTemplate + accessToken;
-        for (UserDto userDto : userDtos) {
-            //鏍规嵁 userId 鏌ヨ鍒皁penId
-            try {
-                StaffAppAuthDto staffAppAuthDto = new StaffAppAuthDto();
-                staffAppAuthDto.setStaffId(userDto.getUserId());
-                staffAppAuthDto.setAppType("WECHAT");
-                List<StaffAppAuthDto> staffAppAuthDtos = staffAppAuthInnerServiceSMO.queryStaffAppAuths(staffAppAuthDto);
-                String openId = staffAppAuthDtos.get(0).getOpenId();
-                Data data = new Data();
-                PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
-                templateMessage.setTemplate_id(templateId);
-                templateMessage.setTouser(openId);
-                data.setFirst(new Content("鏈缂磋垂宸插埌璐�"));
-                data.setKeyword1(new Content(paramIn.getString("payFeeRoom")));
-                data.setKeyword2(new Content(paramIn.getString("feeTypeCdName")));
-                data.setKeyword3(new Content(paramIn.getString("payFeeTime")));
-                data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "鍏�"));
-                data.setRemark(new Content("鎰熻阿鎮ㄧ殑浣跨敤,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛�"));
-                templateMessage.setData(data);
-                String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
-                templateMessage.setUrl(wechatUrl);
-                logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
-                ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
-                logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", responseEntity);
-            } catch (Exception e) {
-                logger.error("鍙戦�佺即璐逛俊鎭け璐�", e);
+        //鑾峰彇浠樿垂瀵硅薄绫诲瀷
+        String payerObjType = paramIn.getString("payerObjType");
+        if (userDtos != null && userDtos.size() > 0) {
+            for (UserDto userDto : userDtos) {
+                //鏍规嵁 userId 鏌ヨ鍒皁penId
+                try {
+                    StaffAppAuthDto staffAppAuthDto = new StaffAppAuthDto();
+                    staffAppAuthDto.setStaffId(userDto.getUserId());
+                    staffAppAuthDto.setAppType("WECHAT");
+                    List<StaffAppAuthDto> staffAppAuthDtos = staffAppAuthInnerServiceSMO.queryStaffAppAuths(staffAppAuthDto);
+                    if (staffAppAuthDtos == null || staffAppAuthDtos.size() < 1) {
+                        continue;
+                    }
+                    String openId = staffAppAuthDtos.get(0).getOpenId();
+                    Data data = new Data();
+                    PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
+                    templateMessage.setTemplate_id(templateId);
+                    templateMessage.setTouser(openId);
+                    data.setFirst(new Content("鏈缂磋垂宸插埌璐�"));
+                    if (payerObjType.equals("3333")) {  //鎴垮眿
+                        data.setKeyword1(new Content(paramIn.getString("payFeeRoom")));
+                        data.setKeyword2(new Content(paramIn.getString("feeTypeCdName")));
+                    } else {  //杞﹁締
+                        data.setKeyword1(new Content(communityDto.getName() + "-" + paramIn.getString("num") + "-" + paramIn.getString("spaceNum")));
+                        data.setKeyword2(new Content(paramIn.getString("feeTypeCdName") + "-" + paramIn.getString("carNum")));
+                    }
+                    data.setKeyword3(new Content(paramIn.getString("payFeeTime")));
+                    data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "鍏�"));
+                    data.setRemark(new Content("鎰熻阿鎮ㄧ殑浣跨敤,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛�"));
+                    templateMessage.setData(data);
+                    //鑾峰彇鍛樺伐鍏紬鍙峰湴鍧�
+                    String wechatUrl = MappingCache.getValue("STAFF_WECHAT_URL");
+                    templateMessage.setUrl(wechatUrl);
+                    logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
+                    ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
+                    logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", responseEntity);
+                } catch (Exception e) {
+                    logger.error("鍙戦�佺即璐逛俊鎭け璐�", e);
+                }
             }
         }
     }
@@ -307,8 +372,8 @@
         Assert.listOnlyOne(feeDtos, "璐圭敤涓嶅瓨鍦�");
         //鑾峰彇鍒涘缓鐢ㄦ埛,鍗冲鐞嗙粨鍗曠殑缁翠慨缁翠慨甯堝倕
         String userId = feeDtos.get(0).getUserId();
-        String sendTemplate = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN,WechatConstant.SEND_TEMPLATE_URL);
-        if(StringUtil.isEmpty(sendTemplate)){
+        String sendTemplate = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.SEND_TEMPLATE_URL);
+        if (StringUtil.isEmpty(sendTemplate)) {
             sendTemplate = sendMsgUrl;
         }
         String url = sendTemplate + accessToken;
@@ -331,7 +396,8 @@
             data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "鍏�"));
             data.setRemark(new Content("璇蜂笌瀹㈡湇绠″鏍稿疄璐圭敤"));
             templateMessage.setData(data);
-            String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
+            //鑾峰彇鍛樺伐鍏紬鍙峰湴鍧�
+            String wechatUrl = MappingCache.getValue("STAFF_WECHAT_URL");
             templateMessage.setUrl(wechatUrl);
             logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
             ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
@@ -380,7 +446,7 @@
         feeDto.setCommunityId(payFeeDetailPo.getCommunityId());
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
         Assert.listOnlyOne(feeDtos, "璐圭敤涓嶅瓨鍦�");
-        //鏀粯鎴块棿id
+        //鏀粯鎴块棿id(鏀粯杞﹁締id)
         String payerObjId = feeDtos.get(0).getPayerObjId();
         //鏀粯绫诲瀷(鎴垮眿銆佽溅杈�)
         String payerObjType = feeDtos.get(0).getPayerObjType();
@@ -394,8 +460,9 @@
             ownerId = ownerRoomRelDtos.get(0).getOwnerId();
         } else if (payerObjType.equals("6666")) {
             OwnerCarDto ownerCarDto = new OwnerCarDto();
-            ownerCarDto.setPsId(payerObjId);
+            ownerCarDto.setCarId(payerObjId);
             List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMO.queryOwnerCars(ownerCarDto);
+            Assert.listOnlyOne(ownerCarDtos, "鏌ヨ杞﹁締鎵�灞炰笟涓讳俊鎭敊璇紒");
             //鍙栧緱涓氫富id
             ownerId = ownerCarDtos.get(0).getOwnerId();
         }
@@ -405,6 +472,7 @@
         ownerDto.setOwnerTypeCd("1001");
         //鏌ヨ涓氫富
         List<OwnerDto> ownerDtos = ownerInnerServiceSMO.queryOwners(ownerDto);
+        Assert.listOnlyOne(ownerDtos, "鏌ヨ涓氫富淇℃伅閿欒锛�");
         //鑾峰緱鎴愬憳id
         String memberId = ownerDtos.get(0).getMemberId();
         OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
@@ -419,13 +487,30 @@
             PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
             templateMessage.setTemplate_id(templateId);
             templateMessage.setTouser(openId);
-            data.setFirst(new Content("鏈缂磋垂宸插埌璐�"));
-            data.setKeyword1(new Content(paramIn.getString("payFeeRoom")));
-            data.setKeyword2(new Content(paramIn.getString("feeTypeCdName")));
+            if (!StringUtil.isEmpty(paramIn.getString("state")) && paramIn.getString("state").equals("1300")) {
+                data.setFirst(new Content("鏈閫�璐瑰凡鍒拌处"));
+            } else {
+                data.setFirst(new Content("鏈缂磋垂宸插埌璐�"));
+            }
+            if (payerObjType.equals("3333")) {  //鎴垮眿
+                data.setKeyword1(new Content(paramIn.getString("payFeeRoom")));
+                data.setKeyword2(new Content(paramIn.getString("feeTypeCdName")));
+            } else {  //杞﹁締
+                data.setKeyword1(new Content(communityDto.getName() + "-" + paramIn.getString("num") + "-" + paramIn.getString("spaceNum")));
+                data.setKeyword2(new Content(paramIn.getString("feeTypeCdName") + "-" + paramIn.getString("carNum")));
+            }
             data.setKeyword3(new Content(paramIn.getString("payFeeTime")));
-            data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "鍏�"));
+            if (!StringUtil.isEmpty(paramIn.getString("state")) && paramIn.getString("state").equals("1300")) {
+                //鑾峰彇閫�璐归噾棰�
+                double receivedAmount = Double.parseDouble(paramIn.getString("receivedAmount"));
+                double money = receivedAmount * (-1.00);
+                data.setKeyword4(new Content("閫�璐�" + money + "鍏�"));
+            } else {
+                data.setKeyword4(new Content(paramIn.getString("receivedAmount") + "鍏�"));
+            }
             data.setRemark(new Content("鎰熻阿鎮ㄧ殑浣跨敤,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛�"));
             templateMessage.setData(data);
+            //鑾峰彇涓氫富鍏紬鍙峰湴鍧�
             String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
             templateMessage.setUrl(wechatUrl);
             logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));

--
Gitblit v1.8.0