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 | 184 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 149 insertions(+), 35 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 04ea356..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,11 +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; @@ -13,61 +27,161 @@ 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-14 -**/ + * @author 李萌 + * @date 2025-05-20 + **/ @RestController @RequiredArgsConstructor @Api(tags = "消息_系统") -@RequestMapping("/api/messageSystem") +@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") - @PreAuthorize("@el.check('messageSystem:list')") - public void exportMessageSystem(HttpServletResponse response, MessageSystemQueryCriteria criteria) throws IOException { - messageSystemService.download(messageSystemService.queryAll(criteria), response); - } + + +// @ApiOperation("导出数据") +// @GetMapping(value = "/download") +// @PreAuthorize("@el.check('messageSystem:list')") +// public void exportMessageSystem(HttpServletResponse response, MessageSystemQueryCriteria criteria) throws IOException { +// messageSystemService.download(messageSystemService.queryAll(criteria), response); +// } @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 - @Log("新增消息_系统") - @ApiOperation("新增消息_系统") - @PreAuthorize("@el.check('messageSystem:add')") - public ResponseEntity<Object> createMessageSystem(@Validated @RequestBody MessageSystem resources){ - messageSystemService.create(resources); - return new ResponseEntity<>(HttpStatus.CREATED); +// @PostMapping +// @Log("新增消息_系统") +// @ApiOperation("新增消息_系统") +// @PreAuthorize("@el.check('messageSystem:add')") +// public ResponseEntity<Object> createMessageSystem(@Validated @RequestBody MessageSystem resources){ +// messageSystemService.create(resources); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } + +// @PutMapping +// @Log("修改消息_系统") +// @ApiOperation("修改消息_系统") +// @PreAuthorize("@el.check('messageSystem:edit')") +// public ResponseEntity<Object> updateMessageSystem(@Validated @RequestBody MessageSystem resources){ +// messageSystemService.update(resources); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } + +// @DeleteMapping +// @Log("删除消息_系统") +// @ApiOperation("删除消息_系统") +// @PreAuthorize("@el.check('messageSystem:del')") +// public ResponseEntity<Object> deleteMessageSystem(@ApiParam(value = "传ID数组[]") @RequestBody List<Integer> ids) { +// messageSystemService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } + + //查询一条系统消息 + @GetMapping("/{id}") + @ApiOperation("查询一条系统消息") + public R<MessageSystem> getMessageSystem(@PathVariable Integer id){ + MessageSystem messageSystem = messageSystemService.getById(id); +// return new ResponseEntity<>(messageSystem,HttpStatus.OK); + return R.success(messageSystem); + } + //插入一条系统消息 带两个参数start与end + @PostMapping() + @ApiOperation("插入一条系统消息") + 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) { + + // 创建 MessageSystem 对象 + MessageSystem messageSystem = new MessageSystem(); + messageSystem.setStartTime(new Timestamp(start.getTime())); + messageSystem.setEndTime(new Timestamp(end.getTime())); + + // 调用服务层保存数据 + messageSystemService.save(messageSystem); + +// return new ResponseEntity<>(HttpStatus.OK); + return R.success("插入成功"); } - @PutMapping - @Log("修改消息_系统") - @ApiOperation("修改消息_系统") - @PreAuthorize("@el.check('messageSystem:edit')") - public ResponseEntity<Object> updateMessageSystem(@Validated @RequestBody MessageSystem resources){ - messageSystemService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + /** + * 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()); + } } - @DeleteMapping - @Log("删除消息_系统") - @ApiOperation("删除消息_系统") - @PreAuthorize("@el.check('messageSystem:del')") - public ResponseEntity<Object> deleteMessageSystem(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { - messageSystemService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } + + } -- Gitblit v1.9.3