From 3b0ddfa0b1c3490fbbf421a84e0431a60fb58387 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 01 四月 2021 12:25:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/xinghong-dev'

---
 service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java |  151 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 137 insertions(+), 14 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java b/service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java
index f1bb56b..38fcbc6 100644
--- a/service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java
@@ -1,12 +1,15 @@
 package com.java110.job.adapt.Repair;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.factory.WechatFactory;
 import com.java110.dto.basePrivilege.BasePrivilegeDto;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.repair.RepairDto;
+import com.java110.dto.repair.RepairSettingDto;
 import com.java110.dto.repair.RepairUserDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
@@ -18,13 +21,17 @@
 import com.java110.entity.wechat.PropertyFeeTemplateMessage;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.community.IRepairSettingInnerServiceSMO;
 import com.java110.intf.community.IRepairUserInnerServiceSMO;
 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.job.adapt.DatabusAdaptImpl;
+import com.java110.po.fee.PayFeePo;
 import com.java110.utils.cache.MappingCache;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -75,15 +82,22 @@
     @Autowired
     private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
 
+    @Autowired
+    private IRepairSettingInnerServiceSMO repairSettingInnerServiceSMO;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
+
     //妯℃澘淇℃伅鎺ㄩ�佸湴鍧�
     private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
 
     @Override
-    public void execute(Business business, List<Business> businesses) {
+    public void execute(Business business, List<Business> businesses) throws Exception {
         RepairUserDto repairUserDto = new RepairUserDto();
         repairUserDto.setbId(business.getbId());
         repairUserDto.setStatusCd("0");
         List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMO.queryRepairUsers(repairUserDto);
+        Assert.listOnlyOne(repairUserDtos, "褰撳墠鐢ㄦ埛娌℃湁闇�瑕佸鐞嗚鍗�");
         //鑾峰彇鐘舵��
         String state = repairUserDtos.get(0).getState();
         //鑾峰彇鎶ヤ慨id
@@ -92,6 +106,7 @@
         repairDto.setRepairId(repairId);
         repairDto.setStatusCd("0");
         List<RepairDto> repairDtos = repairInnerServiceSMO.queryRepairs(repairDto);
+        Assert.listOnlyOne(repairDtos, "涓嶅瓨鍦ㄨ繖鏉℃姤淇俊鎭�");
         //鑾峰彇鎶ヤ慨浜哄鍚�
         String repairName = repairDtos.get(0).getRepairName();
         //鑾峰彇鎶ヤ慨鍐呭
@@ -106,6 +121,12 @@
         CommunityDto communityDto = new CommunityDto();
         communityDto.setCommunityId(communityId);
         List<CommunityDto> communityDtos = communityInnerServiceSMO.queryCommunitys(communityDto);
+        //鑾峰彇鎶ヤ慨绫诲瀷
+        String repairType = repairDtos.get(0).getRepairType();
+        RepairSettingDto repairSettingDto = new RepairSettingDto();
+        repairSettingDto.setSettingId(repairType);
+        List<RepairSettingDto> repairSettingDtos = repairSettingInnerServiceSMO.queryRepairSettings(repairSettingDto);
+        Assert.listOnlyOne(repairSettingDtos, "淇℃伅閿欒");
         JSONObject paramIn = new JSONObject();
         if (state.equals("10003")) {   //閫�鍗曠姸鎬�
             //閫�鍗曚汉
@@ -129,6 +150,17 @@
             Date endTime = repairUserDtos.get(0).getEndTime();
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String time = format.format(endTime);
+            //鑾峰彇浠锋牸
+            String price = "";
+            for (Business bus : businesses) {
+                if (bus.getBusinessTypeCd().equals("600100030001")) {  //淇濆瓨璐圭敤淇℃伅
+                    JSONObject data = bus.getData();
+                    JSONArray jsonArray = data.getJSONArray("PayFeePo");
+                    JSONObject jsonObject = jsonArray.getJSONObject(0);
+                    PayFeePo payFeePo = BeanConvertUtil.covertBean(jsonObject, PayFeePo.class);
+                    price = payFeePo.getAmount();
+                }
+            }
             paramIn.put("repairName", repairName);
             paramIn.put("repairObjName", repairObjName);
             paramIn.put("context", context);
@@ -136,7 +168,27 @@
             paramIn.put("time", time);
             paramIn.put("repairObjId", repairObjId);
             paramIn.put("preStaffId", preStaffId);
+            RepairUserDto repairUser = new RepairUserDto();
+            repairUser.setRepairId(repairId);
+            repairUser.setState("10005");
+            //鏌ヨ鎶ヤ慨鐢ㄦ埛璁板綍
+            List<RepairUserDto> repairUserDtoList = repairUserInnerServiceSMO.queryRepairUsers(repairUser);
+            //鑾峰彇鎶ヤ慨鐢ㄦ埛id
+            String staffId = repairUserDtoList.get(0).getStaffId();
+            paramIn.put("userId", staffId);
             publishReturnMsg(paramIn, communityDtos.get(0));
+            if (!StringUtil.isEmpty(price)) {
+                paramIn.put("price", price);
+                paramIn.put("feeState", "鏈即璐�");
+                //鑾峰彇浠樻鏂筰d
+                String roomId = repairDtos.get(0).getRepairObjId();
+                //鑾峰彇浠樻鏂瑰悕绉�
+                String roomName = repairDtos.get(0).getRepairObjName();
+                paramIn.put("roomId", roomId);
+                paramIn.put("roomName", roomName);
+                //鐢熸垚璐圭敤缁欎笟涓诲彂閫佷俊鎭�
+                sendMessage(paramIn, communityDtos.get(0));
+            }
         }
     }
 
@@ -241,13 +293,87 @@
             return;
         }
         //鑾峰彇鐢ㄦ埛id
