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