FileMetaMapper.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="cn.reghao.dfs.store.db.mapper.FileMetaMapper">
  4. <insert id="save" useGeneratedKeys="true" keyProperty="id">
  5. insert into file_meta
  6. (`id`,`deleted`,`create_time`,`update_time`,`object_name`,`object_id`,`content_id`,`pid`,`filename`,`size`,`file_type`,`content_type`,`sha256sum`,`upload_by`,`disk_file`,`acl`)
  7. values
  8. (#{id},#{deleted},#{createTime},#{updateTime},#{objectName},#{objectId},#{contentId},#{pid},#{filename},#{size},#{fileType},#{contentType},#{sha256sum},#{uploadBy},#{diskFile},#{acl})
  9. </insert>
  10. <insert id="saveAll" useGeneratedKeys="true" keyProperty="id">
  11. insert into file_meta
  12. (`id`,`deleted`,`create_time`,`update_time`,`object_name`,`object_id`,`content_id`,`pid`,`filename`,`size`,`file_type`,`content_type`,`sha256sum`,`upload_by`,`disk_file`,`acl`)
  13. values
  14. <foreach collection="list" item="item" index="index" separator=",">
  15. (#{item.id},#{item.deleted},#{item.createTime},#{item.updateTime},#{item.objectName},#{item.objectId},#{item.contentId},#{item.pid},#{item.filename},#{item.size},#{item.fileType},#{item.contentType},#{item.sha256sum},#{item.uploadBy},#{item.diskFile},#{item.acl})
  16. </foreach>
  17. </insert>
  18. <update id="update">
  19. update file_meta
  20. set object_name=#{objectName}
  21. where object_id=#{objectId}
  22. </update>
  23. <select id="count" resultType="java.lang.Integer">
  24. select count(*) from file_meta
  25. </select>
  26. <select id="findAll" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  27. select * from file_meta
  28. </select>
  29. <select id="findAll0" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  30. select file_meta.* from file_meta
  31. inner join bucket
  32. on bucket.name=#{bucket}
  33. and object_name regexp #{regex}
  34. limit #{max}
  35. </select>
  36. <!-- TODO ${prefix} 和 #{prefix} 的区别 -->
  37. <select id="findAll1" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  38. select file_meta.* from file_meta
  39. inner join bucket
  40. on bucket.name=#{bucket}
  41. and object_name regexp concat_ws('', '^', '${prefix}', '([^/])+/?$')
  42. limit #{max}
  43. </select>
  44. <select id="findAll2" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  45. select file_meta.* from file_meta
  46. inner join bucket
  47. on bucket.name=#{bucket}
  48. and object_name regexp concat_ws('', '^', '${prefix}', '([^/])+/?$')
  49. and id > (select id from file_meta where object_name=#{start})
  50. limit #{max}
  51. </select>
  52. <select id="findBySha256sum" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  53. select * from file_meta
  54. where sha256sum=#{sha256sum}
  55. order by create_time asc
  56. limit 1
  57. </select>
  58. <select id="findByObjectName" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  59. select *
  60. from file_meta
  61. where object_name=#{objectName}
  62. </select>
  63. <select id="findByObjectId" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  64. select *
  65. from file_meta
  66. where object_id=#{objectId}
  67. </select>
  68. <select id="findObjectMeta" resultType="cn.reghao.dfs.store.model.vo.ObjectMeta">
  69. select file_meta.size,file_meta.content_type,file_meta.object_name,file_meta.object_id,
  70. data_block.absolute_path
  71. from file_meta
  72. inner join data_block
  73. on file_meta.sha256sum=data_block.sha256sum
  74. and file_meta.object_name=#{objectName}
  75. </select>
  76. <select id="findObjectMetaByPage" resultType="cn.reghao.dfs.store.model.vo.ObjectMeta">
  77. select file_meta.size,file_meta.content_type,file_meta.object_name,data_block.absolute_path
  78. from file_meta
  79. inner join data_block
  80. on file_meta.object_id=data_block.object_id
  81. </select>
  82. <!--*************************************************************************************************************-->
  83. <update id="updateFilename">
  84. update file_meta
  85. set filename=#{filename}
  86. where object_id=#{objectId}
  87. </update>
  88. <update id="updateParent">
  89. update file_meta
  90. set pid=#{pid}
  91. where object_id=#{objectId}
  92. </update>
  93. <update id="updateSetDelete">
  94. update file_meta
  95. set update_time=now() and deleted=1
  96. where object_id=#{objectId}
  97. </update>
  98. <delete id="deleteByObjectId">
  99. delete from file_meta
  100. where object_id=#{objectId}
  101. </delete>
  102. <select id="countByPid" resultType="java.lang.Integer">
  103. select count(*)
  104. from file_meta
  105. where pid=#{pid}
  106. </select>
  107. <select id="findFileInfoByPage" resultType="cn.reghao.dfs.api.dto.FileInfo">
  108. select file_meta.object_id as file_id,file_meta.filename,file_meta.file_type as type,file_meta.size,file_meta.update_time,file_type.icon
  109. from file_meta
  110. inner join file_type
  111. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.pid=#{pid}
  112. order by file_type asc
  113. </select>
  114. <select id="findFileInfo1ByPage" resultType="cn.reghao.dfs.api.dto.FileInfo">
  115. select file_meta.object_id as file_id,file_meta.filename,file_meta.file_type as type,file_meta.size,file_meta.update_time,file_type.icon_large as icon
  116. from file_meta
  117. inner join file_type
  118. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.pid=#{pid}
  119. order by file_type asc
  120. </select>
  121. <select id="countDeletedFiles" resultType="java.lang.Integer">
  122. select count(*)
  123. from file_meta
  124. where deleted=1
  125. </select>
  126. <select id="findDeletedFileByPage" resultType="cn.reghao.dfs.api.dto.DeleteFile">
  127. select file_meta.object_id as file_id,file_meta.filename,file_meta.file_type as type,file_meta.size,file_meta.update_time,file_type.icon
  128. from file_meta
  129. inner join file_type
  130. on file_meta.deleted=1 and file_meta.file_type=file_type.id
  131. order by file_type asc
  132. </select>
  133. <select id="findDirectories" resultType="cn.reghao.dfs.api.dto.FileInfo">
  134. select file_meta.object_id as file_id,file_meta.filename,file_meta.file_type as type,file_meta.size,file_meta.update_time,file_type.icon
  135. from file_meta
  136. inner join file_type
  137. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.file_type=1000 and file_meta.pid=#{pid}
  138. order by file_type asc
  139. </select>
  140. <select id="findByFilename" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  141. select *
  142. from file_meta
  143. where pid=#{pid} and filename like concat(#{filename},'%')
  144. </select>
  145. <select id="findFileInfos" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  146. select *
  147. from file_meta
  148. where object_id in
  149. <foreach collection="objectIds" item="id" index="index" open="(" close=")" separator=",">
  150. #{id}
  151. </foreach>
  152. </select>
  153. <select id="findByPid" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  154. select *
  155. from file_meta
  156. where pid=#{pid}
  157. </select>
  158. <select id="countByKeyword" resultType="java.lang.Integer">
  159. select count(*)
  160. from file_meta
  161. where filename like concat('%',#{keyword},'%')
  162. </select>
  163. <select id="findKeywordByPage" resultType="cn.reghao.dfs.api.dto.FileInfo">
  164. select file_meta.object_id as file_id,file_meta.filename,file_meta.file_type as type,file_meta.size,file_meta.update_time,file_type.icon
  165. from file_meta
  166. inner join file_type
  167. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.filename like concat('%',#{keyword},'%')
  168. order by file_type asc
  169. </select>
  170. <select id="findFileMetaByPage" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  171. select * from file_meta
  172. where file_type!=1000
  173. </select>
  174. </mapper>