Quellcode durchsuchen

查数量完善

honorfire vor 6 Monaten
Ursprung
Commit
da15136d5e

+ 10 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/UserReadMapper.java

@@ -26,10 +26,18 @@ import java.util.Map;
 public interface UserReadMapper extends BaseMapper<UserRead> {
 
     /**
-     * 通用阅读-获取数量
+     * 通用阅读-获取站内信数量
      *
      * @author honorfire
      * @date  2025/08/13 17:35
      */
-    Map<String,Object> getCount(Map param);
+    Map<String,Object> getDevMessageCount(Map param);
+
+    /**
+     * 通用阅读-获取公告数量
+     *
+     * @author honorfire
+     * @date  2025/08/13 17:35
+     */
+    Map<String,Object> getNoticeCount(Map param);
 }

+ 24 - 13
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/UserReadMapper.xml

@@ -2,25 +2,15 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.disk.mapper.UserReadMapper">
 
-    <select id="getCount" resultType="java.util.Map">
+    <select id="getDevMessageCount" resultType="java.util.Map">
         SELECT
             collectCount.allCount -collectCount.alreadyCount AS unreadCount
         from(
                 SELECT
-                    <if test="funcType == 1">
-                        (SELECT count(dme.ID) FROM DEV_MESSAGE dme WHERE dme.DELETE_FLAG='NOT_DELETE') AS allCount,
-                    </if>
-                    <if test="funcType == 2">
-                        (SELECT count(noe.NOTICE_ID) FROM "notice" noe WHERE noe.DELETE_FLAG='NOT_DELETE') AS allCount,
-                    </if>
+                    (SELECT count(dme.ID) FROM DEV_MESSAGE dme WHERE dme.DELETE_FLAG='NOT_DELETE') AS allCount,
                     (SELECT count(ur.USER_ID)
                      FROM USER_READ ur
-                        <if test="funcType == 1">
-                            LEFT JOIN DEV_MESSAGE dm ON dm.ID = ur.MAIN_ID
-                        </if>
-                        <if test="funcType == 2">
-                            LEFT JOIN "notice" n ON n.NOTICE_ID = ur.MAIN_ID
-                        </if>
+                     LEFT JOIN DEV_MESSAGE dm ON dm.ID = ur.MAIN_ID
                      WHERE ur.DELETE_FLAG ='NOT_DELETE'
                         <if test="userId !=null and userId != ''">
                             AND ur.USER_ID=#{userId}
@@ -32,4 +22,25 @@
                 FROM DUAL
             )AS collectCount
     </select>
+
+    <select id="getNoticeCount" resultType="java.util.Map">
+        SELECT
+            collectCount.allCount -collectCount.alreadyCount AS unreadCount
+        from(
+            SELECT
+                (SELECT count(noe.NOTICE_ID) FROM "notice" noe WHERE noe.DELETE_FLAG='NOT_DELETE') AS allCount,
+                (SELECT count(ur.USER_ID)
+                FROM USER_READ ur
+                LEFT JOIN "notice" n ON n.NOTICE_ID = ur.MAIN_ID
+                WHERE ur.DELETE_FLAG ='NOT_DELETE'
+                <if test="userId !=null and userId != ''">
+                    AND ur.USER_ID=#{userId}
+                </if>
+                <if test="funcType !=null and funcType != ''">
+                    AND ur.FUNC_TYPE =#{funcType}
+                </if>
+                ) AS alreadyCount
+            FROM DUAL
+        )AS collectCount
+    </select>
 </mapper>

+ 5 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/UserReadServiceImpl.java

@@ -34,6 +34,7 @@ import vip.xiaonuo.disk.param.userread.UserReadPageParam;
 import vip.xiaonuo.disk.service.UserReadService;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -129,7 +130,10 @@ public class UserReadServiceImpl extends ServiceImpl<UserReadMapper, UserRead> i
 
     @Override
     public Map<String,Object> getCount(Map param){
-        return userReadMapper.getCount(param);
+        Map result=new HashMap();
+        if("1".equals(param.get("funcType"))) result=userReadMapper.getDevMessageCount(param);
+        if("2".equals(param.get("funcType"))) result=userReadMapper.getNoticeCount(param);
+        return result;
     }
 
     @Override