Przeglądaj źródła

未读数量bug修复

honorfire 6 miesięcy temu
rodzic
commit
953f466c69

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

@@ -6,21 +6,24 @@
         SELECT
             collectCount.allCount -collectCount.alreadyCount AS unreadCount
         from(
-                SELECT
-                    (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
-                     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}
-                        </if>
-                        <if test="funcType !=null and funcType != ''">
-                            AND ur.FUNC_TYPE =#{funcType}
-                        </if>
-                     ) AS alreadyCount
-                FROM DUAL
-            )AS collectCount
+            SELECT
+                (SELECT count(dme.ID) FROM DEV_MESSAGE dme WHERE dme.DELETE_FLAG='NOT_DELETE') AS allCount,
+                (SELECT count(userId)
+                    from(SELECT
+                    ur.USER_ID AS userId,
+                    ur.MAIN_ID AS mainId
+                    FROM USER_READ ur
+                    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>
+                    GROUP BY ur.USER_ID,ur.MAIN_ID)
+                 ) AS alreadyCount
+            FROM DUAL
+        )AS collectCount
     </select>
 
     <select id="getNoticeCount" resultType="java.util.Map">
@@ -29,16 +32,19 @@
         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>
+                (SELECT count(userId)
+                    from(SELECT
+                    ur.USER_ID AS userId,
+                    ur.MAIN_ID AS mainId
+                    FROM USER_READ ur
+                    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>
+                    GROUP BY ur.USER_ID,ur.MAIN_ID)
                 ) AS alreadyCount
             FROM DUAL
         )AS collectCount