Browse Source

2023年8月30日17:40:28

纪新园 2 years ago
parent
commit
2647c4c5f6

+ 6 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java

@@ -517,10 +517,12 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 					.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
 					.eq(PjCorpsAddr::getTenantId, AuthUtil.getTenantId())
 					.eq(PjCorpsAddr::getPid, corpsDesc.getId())
 					.eq(PjCorpsAddr::getPid, corpsDesc.getId())
 					.eq(PjCorpsAddr::getDefaultAddres, "1"));
 					.eq(PjCorpsAddr::getDefaultAddres, "1"));
-				corpsDesc.setAttn(corpsAttn.getCname());
-				corpsDesc.setTel(corpsAttn.getTel());
-				corpsDesc.setAddr(corpsAddr.getBelongtoarea());
-				corpsDesc.setDetails(corpsAddr.getDetailedAddress());
+				if(ObjectUtils.isNotNull(corpsAddr)){
+					corpsDesc.setAttn(corpsAttn.getCname());
+					corpsDesc.setTel(corpsAttn.getTel());
+					corpsDesc.setAddr(corpsAddr.getBelongtoarea());
+					corpsDesc.setDetails(corpsAddr.getDetailedAddress());
+				}
 				return R.data(corpsDesc);
 				return R.data(corpsDesc);
 			} else {
 			} else {
 				CorpsDesc corpsDesc1 = new CorpsDesc();
 				CorpsDesc corpsDesc1 = new CorpsDesc();

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/maintenance/service/impl/MaintenanceServiceImpl.java

@@ -200,8 +200,8 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
 		if (ObjectUtils.isNotNull(maintenance.getRepairReportDate())) {
 			date = format.format(maintenance.getRepairReportDate());
 			date = format.format(maintenance.getRepairReportDate());
 		}
 		}
-//		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "报修通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
-//			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
+		wechatClient.sendMessage("o9USS6462dtxKR9dCrqxZTrAsm5o", "报修通知", "设备报修", date, maintenance.getCorpName(), maintenance.getDeviceName(),
+			maintenance.getCorpTel(), maintenance.getMaintenanceWorkerTel(), maintenance.getDeviceDescribe(), maintenance.getMaintenanceAmount(), "1");
 		return R.data(maintenance);
 		return R.data(maintenance);
 	}
 	}
 
 

+ 49 - 9
blade-service/blade-school/src/main/java/org/springblade/school/controller/WxUnionIdOpenIdController.java

