From 982313135d1c239fe3b20e4c5664781f92d40aca Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 31 Jul 2025 17:17:39 +0800
Subject: [PATCH] Merge branch 'master' into xin

---
 oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
new file mode 100644
index 0000000..6d08391
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java
@@ -0,0 +1,172 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.common.PlatFormEnum;
+import com.oying.modules.message.domain.MesMsgRecord;
+import com.oying.modules.message.domain.dto.MesShopMsgRespDTO;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
+import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
+import com.oying.modules.message.service.MesMsgRecordService;
+import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
+import com.oying.utils.R;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-07-25
+**/
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息")
+@RequestMapping("/api/mesMsgRecord")
+public class MesMsgRecordController {
+
+    private final MesMsgRecordService mesMsgRecordService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('mesMsgRecord:list')")
+    public void exportMesMsgRecord(HttpServletResponse response, MesMsgRecordQueryCriteria criteria) throws IOException {
+        mesMsgRecordService.download(mesMsgRecordService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息")
+    @PreAuthorize("@el.check('mesMsgRecord:list')")
+    public ResponseEntity<PageResult<MesMsgRecord>> queryMesMsgRecord(MesMsgRecordQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(mesMsgRecordService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息")
+    @ApiOperation("新增消息")
+    @PreAuthorize("@el.check('mesMsgRecord:add')")
+    public ResponseEntity<Object> createMesMsgRecord(@Validated @RequestBody MesMsgRecord resources){
+        mesMsgRecordService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息")
+    @ApiOperation("修改消息")
+    @PreAuthorize("@el.check('mesMsgRecord:edit')")
+    public ResponseEntity<Object> updateMesMsgRecord(@Validated @RequestBody MesMsgRecord resources){
+        mesMsgRecordService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息")
+    @ApiOperation("删除消息")
+    @PreAuthorize("@el.check('mesMsgRecord:del')")
+    public ResponseEntity<Object> deleteMesMsgRecord(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        mesMsgRecordService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+    
+
+    /* 1. 轮询最新消息(通知栏) */  //todo 轮询啥?
+    //只查“未读”消息,不分种类,返回最新 N 条     1=买家 2=商户 3=骑手"
+    @GetMapping("/poll")
+    @ApiOperation("查询轮询消息 1(买家)、2(商户)、3(骑手)")
+    @PreAuthorize("@el.check('mesMsgRecord:list')")
+    public R<List<MesMsgRecordQueryPollDto>> queryMesMsgRecord(@RequestParam Long platform){
+        //platform 只能为 1 2 3
+        if (platform == null) {
+            return R.fail("平台类型不能为空");
+        }
+
+        if (PlatFormEnum.getByKey(platform.intValue()) == null) {
+            return R.fail("平台类型错误,只能为1(买家)、2(商户)、3(骑手)");
+        }
+
+        // 实现业务逻辑,调用服务层获取未读消息
+        try {
+            List<MesMsgRecordQueryPollDto> mes=mesMsgRecordService.PollMes(platform);
+            return R.success(mes);
+        } catch (Exception e) {
+            log.error("查询轮询消息失败:",e);
+            return R.fail("查询轮询消息失败");
+        }
+
+
+
+    }
+
+//    /* 2. 批量确认收到消息 */
+//    @PutMapping("/ack/{msgId}")
+//    @ApiOperation("确认收到消息")
+//    public R<Void> ack(@PathVariable Long msgId) {
+////        mesMsgRecordService.markRead(msgId, null);
+//        return R.success();
+//    }
+    /* 2. 批量确认收到消息   主键*/
+    @PutMapping("/ack")
+    @ApiOperation("批量确认收到消息")
+    public R<Void> batchAck(@ApiParam(value = "消息ID数组") @RequestBody List<Long> msgIds,@RequestParam Long platform) {
+        if (msgIds == null || msgIds.isEmpty()) {
+            return R.fail("消息ID列表不能为空");
+        }
+
+        try {
+            mesMsgRecordService.batchMarkRead(platform,msgIds);
+            return R.success();
+        } catch (Exception e) {
+            log.error("批量确认消息失败,msgIds: {}", msgIds, e);
+            return R.fail("批量确认消息失败");
+        }
+    }
+
+    /* 3. 分页系统通知 */
+    @GetMapping("/sysNotice")
+    @ApiOperation("分页查询系统通知")
+    public R<PageResult<MesMsgRecordQuerySystemDto>> sysNotice(
+            MesMsgRecordQueryCriteria criteria) {
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        try {
+            PageResult<MesMsgRecordQuerySystemDto> pageResult = mesMsgRecordService.queryAllSysNotice(criteria,page);
+            return R.success(pageResult);
+        } catch (Exception e) {
+            log.error("分页查询系统通知失败,criteria: {}", criteria, e);
+            return R.fail("分页查询系统通知失败");
+        }
+
+    }
+
+    /* 4. 用店铺id 查询订单消息 */
+    @GetMapping("/order")
+    @ApiOperation("用店铺id 查询订单消息")
+    public R<List<MesMsgRecordQueryOrderDto>> order(@PathVariable Long shopId ) {
+        try {
+            List<MesMsgRecordQueryOrderDto> res=mesMsgRecordService.queryorder(shopId);
+            return R.success(res);
+        } catch (Exception e) {
+            log.error("用店铺id 获取订单消息失败,shopId: {}", shopId, e);
+            return R.fail("用店铺id 获取订单消息失败");
+
+        }
+
+    }
+
+
+
+
+
+
+}

--
Gitblit v1.9.3