Browse Source

新增小铃铛消息分页接口

fuyuchuan 1 week ago
parent
commit
1b8ebb0164

+ 11 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/MceReceiveController.java

@@ -7,6 +7,7 @@ import com.usky.common.log.annotation.Log;
 import com.usky.common.log.enums.BusinessType;
 import com.usky.system.domain.MceReceive;
 import com.usky.system.service.MceReceiveService;
+import com.usky.system.service.vo.MceReceiveResponseVO;
 import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -95,6 +96,16 @@ public class MceReceiveController {
         return ApiResult.success(mceReceiveService.mceReceiveStatic());
     }
 
+    /**
+     * 消息中心分页接口
+     * @return
+     */
+    @GetMapping("/getMceReceiveList")
+    public ApiResult<CommonPage<MceReceiveResponseVO>> getMceReceiveList(@RequestParam(value = "pageNumber", required = false, defaultValue = "1") Integer pageNumber,
+                                                                         @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize) {
+        return ApiResult.success(mceReceiveService.getMceReceiveResponseVOList(pageNumber, pageSize));
+    }
+
     /**
      * 已读
      * @return

+ 4 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/MceReceiveService.java

@@ -4,7 +4,9 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.system.domain.MceReceive;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.system.domain.MceRequestVO;
+import com.usky.system.service.vo.MceReceiveResponseVO;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,4 +37,6 @@ public interface MceReceiveService extends CrudService<MceReceive> {
 
     boolean deleteById(Integer id);
 
+    CommonPage<MceReceiveResponseVO> getMceReceiveResponseVOList(Integer pageNumber, Integer pageSize);
+
 }

+ 32 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/MceReceiveServiceImpl.java

@@ -19,6 +19,7 @@ import com.usky.system.mapper.MceSettingMapper;
 import com.usky.system.mapper.SysUserMapper;
 import com.usky.system.service.*;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.system.service.vo.MceReceiveResponseVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -607,4 +608,35 @@ public class MceReceiveServiceImpl extends AbstractCrudService<MceReceiveMapper,
         }
         return f;
     }
+
+    @Override
+    public CommonPage<MceReceiveResponseVO> getMceReceiveResponseVOList(Integer pageNumber, Integer pageSize) {
+        IPage<MceReceive> page = new Page<>(pageNumber, pageSize);
+        Long userId = SecurityUtils.getUserId();
+        List<MceReceiveResponseVO> returnList = new ArrayList<>();
+
+        LambdaQueryWrapper<MceReceive> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(MceReceive::getReceiverId, userId);
+        page = this.page(page, lambdaQuery);
+        List<MceReceive> mceReceiveList = page.getRecords();
+        List<Integer> contentIdList = mceReceiveList.stream().map(MceReceive::getContentId).distinct().collect(Collectors.toList());
+
+        List<MceContent> mceContentList = mceContentService.list(new LambdaQueryWrapper<MceContent>().in(MceContent::getId, contentIdList));
+
+        for (MceContent mceContent : mceContentList) {
+            MceReceive mceReceive = mceReceiveList.stream().filter(mceReceive1 -> mceReceive1.getContentId().equals(mceContent.getId())).findFirst().get();
+            MceReceiveResponseVO mceReceiveResponseVO = new MceReceiveResponseVO();
+            mceReceiveResponseVO.setMceId(mceReceive.getId());
+            mceReceiveResponseVO.setInfoType(mceContent.getInfoType());
+            mceReceiveResponseVO.setInfoTitle(mceContent.getInfoTitle());
+            mceReceiveResponseVO.setContentId(mceContent.getId());
+            mceReceiveResponseVO.setInfoContent(mceContent.getInfoContent());
+            mceReceiveResponseVO.setCreateTime(mceContent.getCreateTime());
+            mceReceiveResponseVO.setCreateBy(mceContent.getCreateBy());
+            mceReceiveResponseVO.setModuleId(mceReceive.getModuleId());
+            returnList.add(mceReceiveResponseVO);
+        }
+
+        return new CommonPage<>(returnList, page.getTotal(), page.getSize(), page.getCurrent());
+    }
 }

+ 56 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/MceReceiveResponseVO.java

@@ -0,0 +1,56 @@
+package com.usky.system.service.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ *
+ * @author fyc
+ * @email yuchuan.fu@chinausky.com
+ * @date 2025/4/8
+ */
+@Data
+public class MceReceiveResponseVO {
+    /**
+     * 消息类型
+     */
+    private String infoType;
+
+    /**
+     * 消息id
+     */
+    private Integer mceId;
+
+    /**
+     * 消息标题
+     */
+    private String infoTitle;
+
+    /**
+     * 消息内容id
+     */
+    private Integer contentId;
+
+    /**
+     * 消息内容
+     */
+    private String infoContent;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 跳转id
+     */
+    private Integer moduleId;
+}