From 8014574aa8a6abe96ad1ad5bb39a2b55547c84f8 Mon Sep 17 00:00:00 2001
From: leomon <2233021400@qq.com>
Date: Wed, 04 Jun 2025 23:15:36 +0800
Subject: [PATCH] 微信小程序发送订阅消息给客户
---
oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java | 75 +++++++++++++++++++++++++++++++++++++
oying-system/src/main/java/com/oying/modules/message/domain/dto/SendMessageRequestDto.java | 14 +++++++
2 files changed, 88 insertions(+), 1 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/SendMessageRequestDto.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/SendMessageRequestDto.java
new file mode 100644
index 0000000..dce5274
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/SendMessageRequestDto.java
@@ -0,0 +1,14 @@
+
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+
+import java.util.Map;
+
+@Data
+public class SendMessageRequestDto {
+ private String touser;
+ private String template_id;
+ private String page;
+ private Map<String, Object> data;
+}
\ No newline at end of file
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
index 0df458c..e34c508 100644
--- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
@@ -1,16 +1,25 @@
package com.oying.modules.message.rest;
+import com.alibaba.fastjson2.JSONObject;
import com.oying.annotation.Log;
import com.oying.modules.message.domain.MessageSystem;
+import com.oying.modules.message.domain.dto.SendMessageRequestDto;
import com.oying.modules.message.service.MessageSystemService;
import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
+import com.oying.modules.system.domain.User;
+import com.oying.modules.system.domain.UserSubscribe;
+import com.oying.utils.HttpRequest;
+import lombok.Data;
import lombok.RequiredArgsConstructor;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -18,10 +27,12 @@
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
+import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oying.utils.PageResult;
-
+import com.oying.modules.security.service.WeiXinService;
+import com.oying.utils.R;
/**
* @author 李萌
* @date 2025-05-20
@@ -32,7 +43,11 @@
@RequestMapping("/api/message/messageSystem")
public class MessageSystemController {
+ private static final Logger log = LoggerFactory.getLogger(MessageSystemController.class);
private final MessageSystemService messageSystemService;
+ private final WeiXinService weiXinService;
+
+
// @ApiOperation("导出数据")
// @GetMapping(value = "/download")
@@ -101,5 +116,63 @@
return new ResponseEntity<>(HttpStatus.OK);
}
+ /**
+ * POST 该接口用于发送订阅消息。
+ * data 请求参数
+ * openid 用户openId
+ * templateId 订阅模板id
+ * page 小程序跳转链接
+ */
+// public void sendMessage(Map<String, Object> data, String openid, String templateId, String page) {
+// JSONObject jsonObject = new JSONObject();
+// if (wxEnabled) {
+// String url = weiXinProperties.getSendMessage();
+// url = url.replace("{accessToken}", getStableAccessToken());
+// Map<String, Object> map = getSendMessageDto(data, openid, templateId, page);
+// jsonObject = HttpRequest.exchangeJsonObject(HttpMethod.POST, url, map);
+// } else {
+// jsonObject.put("message", "测试环境");
+// }
+// User user = userService.findByOpenid(openid);
+// UserSubscribe sub = new UserSubscribe();
+// sub.setSubType(templateId);
+// sub.setUserId(user.getId());
+// sub.setOpenid(openid);
+// sub.setUsername(user.getUsername());
+// sub.setSendMessage(JSONObject.toJSONString(data));
+// sub.setSubMessage(jsonObject.toJSONString());
+// subscribeService.save(sub);
+// }
+ //调用微信发送消息接口sendMessage
+
+ //示例
+// {
+// "touser": "OPENID",
+// "template_id": "TEMPLATE_ID",
+// "page": "index",
+// "data":{
+// "phrase3": {
+// "value": "审核通过"
+// },
+// "name1": {
+// "value": "订阅"
+// },
+// "date2": {
+// "value": "2019-12-25 09:42"
+// }
+// }
+// }
+
+ @PostMapping("/sendMessage")
+ @ApiOperation("发送订阅消息")
+ public R<SendMessageRequestDto> sendMessage(@RequestBody SendMessageRequestDto request){
+ //打印request
+ //SendMessageRequestDto(touser=OPENID, template_id=TEMPLATE_ID, page=index, data={date2={"value":"2019-12-25 09:42"}, phrase3={"value":"审核通过"}, name1={"value":"订阅"}})
+ log.info("request:{}", request);
+ weiXinService.sendMessage(request.getData(), request.getTouser(), request.getTemplate_id(), request.getPage());
+ return R.success(request);
+ }
+
+
}
--
Gitblit v1.9.3