@@ -1,17 +1,23 @@
 package org.springblade.school.controller;
 package org.springblade.school.controller;
 
 
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.nacos.client.naming.utils.SignUtil;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.school.excel.WxEeventType;
+import org.springblade.school.excel.WxMessageType;
+import org.springblade.school.excel.WxServiceMsgDto;
 import org.springblade.school.util.WxUtil;
 import org.springblade.school.util.WxUtil;
 import org.springblade.system.user.entity.WxUnionIdOpenId;
 import org.springblade.system.user.entity.WxUnionIdOpenId;
 import org.springblade.system.user.feign.IWxUnionIdOpenIdClient;
 import org.springblade.system.user.feign.IWxUnionIdOpenIdClient;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.school.util.WXPayXmlUtil;
 import org.springblade.school.util.WXPayXmlUtil;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.*;
 import java.util.*;
 
 
 /**
 /**
@@ -32,7 +38,7 @@ public class WxUnionIdOpenIdController {
 	private static final String appSecret = "50e84930675a0c06057d45a6d64ec548";
 	private static final String appSecret = "50e84930675a0c06057d45a6d64ec548";
 
 
 	@PostMapping("/scanCodeCallback")
 	@PostMapping("/scanCodeCallback")
-	public void scanCodeCallback(HttpServletRequest request, HttpServletResponse response){
+	public void scanCodeCallback(HttpServletRequest request, HttpServletResponse response) {
 		log.info("======关注回调======");
 		log.info("======关注回调======");
 
 
 		Map<String, String> dataMap = WXPayXmlUtil.analysis(request);
 		Map<String, String> dataMap = WXPayXmlUtil.analysis(request);
@@ -42,21 +48,21 @@ public class WxUnionIdOpenIdController {
 
 
 		if ("subscribe".equals(Event)) {//关注
 		if ("subscribe".equals(Event)) {//关注
 			//获得公众号token
 			//获得公众号token
-			Map<String,String> tokenMap = WxUtil.getToken(appId, appSecret);
+			Map<String, String> tokenMap = WxUtil.getToken(appId, appSecret);
 
 
 			//根据公众号openid获得unionId
 			//根据公众号openid获得unionId
-			Map<String, String > userMap = WxUtil.getUserInfo(tokenMap.get("accessToken"),openId);
+			Map<String, String> userMap = WxUtil.getUserInfo(tokenMap.get("accessToken"), openId);
 			String unionId = userMap.get("unionid");
 			String unionId = userMap.get("unionid");
 
 
-			if (ObjectUtil.isNotEmpty(unionId)){
+			if (ObjectUtil.isNotEmpty(unionId)) {
 				//根据unionId查询数据库是否存在
 				//根据unionId查询数据库是否存在
 				WxUnionIdOpenId wxUnionIdOpenId = wxUnionIdOpenIdClient.getWxUnionId(unionId);
 				WxUnionIdOpenId wxUnionIdOpenId = wxUnionIdOpenIdClient.getWxUnionId(unionId);
-				if (ObjectUtil.isEmpty(wxUnionIdOpenId)){//不存在 新增
+				if (ObjectUtil.isEmpty(wxUnionIdOpenId)) {//不存在 新增
 					WxUnionIdOpenId item = new WxUnionIdOpenId();
 					WxUnionIdOpenId item = new WxUnionIdOpenId();
 					item.setOpenId(openId);
 					item.setOpenId(openId);
 					item.setUnionId(unionId);
 					item.setUnionId(unionId);
 					wxUnionIdOpenIdClient.insertWxUO(item);
 					wxUnionIdOpenIdClient.insertWxUO(item);
-				}else {//存在 则更新
+				} else {//存在 则更新
 					wxUnionIdOpenId.setOpenId(openId);
 					wxUnionIdOpenId.setOpenId(openId);
 					wxUnionIdOpenIdClient.updateWxUO(wxUnionIdOpenId);
 					wxUnionIdOpenIdClient.updateWxUO(wxUnionIdOpenId);
 				}
 				}
@@ -66,4 +72,38 @@ public class WxUnionIdOpenIdController {
 
 
 	}
 	}
 
 
+	@PostMapping(value = "/scanCodeCallbackQB")
+	public void checkWxToken(HttpServletRequest request, HttpServletResponse response) {
+		// 只处理订阅与取消订阅消息
+		log.info("======关注回调======");
+		Map<String, String> dataMap = WXPayXmlUtil.analysis(request);
+		log.info("返回数据======>>" + dataMap);
+		String openId = dataMap.get("FromUserName");//openId
+		String Event = dataMap.get("Event");//关注或取消关注
+
+		if ("subscribe".equals(Event)) {//关注
+			//获得公众号token
+			Map<String, String> tokenMap = WxUtil.getToken("wx0d55134f5ad8b0ec", "6764b4e6b6d0143d2309109110e91b28");
+
+			log.info("获得公众号token======>>" + tokenMap);
+			//根据公众号openid获得unionId
+			Map<String, String> userMap = WxUtil.getUserInfo(tokenMap.get("accessToken"), openId);
+			log.info("根据公众号openid获得unionId======>>" + userMap);
+			String unionId = userMap.get("unionid");
+
+			if (ObjectUtil.isNotEmpty(unionId)) {
+				//根据unionId查询数据库是否存在
+				WxUnionIdOpenId wxUnionIdOpenId = wxUnionIdOpenIdClient.getWxUnionId(unionId);
+				if (ObjectUtil.isEmpty(wxUnionIdOpenId)) {//不存在 新增
+					WxUnionIdOpenId item = new WxUnionIdOpenId();
+					item.setOpenId(openId);
+					item.setUnionId(unionId);
+					wxUnionIdOpenIdClient.insertWxUO(item);
+				} else {//存在 则更新
+					wxUnionIdOpenId.setOpenId(openId);
+					wxUnionIdOpenIdClient.updateWxUO(wxUnionIdOpenId);
+				}
+			}
+		}
+	}
 }
 }

+ 20 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WxEeventType.java

@@ -0,0 +1,20 @@
+package org.springblade.school.excel;
+
+
+import lombok.Getter;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/8/30
+ */
+@Getter
+public enum WxEeventType {
+
+	/*** 关注公众号*/
+	SUBSCRIBE("subscribe"),
+	/*** 取消关注公众号*/
+	UNSUBSCRIBE("unsubscribe");
+	private String code;
+	WxEeventType(String code) {this.code = code;}
+
+}

+ 20 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WxMessageType.java

@@ -0,0 +1,20 @@
+package org.springblade.school.excel;
+
+import lombok.Getter;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/8/30
+ */
+@Getter
+public enum WxMessageType {
+
+	/*** 事件类型,比如订阅与取消订阅*/
+	EVENT("event"),
+	/*** 向公众号发送的文字消息*/
+	TEXT("text");
+	private String code;
+	WxMessageType(String code) {this.code = code;}
+
+
+}

+ 29 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WxServiceMsgDto.java

@@ -0,0 +1,29 @@
+package org.springblade.school.excel;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * @author :jixinyuan
+ * @date : 2023/8/30
+ */
+@Data
+public class WxServiceMsgDto {
+
+	@XmlElement(name = "Event")
+	private String event;
+	@XmlElement(name = "Content")
+	private String content;
+	@XmlElement(name = "MsgType")
+	private String msgType;
+	@XmlElement(name = "ToUserName")
+	private String toUserName;
+	/*** fromUserName为关注人的openId**/
+	@XmlElement(name = "FromUserName")
+	private String fromUserName;
+	@XmlElement(name = "CreateTime")
+	private String createTime;
+
+
+}