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