-        String preStaffId = paramIn.getString("preStaffId");
-        if (!StringUtil.isEmpty(preStaffId)) {
+        String staffId = paramIn.getString("userId");
+        if (!StringUtil.isEmpty(staffId)) {
             OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
-            ownerAppUserDto.setUserId(preStaffId);
+            ownerAppUserDto.setUserId(staffId);
             ownerAppUserDto.setAppType("WECHAT");
             //鏌ヨ缁戝畾涓氫富
             List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMO.queryOwnerAppUsers(ownerAppUserDto);
+            if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) {
+                //鑾峰彇openId
+                String openId = ownerAppUserDtos.get(0).getOpenId();
+                String url = sendMsgUrl + accessToken;
+                Data data = new Data();
+                PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
+                templateMessage.setTemplate_id(templateId);
+                templateMessage.setTouser(openId);
+                data.setFirst(new Content("灏婃暚鐨�" + paramIn.getString("repairName") + "鍏堢敓/濂冲+锛屾偍鐨勬姤淇棶棰橈紝宸茬粡涓烘偍澶勭悊瀹屾瘯銆�"));
+                if (communityDto.getName().equals(paramIn.getString("repairObjName"))) {
+                    data.setKeyword1(new Content(paramIn.getString("repairObjName")));
+                } else {
+                    data.setKeyword1(new Content(communityDto.getName() + paramIn.getString("repairObjName")));
+                }
+                data.setKeyword2(new Content(paramIn.getString("context")));
+                data.setKeyword3(new Content(paramIn.getString("staffName")));
+                data.setKeyword4(new Content(paramIn.getString("time")));
+                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);
+            }
+        }
+    }
+
+    /**
+     * 缁撳崟鐢熸垚璐圭敤缁欎笟涓绘帹閫佷俊鎭�
+     *
+     * @param paramIn
+     * @param communityDto
+     */
+    private void sendMessage(JSONObject paramIn, CommunityDto communityDto) {
+        //鏌ヨ鍏紬鍙烽厤缃�
+        SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
+        smallWeChatDto.setWeChatType("1100");
+        smallWeChatDto.setObjType(SmallWeChatDto.OBJ_TYPE_COMMUNITY);
+        smallWeChatDto.setObjId(communityDto.getCommunityId());
+        List<SmallWeChatDto> smallWeChatDtos = smallWeChatInnerServiceSMOImpl.querySmallWeChats(smallWeChatDto);
+        if (smallWeChatDto == null || smallWeChatDtos.size() <= 0) {
+            logger.info("鏈厤缃井淇″叕浼楀彿淇℃伅,瀹氭椂浠诲姟鎵ц缁撴潫");
+            return;
+        }
+        SmallWeChatDto weChatDto = smallWeChatDtos.get(0);
+        SmallWechatAttrDto smallWechatAttrDto = new SmallWechatAttrDto();
+        smallWechatAttrDto.setCommunityId(communityDto.getCommunityId());
+        smallWechatAttrDto.setWechatId(weChatDto.getWeChatId());
+        smallWechatAttrDto.setSpecCd(SmallWechatAttrDto.SPEC_CD_WECHAT_REPAIR_CHARGE_SCENE_TEMPLATE);
+        List<SmallWechatAttrDto> smallWechatAttrDtos = smallWechatAttrInnerServiceSMOImpl.querySmallWechatAttrs(smallWechatAttrDto);
+        if (smallWechatAttrDtos == null || smallWechatAttrDtos.size() <= 0) {
+            logger.info("鏈厤缃井淇″叕浼楀彿娑堟伅妯℃澘");
+            return;
+        }
+        String templateId = smallWechatAttrDtos.get(0).getValue();
+        String accessToken = WechatFactory.getAccessToken(weChatDto.getAppId(), weChatDto.getAppSecret());
+        if (StringUtil.isEmpty(accessToken)) {
+            logger.info("鎺ㄩ�佸井淇℃ā鏉�,鑾峰彇accessToken澶辫触:{}", accessToken);
+            return;
+        }
+        //鑾峰彇鎴垮眿鎵�灞炰笟涓�
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(paramIn.getString("roomId"));
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMO.queryOwnerRoomRels(ownerRoomRelDto);
+        Assert.listOnlyOne(ownerRoomRelDtos, "褰撳墠鎴垮眿娌℃湁鎵�灞炰笟涓�");
+        //鑾峰彇涓氫富id
+        String ownerId = ownerRoomRelDtos.get(0).getOwnerId();
+        //鏌ヨ缁戝畾涓氫富
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setMemberId(ownerId);
+        ownerAppUserDto.setAppType("WECHAT");
+        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMO.queryOwnerAppUsers(ownerAppUserDto);
+        if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) {
             //鑾峰彇openId
             String openId = ownerAppUserDtos.get(0).getOpenId();
             String url = sendMsgUrl + accessToken;
@@ -255,16 +381,13 @@
             PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
             templateMessage.setTemplate_id(templateId);
             templateMessage.setTouser(openId);
-            data.setFirst(new Content("灏婃暚鐨�" + paramIn.getString("repairName") + "鍏堢敓/濂冲+锛屾偍鐨勬姤淇棶棰橈紝宸茬粡涓烘偍澶勭悊瀹屾瘯銆�"));
-            if (communityDto.getName().equals(paramIn.getString("repairObjName"))) {
-                data.setKeyword1(new Content(paramIn.getString("repairObjName")));
-            } else {
-                data.setKeyword1(new Content(communityDto.getName() + paramIn.getString("repairObjName")));
-            }
-            data.setKeyword2(new Content(paramIn.getString("context")));
-            data.setKeyword3(new Content(paramIn.getString("staffName")));
-            data.setKeyword4(new Content(paramIn.getString("time")));
-            data.setRemark(new Content("璇风偣鍑绘煡鐪嬭鎯咃紝瀵规垜浠殑宸ヤ綔杩涜璇勪环锛屼互渚挎彁渚涙洿浼樿川鐨勬湇鍔★紝鎰熻阿鎮ㄧ殑閰嶅悎鍜屼娇鐢紝绁濇偍鐢熸椿鎰夊揩锛岄槚瀹舵涔愶紒"));
+            data.setFirst(new Content(paramIn.getString("roomName") + "缂磋垂淇℃伅濡備笅锛�"));
+            data.setKeyword1(new Content(paramIn.getString("roomName")));
+            data.setKeyword2(new Content(paramIn.getString("repairName")));
+            data.setKeyword3(new Content("缁翠慨璐�"));
+            data.setKeyword4(new Content(paramIn.getString("feeState")));
+            data.setKeyword5(new Content(paramIn.getString("price") + "鍏�"));
+            data.setRemark(new Content("璇锋偍鍙婃椂缂磋垂锛屾劅璋㈡偍鐨勯厤鍚堝拰浣跨敤锛岀鎮ㄧ敓娲绘剦蹇紝闃栧娆箰锛�"));
             templateMessage.setData(data);
             String wechatUrl = MappingCache.getValue("OWNER_WECHAT_URL");
             templateMessage.setUrl(wechatUrl);

--
Gitblit v1.8.0