FileMetaMapper.xml 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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`,`scope`)
  7. values
  8. (#{id},#{deleted},#{createTime},#{updateTime},#{objectName},#{objectId},#{contentId},#{pid},#{filename},#{size},#{fileType},#{contentType},#{sha256sum},#{uploadBy},#{diskFile},#{scope})
  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`,`scope`)
  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.scope})
  16. </foreach>
  17. </insert>
  18. <update id="updateScopeByObjectIds">
  19. update file_meta
  20. set scope=#{scope}
  21. where object_id in
  22. <foreach collection="list" item="item" separator="," open="(" close=")">
  23. #{item.objectId}
  24. </foreach>
  25. </update>
  26. <update id="updateSetAcl">
  27. update file_meta
  28. set update_time=now() and scope=#{scope}
  29. where object_id=#{objectId}
  30. </update>
  31. <update id="update">
  32. update file_meta
  33. set object_name=#{objectName}
  34. where object_id=#{objectId}
  35. </update>
  36. <update id="updateBatch">
  37. update file_meta
  38. <trim prefix="set" suffixOverrides=",">
  39. <trim prefix="content_id =case" suffix="end,">
  40. <foreach collection="list" item="item" index="index">
  41. when object_id=#{item.objectId} then #{item.contentId}
  42. </foreach>
  43. </trim>
  44. </trim>
  45. <where>
  46. object_id in
  47. <foreach collection="list" item="item" separator="," open="(" close=")">
  48. #{item.objectId}
  49. </foreach>
  50. </where>
  51. </update>
  52. <select id="count" resultType="java.lang.Integer">
  53. select count(*) from file_meta
  54. </select>
  55. <select id="findAll" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  56. select * from file_meta
  57. </select>
  58. <select id="findAll0" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  59. select file_meta.* from file_meta
  60. inner join bucket
  61. on bucket.name=#{bucket}
  62. and object_name regexp #{regex}
  63. limit #{max}
  64. </select>
  65. <!-- TODO ${prefix} 和 #{prefix} 的区别 -->
  66. <select id="findAll1" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  67. select file_meta.* from file_meta
  68. inner join bucket
  69. on bucket.name=#{bucket}
  70. and object_name regexp concat_ws('', '^', '${prefix}', '([^/])+/?$')
  71. limit #{max}
  72. </select>
  73. <select id="findAll2" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  74. select file_meta.* from file_meta
  75. inner join bucket
  76. on bucket.name=#{bucket}
  77. and object_name regexp concat_ws('', '^', '${prefix}', '([^/])+/?$')
  78. and id > (select id from file_meta where object_name=#{start})
  79. limit #{max}
  80. </select>
  81. <select id="findBySha256sum" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  82. select * from file_meta
  83. where sha256sum=#{sha256sum}
  84. order by create_time asc
  85. limit 1
  86. </select>
  87. <select id="findByObjectName" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  88. select *
  89. from file_meta
  90. where object_name=#{objectName}
  91. </select>
  92. <select id="findByObjectId" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  93. select *
  94. from file_meta
  95. where object_id=#{objectId}
  96. </select>
  97. <select id="findByContentId" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  98. select *
  99. from file_meta
  100. where content_id=#{contentId}
  101. </select>
  102. <select id="findObjectMeta" resultType="cn.reghao.oss.api.dto.ObjectMeta">
  103. select file_meta.size,file_meta.content_type,file_meta.object_name,file_meta.object_id,file_meta.scope as scope,file_meta.upload_by,
  104. data_block.absolute_path
  105. from file_meta
  106. inner join data_block
  107. on file_meta.content_id=data_block.content_id
  108. and file_meta.object_name=#{objectName}
  109. </select>
  110. <select id="findObjectMetaByPage" resultType="cn.reghao.oss.api.dto.ObjectMeta">
  111. select file_meta.size,file_meta.content_type,file_meta.object_name,file_meta.object_id,file_meta.scope as scope,file_meta.upload_by,
  112. data_block.absolute_path
  113. from file_meta
  114. inner join data_block
  115. on file_meta.object_id=data_block.object_id
  116. </select>
  117. <!--*************************************************************************************************************-->
  118. <update id="updateFilename">
  119. update file_meta
  120. set update_time=now() and filename=#{filename}
  121. where object_id=#{objectId}
  122. </update>
  123. <update id="updateParent">
  124. update file_meta
  125. set update_time=now() and pid=#{pid}
  126. where object_id=#{objectId}
  127. </update>
  128. <update id="updateSetDelete">
  129. update file_meta
  130. set update_time=now() and deleted=1
  131. where object_id=#{objectId}
  132. </update>
  133. <select id="countByPid" resultType="java.lang.Integer">
  134. select count(*)
  135. from file_meta
  136. where pid=#{pid}
  137. </select>
  138. <select id="findFileInfoByPage" resultType="cn.reghao.oss.api.dto.FileInfo">
  139. 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
  140. from file_meta
  141. inner join file_type
  142. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.pid=#{pid}
  143. order by file_type asc
  144. </select>
  145. <select id="findFileInfo1ByPage" resultType="cn.reghao.oss.api.dto.FileInfo">
  146. 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
  147. from file_meta
  148. inner join file_type
  149. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.pid=#{pid}
  150. order by file_type asc
  151. </select>
  152. <select id="countDeletedFiles" resultType="java.lang.Integer">
  153. select count(*)
  154. from file_meta
  155. where deleted=1
  156. </select>
  157. <select id="findDeletedFileByPage" resultType="cn.reghao.oss.api.dto.DeleteFile">
  158. 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
  159. from file_meta
  160. inner join file_type
  161. on file_meta.deleted=1 and file_meta.file_type=file_type.id
  162. order by file_type asc
  163. </select>
  164. <select id="findDirectories" resultType="cn.reghao.oss.api.dto.FileInfo">
  165. 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
  166. from file_meta
  167. inner join file_type
  168. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.file_type=1000 and file_meta.pid=#{pid}
  169. order by file_type asc
  170. </select>
  171. <select id="findByFilename" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  172. select *
  173. from file_meta
  174. where pid=#{pid} and filename like concat(#{filename},'%')
  175. </select>
  176. <select id="findFileInfos" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  177. select *
  178. from file_meta
  179. where object_id in
  180. <foreach collection="objectIds" item="id" index="index" open="(" close=")" separator=",">
  181. #{id}
  182. </foreach>
  183. </select>
  184. <select id="findByPid" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  185. select *
  186. from file_meta
  187. where pid=#{pid}
  188. </select>
  189. <select id="countByKeyword" resultType="java.lang.Integer">
  190. select count(*)
  191. from file_meta
  192. where filename like concat('%',#{keyword},'%')
  193. </select>
  194. <select id="findKeywordByPage" resultType="cn.reghao.oss.api.dto.FileInfo">
  195. 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
  196. from file_meta
  197. inner join file_type
  198. on file_meta.deleted=0 and file_meta.file_type=file_type.id and file_meta.filename like concat('%',#{keyword},'%')
  199. order by file_type asc
  200. </select>
  201. <select id="findFileMetaByPage" resultType="cn.reghao.dfs.store.model.po.FileMeta">
  202. select * from file_meta
  203. where file_type!=1000
  204. </select>
  205. <select id="findObjectPrefix" resultType="java.lang.String">
  206. select * from file_meta
  207. where file_type==1000
  208. </select>
  209. <select id="findAclByObjectPrefix" resultType="java.lang.Integer">
  210. select scope
  211. from file_meta
  212. where object_prefix=#{objectPrefix}
  213. </select>
  214. </mapper>