From a3fffa17c643bb96159a23880e1749c486279906 Mon Sep 17 00:00:00 2001 From: leomon <2233021400@qq.com> Date: Thu, 05 Jun 2025 00:32:29 +0800 Subject: [PATCH] 消息中心统一 响应R --- oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java | 96 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 89 insertions(+), 7 deletions(-) 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..4ce11f6 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") @@ -44,9 +59,10 @@ @GetMapping @ApiOperation("查询消息_系统") @PreAuthorize("@el.check('messageSystem:list')") - public ResponseEntity<PageResult<MessageSystem>> queryMessageSystem(MessageSystemQueryCriteria criteria){ + public R<PageResult<MessageSystem>> queryMessageSystem(MessageSystemQueryCriteria criteria){ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); - return new ResponseEntity<>(messageSystemService.queryAll(criteria,page),HttpStatus.OK); +// return new ResponseEntity<>(messageSystemService.queryAll(criteria,page),HttpStatus.OK); + return R.success(messageSystemService.queryAll(criteria,page)); } // @PostMapping @@ -79,14 +95,15 @@ //查询一条系统消息 @GetMapping("/{id}") @ApiOperation("查询一条系统消息") - public ResponseEntity<MessageSystem> getMessageSystem(@PathVariable Integer id){ + public R<MessageSystem> getMessageSystem(@PathVariable Integer id){ MessageSystem messageSystem = messageSystemService.getById(id); - return new ResponseEntity<>(messageSystem,HttpStatus.OK); +// return new ResponseEntity<>(messageSystem,HttpStatus.OK); + return R.success(messageSystem); } //插入一条系统消息 带两个参数start与end @PostMapping() @ApiOperation("插入一条系统消息") - public ResponseEntity<Object> insertMessageSystem( + public R<Object> insertMessageSystem( @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start, @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) { @@ -98,8 +115,73 @@ // 调用服务层保存数据 messageSystemService.save(messageSystem); - return new ResponseEntity<>(HttpStatus.OK); +// return new ResponseEntity<>(HttpStatus.OK); + return R.success("插入成功"); } + /** + * 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" +// } +// } +// } +//todo 发送订阅消息 数据库暂未存储 + @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); + try { + weiXinService.sendMessage(request.getData(), request.getTouser(), request.getTemplate_id(), request.getPage()); + return R.success(request); + } catch (Exception e) { + // 如果捕获到异常,返回错误信息 + log.error("发送订阅消息失败", e); + return R.fail(request,"发送订阅消息失败 用真实数据:" + e.getMessage()); + } + } + + } -- Gitblit v1.9.3