From d70c240e09a9021824cc9e9f1bed8028a0c194cd Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 04 Sep 2025 15:31:05 +0800
Subject: [PATCH] Merge branch 'master' into xin
---
oying-system/src/main/java/com/oying/modules/message/rest/MesMsgRecordController.java | 212 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 130 insertions(+), 82 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
index 6d08391..95821ef 100644
--- 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
@@ -1,92 +1,87 @@
package com.oying.modules.message.rest;
-import com.oying.annotation.Log;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.modules.message.common.MsgStatusEnum;
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.dto.MesMsgRecordQueryCriteria;
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.PageResult;
import com.oying.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
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
-**/
+ * @author 李萌
+ * @date 2025-07-25
+ **/
@Slf4j
@RestController
@RequiredArgsConstructor
-@Api(tags = "消息")
+@Api(tags = "消息中心2.0")
@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);
+// }
- @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=骑手"
+ //只查“未读”消息,不分种类,返回最新 N 条 1=买家 2=商户 3=骑手" 消息类型为系统消息1?
@GetMapping("/poll")
@ApiOperation("查询轮询消息 1(买家)、2(商户)、3(骑手)")
@PreAuthorize("@el.check('mesMsgRecord:list')")
- public R<List<MesMsgRecordQueryPollDto>> queryMesMsgRecord(@RequestParam Long platform){
+ public R<List<MesMsgRecordQueryPollDto>> queryMesMsgRecord(@RequestParam Long platform) {
//platform 只能为 1 2 3
if (platform == null) {
return R.fail("平台类型不能为空");
@@ -98,13 +93,16 @@
// 实现业务逻辑,调用服务层获取未读消息
try {
- List<MesMsgRecordQueryPollDto> mes=mesMsgRecordService.PollMes(platform);
+// Long system = Long.valueOf(MesTypeEnum.SYSTEM.getKey());
+// List<MesMsgRecordQueryPollDto> mes = mesMsgRecordService.PollMes(platform, system);
+ List<MesMsgRecordQueryPollDto> mes = mesMsgRecordService.PollMesAll(platform);
+
+
return R.success(mes);
} catch (Exception e) {
- log.error("查询轮询消息失败:",e);
+ log.error("查询轮询消息失败:", e);
return R.fail("查询轮询消息失败");
}
-
}
@@ -113,19 +111,20 @@
// @PutMapping("/ack/{msgId}")
// @ApiOperation("确认收到消息")
// public R<Void> ack(@PathVariable Long msgId) {
-//// mesMsgRecordService.markRead(msgId, null);
+
+ /// / 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) {
+ @ApiOperation("批量确认收到消息 主键ids 1(买家)、2(商户)、3(骑手)")
+ 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);
+ mesMsgRecordService.batchMarkRead(platform, msgIds);
return R.success();
} catch (Exception e) {
log.error("批量确认消息失败,msgIds: {}", msgIds, e);
@@ -140,7 +139,7 @@
MesMsgRecordQueryCriteria criteria) {
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
try {
- PageResult<MesMsgRecordQuerySystemDto> pageResult = mesMsgRecordService.queryAllSysNotice(criteria,page);
+ PageResult<MesMsgRecordQuerySystemDto> pageResult = mesMsgRecordService.queryAllSysNotice(criteria, page);
return R.success(pageResult);
} catch (Exception e) {
log.error("分页查询系统通知失败,criteria: {}", criteria, e);
@@ -150,23 +149,72 @@
}
/* 4. 用店铺id 查询订单消息 */
- @GetMapping("/order")
- @ApiOperation("用店铺id 查询订单消息")
- public R<List<MesMsgRecordQueryOrderDto>> order(@PathVariable Long shopId ) {
+// @GetMapping("/order")
+// @ApiOperation("用店铺id 查询订单消息")
+// public R<List<MesMsgRecordQueryOrderDto>> order(@RequestParam 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 获取订单消息失败");
+//
+// }
+//
+// }
+
+ //商户端:买家下单提醒 根据商户id 获取买家下单提醒
+ @GetMapping("/order/pending")
+ @ApiOperation("商户端:用店铺id 获取下单订单消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getPendingOrders(@RequestParam Long shopId) {
try {
- List<MesMsgRecordQueryOrderDto> res=mesMsgRecordService.queryorder(shopId);
+ String content = MsgStatusEnum.MERCHANT_ACCEPTED.getValue();
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
return R.success(res);
} catch (Exception e) {
- log.error("用店铺id 获取订单消息失败,shopId: {}", shopId, e);
- return R.fail("用店铺id 获取订单消息失败");
-
+ log.error("用店铺id 获取待处理订单消息失败,shopId: {}", shopId, e);
+ return R.fail("用店铺id 获取待处理订单消息失败");
}
-
}
+ //商户端:订单送达通知 。 根据商户id 获取买家下订单送达
+ @GetMapping("/order/delivered")
+ @ApiOperation("商户端:用店铺id 获取订单送达消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getDeliveredOrders(@RequestParam Long shopId) {
+ try {
+ String content = MsgStatusEnum.BUYER_ORDER_DELIVERED.getValue();
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryorderPending(shopId, content);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("用店铺id 获取已送达订单消息失败,shopId: {}", shopId, e);
+ return R.fail("用店铺id 获取已送达订单消息失败");
+ }
+ }
+ //买家端:订单状态变化通知
+ @GetMapping("/buyer/order/status")
+ @ApiOperation("买家端:获取订单状态变化消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getBuyerOrderStatus(@RequestParam Long buyerId) {
+ try {
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryBuyerOrderMessages(buyerId);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("买家端获取订单状态变化消息失败,buyerId: {}", buyerId, e);
+ return R.fail("获取订单状态变化消息失败");
+ }
+ }
-
-
+ //买家端:订单送达通知
+ @GetMapping("/buyer/order/delivered")
+ @ApiOperation("买家端:获取订单送达消息")
+ public R<List<MesMsgRecordQueryOrderDto>> getBuyerDeliveredOrders(@RequestParam Long buyerId) {
+ try {
+ List<MesMsgRecordQueryOrderDto> res = mesMsgRecordService.queryBuyerOrderMessagesComplete(buyerId);
+ return R.success(res);
+ } catch (Exception e) {
+ log.error("买家端获取订单送达消息失败,buyerId: {}", buyerId, e);
+ return R.fail("获取订单送达消息失败");
+ }
+ }
}
--
Gitblit v1.9.3