فهرست منبع

新增根据多id查询消息列表

wanghaicheng 5 سال پیش
والد
کامیت
1a5e21eda5

+ 29 - 7
lift-push/src/main/java/cn/com/ty/lift/push/message/controller/TimeMessageController.java

@@ -14,36 +14,58 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Collection;
+import java.util.List;
+
 @RestController
 @AllArgsConstructor
 @RequestMapping("message")
 public class TimeMessageController {
     private final TimeMessageService timeMessageService;
 
+    /**
+     * 消息列表
+     *
+     * @param messageVo 分页数据的请求对象
+     * @return 带已读,未读条数的分页列表
+     */
     @PostMapping("list")
-    public RestResponse list(@RequestBody MessageVo messageVo) {
+    public RestResponse<MessageBO> list(@RequestBody MessageVo messageVo) {
         IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
         IPage<TimeMessage> result = timeMessageService.page(page, Wrappers.<TimeMessage>query()
                 .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
                 .eq(messageVo.getType() != null, "type", messageVo.getType())
                 .orderByAsc("view_flag", "create_time"));
         MessageBO messageBO = MessageBO.pageCastMessageBo(result);
-        messageBO.setReadCount(timeMessageService.count(Wrappers.<TimeMessage>query()
+        messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
                 .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
                 .eq("view_flag", 1)
                 .eq("type", messageVo.getType())));
-        messageBO.setUnreadCount(timeMessageService.count(Wrappers.<TimeMessage>query()
-                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
-                .eq("view_flag", 0)
-                .eq("type", messageVo.getType())));
+        messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
         return RestResponse.success(messageBO);
     }
 
+    /**
+     * @param messageVo 分页功能的请求对象
+     * @return 一条消息详情
+     */
     @PostMapping
-    public RestResponse message(@RequestBody MessageVo messageVo) {
+    public RestResponse<TimeMessage> message(@RequestBody MessageVo messageVo) {
         TimeMessage byId = timeMessageService.getById(messageVo.getId());
         byId.setViewFlag(1);
         timeMessageService.updateById(byId);
         return RestResponse.success(byId);
     }
+
+    /**
+     * @param messageVo id列表
+     * @return 多条消息详情
+     */
+    @PostMapping("details")
+    public RestResponse<Collection<TimeMessage>> messages(@RequestBody MessageVo messageVo) {
+        Collection<TimeMessage> timeMessages = timeMessageService.listByIds(messageVo.getIds());
+        timeMessages.forEach(timeMessage -> timeMessage.setViewFlag(1));
+        timeMessageService.updateBatchById(timeMessages);
+        return RestResponse.success(timeMessages);
+    }
 }

+ 2 - 2
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageBO.java

@@ -9,8 +9,8 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class MessageBO extends Page<TimeMessage> implements IPage<TimeMessage> {
-    private Integer readCount;
-    private Integer unreadCount;
+    private Long readCount;
+    private Long unreadCount;
 
     public static MessageBO pageCastMessageBo(IPage<TimeMessage> page) {
         MessageBO messageBO = new MessageBO();

+ 3 - 0
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageVo.java

@@ -4,9 +4,12 @@ import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class MessageVo extends TimeMessage {
     private long pageNum = 1;
     private long pageSize = 10;
+    private List<Long> ids;
 }