Browse Source

优化消息查询

hubin 4 months ago
parent
commit
85b5343ff8

+ 1 - 1
src/main/java/com/aizuda/boot/modules/system/controller/SysMessageController.java

@@ -42,7 +42,7 @@ public class SysMessageController extends ApiController {
     @Operation(summary = "我的分页列表")
     @Permission("sys:message:pageMy")
     @PostMapping("/page-my")
-    public Page<SysMessageVO> pageMy(@RequestBody PageParam<SysMessage> dto) {
+    public Page<SysMessageVO> pageMy(@RequestBody PageParam<SysMessageVO> dto) {
         return sysMessageService.pageMy(dto.page(), dto.getData());
     }
 

+ 1 - 1
src/main/java/com/aizuda/boot/modules/system/mapper/SysMessageMapper.java

@@ -17,7 +17,7 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface SysMessageMapper extends CrudMapper<SysMessage> {
 
-    Page<SysMessageVO> selectPageVOByUserId(Page<SysMessage> page, @Param("userId") Long userId, @Param("m") SysMessage sysMessage);
+    Page<SysMessageVO> selectPageVOByUserId(Page<SysMessage> page, @Param("userId") Long userId, @Param("m") SysMessageVO vo);
 
     Page<MyMessageVO> selectPageMyNotViewed(Page<MyMessageVO> page, @Param("userId") Long userId, @Param("category") Integer category);
 }

+ 1 - 1
src/main/java/com/aizuda/boot/modules/system/service/ISysMessageService.java

@@ -20,7 +20,7 @@ public interface ISysMessageService extends IBaseService<SysMessage> {
     /**
      * 我的消息分页列表
      */
-    Page<SysMessageVO> pageMy(Page<SysMessage> page, SysMessage sysMessage);
+    Page<SysMessageVO> pageMy(Page<SysMessage> page, SysMessageVO vo);
 
     /**
      * 告知消息

+ 2 - 2
src/main/java/com/aizuda/boot/modules/system/service/impl/SysMessageServiceImpl.java

@@ -42,9 +42,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<SysMessageMapper, Sys
     }
 
     @Override
-    public Page<SysMessageVO> pageMy(Page<SysMessage> page, SysMessage sysMessage) {
+    public Page<SysMessageVO> pageMy(Page<SysMessage> page, SysMessageVO vo) {
         UserSession userSession = UserSession.getLoginInfo();
-        return baseMapper.selectPageVOByUserId(page, userSession.getId(), sysMessage);
+        return baseMapper.selectPageVOByUserId(page, userSession.getId(), vo);
     }
 
     @Override

+ 7 - 1
src/main/resources/mapper/SysMessageMapper.xml

@@ -6,12 +6,18 @@
         SELECT s.*,r.viewed,r.send_status,r.send_failure,r.send_time FROM sys_message s
         JOIN sys_message_receiver r ON r.message_id = s.id AND r.user_id = #{userId}
         <where>
-            <if test="m.title != null">
+            <if test="m.title != null and m.title != ''">
                 AND s.title LIKE CONCAT('%',#{m.title},'%')
             </if>
+            <if test="m.createBy != null and m.createBy != ''">
+                AND s.create_by LIKE CONCAT('%',#{m.createBy},'%')
+            </if>
             <if test="m.category != null">
                 AND s.category = #{m.category}
             </if>
+            <if test="m.viewed != null">
+                AND r.viewed = #{m.viewed}
+            </if>
         </where>
         ORDER BY s.create_time DESC
     </select>