浏览代码

解决最近文件列表 文件或目录被删之后的BUG

wukai 1 年之前
父节点
当前提交
6dbb70d380

+ 16 - 0
doc-biz/src/main/java/com/doc/biz/mapper/DocRecentMapper.java

@@ -59,4 +59,20 @@ public interface DocRecentMapper extends BaseMapper<DocRecent> {
      * @return 结果
      */
     public int deleteDocRecentByRecentIds(Long[] recentIds);
+
+    /**
+     * 查询目录列表
+     *
+     * @param docRecent 查询对象
+     * @return 结果
+     */
+    List<DocRecent> selectFolderList(DocRecent docRecent);
+
+    /**
+     * 查询文件列表
+     *
+     * @param docRecent 查询对象
+     * @return 结果
+     */
+    List<DocRecent> selectFileList(DocRecent docRecent);
 }

+ 8 - 1
doc-biz/src/main/java/com/doc/biz/service/impl/DocRecentServiceImpl.java

@@ -43,7 +43,14 @@ public class DocRecentServiceImpl implements IDocRecentService {
      */
     @Override
     public List<DocRecent> selectDocRecentList(DocRecent docRecent) {
-        return docRecentMapper.selectDocRecentList(docRecent);
+        if ("Y".equals(docRecent.getIsFolder())) {
+            return docRecentMapper.selectFolderList(docRecent);
+        } else if ("N".equals(docRecent.getIsFolder())) {
+            return docRecentMapper.selectFileList(docRecent);
+        } else {
+            return docRecentMapper.selectDocRecentList(docRecent);
+
+        }
     }
 
     /**

+ 35 - 0
doc-biz/src/main/resources/mapper/biz/DocRecentMapper.xml

@@ -39,6 +39,41 @@
         order by create_time desc
     </select>
 
+    <select id="selectFileList" parameterType="DocRecent" resultMap="DocRecentResult">
+        SELECT a.*, b.FILE_NAME NAME
+        FROM (SELECT A.IS_FOLDER,
+        A.RELA_ID,
+        A.OWNER,
+        MAX(A.CREATE_TIME) create_time
+        FROM doc_recent A
+        GROUP BY A.IS_FOLDER,
+        A.RELA_ID,
+        A.OWNER) a,DOC_INFO b
+        <where>
+            A.RELA_ID = B.DOC_ID
+            <if test="isFolder != null  and isFolder != ''">and IS_FOLDER = #{isFolder}</if>
+            <if test="owner != null  and owner != ''">and OWNER = #{owner}</if>
+        </where>
+        order by create_time desc
+    </select>
+    <select id="selectFolderList" parameterType="DocRecent" resultMap="DocRecentResult">
+        SELECT a.*, B.DIR_NAME NAME
+        FROM (SELECT A.IS_FOLDER,
+        A.RELA_ID,
+        A.OWNER,
+        MAX(A.CREATE_TIME) create_time
+        FROM doc_recent A
+        GROUP BY A.IS_FOLDER,
+        A.RELA_ID,
+        A.OWNER) a,DOC_DIR B
+        <where>
+            A.RELA_ID = B.DIR_ID
+            <if test="isFolder != null  and isFolder != ''">and IS_FOLDER = #{isFolder}</if>
+            <if test="owner != null  and owner != ''">and OWNER = #{owner}</if>
+        </where>
+        order by create_time desc
+    </select>
+
     <select id="selectDocRecentByRecentId" parameterType="Long" resultMap="DocRecentResult">
         <include refid="selectDocRecentVo"/>
         where RECENT_ID = #{recentId}