From 576c52d8d8e6fb1e738380cc5fc101a6a2b0b3a8 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期六, 04 九月 2021 16:00:57 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
---
service-job/src/main/java/com/java110/job/adapt/Repair/MachineReturnRepairAdapt.java | 184 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 153 insertions(+), 31 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
old mode 100644
new mode 100755
index f1bb56b..f14a1c4
--- 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,30 +1,34 @@
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;
import com.java110.dto.staffAppAuth.StaffAppAuthDto;
-import com.java110.dto.user.UserDto;
import com.java110.entity.order.Business;
import com.java110.entity.wechat.Content;
import com.java110.entity.wechat.Data;
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;
@@ -70,20 +74,24 @@
private RestTemplate outRestTemplate;
@Autowired
- private IPrivilegeInnerServiceSMO privilegeInnerServiceSMO;
+ private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
@Autowired
- private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
+ 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 +100,7 @@
repairDto.setRepairId(repairId);
repairDto.setStatusCd("0");
List<RepairDto> repairDtos = repairInnerServiceSMO.queryRepairs(repairDto);
+ Assert.listOnlyOne(repairDtos, "涓嶅瓨鍦ㄨ繖鏉℃姤淇俊鎭�");
//鑾峰彇鎶ヤ慨浜哄鍚�
String repairName = repairDtos.get(0).getRepairName();
//鑾峰彇鎶ヤ慨鍐呭
@@ -106,17 +115,29 @@
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")) { //閫�鍗曠姸鎬�
//閫�鍗曚汉
String staffName = repairUserDtos.get(0).getStaffName();
//閫�鍗曞娉�
String returnContext = repairUserDtos.get(0).getContext();
+ //涓婄骇鎿嶄綔浜�
+ String preStaffId = repairUserDtos.get(0).getPreStaffId();
+ //涓婄骇鎿嶄綔浜哄鍚�
+ String preStaffName = repairUserDtos.get(0).getPreStaffName();
paramIn.put("repairTypeName", repairTypeName);
paramIn.put("repairObjName", repairObjName);
paramIn.put("staffName", staffName);
paramIn.put("context", context);
paramIn.put("returnContext", returnContext);
+ paramIn.put("preStaffId", preStaffId);
+ paramIn.put("preStaffName", preStaffName);
sendReturnMessage(paramIn, communityDtos.get(0));
} else if (state.equals("10002")) { //缁撳崟
//鑾峰彇鐢ㄦ埛id
@@ -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));
+ }
}
}
@@ -173,17 +225,13 @@
logger.info("鎺ㄩ�佸井淇℃ā鏉�,鑾峰彇accessToken澶辫触:{}", accessToken);
return;
}
- // 鏍规嵁鐗瑰畾鏉冮檺鏌ヨ 鏈夎鏉冮檺鐨� 鍛樺伐
- BasePrivilegeDto basePrivilegeDto = new BasePrivilegeDto();
- basePrivilegeDto.setResource("/wechatRepairRegistration");
- List<UserDto> userDtos = privilegeInnerServiceSMO.queryPrivilegeUsers(basePrivilegeDto);
String url = sendMsgUrl + accessToken;
- for (UserDto userDto : userDtos) {
- //鏍规嵁 userId 鏌ヨ鍒皁penId
- StaffAppAuthDto staffAppAuthDto = new StaffAppAuthDto();
- staffAppAuthDto.setStaffId(userDto.getUserId());
- staffAppAuthDto.setAppType("WECHAT");
- List<StaffAppAuthDto> staffAppAuthDtos = staffAppAuthInnerServiceSMO.queryStaffAppAuths(staffAppAuthDto);
+ //鏍规嵁 userId 鏌ヨ鍒皁penId
+ StaffAppAuthDto staffAppAuthDto = new StaffAppAuthDto();
+ staffAppAuthDto.setStaffId(paramIn.getString("preStaffId"));
+ staffAppAuthDto.setAppType("WECHAT");
+ List<StaffAppAuthDto> staffAppAuthDtos = staffAppAuthInnerServiceSMO.queryStaffAppAuths(staffAppAuthDto);
+ if (staffAppAuthDtos.size() > 0) {
String openId = staffAppAuthDtos.get(0).getOpenId();
Data data = new Data();
PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
@@ -199,7 +247,8 @@
data.setKeyword3(new Content(paramIn.getString("context")));
data.setRemark(new Content(paramIn.getString("returnContext")));
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);
@@ -208,7 +257,7 @@
}
/**
- * 缁撳崟缁欑鐞嗗憳鎺ㄩ�佷俊鎭�
+ * 缁撳崟缁欎笟涓绘帹閫佷俊鎭�
*
* @param paramIn
* @param communityDto
@@ -241,13 +290,88 @@
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,17 +379,15 @@
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);
logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
--
Gitblit v1.8.0