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