AnalysisAlbumMapper.xml 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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="com.redxun.knowledge.analysis.mapper.AnalysisAlbumMapper">
  4. <select id="selectCategory" resultType="string">
  5. select PK_ID
  6. FROM KM_ALBUM_CATEGORY
  7. where PARENT = '0' and IS_DEL = 0
  8. </select>
  9. <select id="selectAlbumId" resultType="int">
  10. select count(*)
  11. from KM_ALBUM_INFO
  12. WHERE CATEGORY_ID IN (SELECT c.PK_ID
  13. FROM KM_ALBUM_CATEGORY c
  14. START WITH c.PK_ID = #{categoryId}
  15. CONNECT BY PRIOR c.PK_ID = c.PARENT)
  16. <if test="firstDay != null and lastDay != null">
  17. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  18. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  19. </if>
  20. </select>
  21. <select id="selectKnowledge" resultType="int">
  22. select NVL(sum(count(*)),0)
  23. from KM_ALBUM_CATALOGUE_KNOWLEDGE
  24. where CATALOGUE_ID in (
  25. select PK_ID
  26. from KM_ALBUM_CATALOGUE
  27. WHERE ALBUM_ID in (select PK_ID
  28. from KM_ALBUM_INFO
  29. WHERE CATEGORY_ID IN (SELECT c.PK_ID
  30. FROM KM_ALBUM_CATEGORY c
  31. WHERE c.IS_DEL = 0
  32. START WITH c.PK_ID = #{categoryId}
  33. CONNECT BY PRIOR c.PK_ID = c.PARENT
  34. and c.IS_DEL = 0)
  35. <if test="firstDay != null and lastDay != null">
  36. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  37. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  38. </if>))
  39. group by CATALOGUE_ID
  40. </select>
  41. <select id="organizationAlbums" resultType="com.redxun.knowledge.analysis.entity.vo.AlbumCompanyVo">
  42. select companyId as company, NVL(b.album,0) as album, NVL(a.pv,0) as pv
  43. from (
  44. (select COMPANY_ID as companyId, count(*) pv from KM_PV_LOG
  45. <where>
  46. MODULE = '知识专辑'
  47. <if test="firstDay != null and lastDay != null">
  48. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  49. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  50. </if>
  51. </where>
  52. group by COMPANY_ID) a
  53. full join
  54. (select users.COMPANY_ID_ as companyId, count(*) album from KM_ALBUM_INFO album
  55. join LEARNING_USER_DEV.OS_USER users
  56. on album.CREATE_BY_ = users.USER_ID_
  57. <where>
  58. <if test="firstDay != null and lastDay != null">
  59. and TO_CHAR(album.CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  60. and TO_CHAR(album.CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  61. </if>
  62. </where>
  63. group by users.COMPANY_ID_) b
  64. using (companyId)
  65. )
  66. order by album desc
  67. </select>
  68. <select id="albumAmount" resultType="com.redxun.knowledge.analysis.entity.vo.CreateCountLabel">
  69. <if test="type != null and type == 'year'">
  70. select t2.name,nvl(value,0) value from (
  71. </if>
  72. select
  73. <if test="firstDay == null and lastDay == null">
  74. concat(concat(substr(to_char(CREATE_TIME_,'yyyy-mm'),1,instr(to_char(CREATE_TIME_,'yyyy-mm'),'-',-1) -
  75. 1),'年'),
  76. concat(ltrim(SUBSTR( to_char(CREATE_TIME_,'yyyy-mm'), INSTR( to_char(CREATE_TIME_,'yyyy-mm'), '-', 1 ) + 1
  77. ),'0'),'月')) name
  78. </if>
  79. <if test="firstDay != null and lastDay != null">
  80. concat(ltrim(to_char(CREATE_TIME_,'mm'),'0'),'月') name
  81. </if>
  82. ,count(*) value from KM_ALBUM_INFO
  83. <where>
  84. <if test="firstDay != null and lastDay != null">
  85. TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  86. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  87. </if>
  88. </where>
  89. <if test="firstDay == null and lastDay == null">
  90. group by to_char(CREATE_TIME_,'yyyy-mm')
  91. order by to_char(CREATE_TIME_,'yyyy-mm')
  92. </if>
  93. <if test="firstDay != null and lastDay != null">
  94. group by to_char(CREATE_TIME_,'mm')
  95. order by to_char(CREATE_TIME_,'mm')
  96. </if>
  97. <if test="type != null and type == 'year'">
  98. ) t1
  99. right join
  100. (select concat(ltrim(to_char(monthlist, 'mm'), '0'), '月') name, monthlist
  101. from (
  102. SELECT ADD_MONTHS(TO_DATE(#{firstDay}, 'yyyy-MM-dd'), ROWNUM - 1) as monthlist
  103. FROM DUAL
  104. CONNECT BY ROWNUM &lt;=
  105. months_between(to_date(#{lastDay}, 'yyyy-MM-dd'),
  106. to_date(#{firstDay}, 'yyyy-MM-dd')) + 1
  107. order by monthlist)) t2
  108. on t1.name = t2.name
  109. order by t2.monthlist
  110. </if>
  111. </select>
  112. <select id="selectCategoryName" resultType="string">
  113. select NAME from KM_ALBUM_CATEGORY where PK_ID = #{categoryId}
  114. </select>
  115. <select id="organizationAlbum" resultType="com.redxun.knowledge.analysis.entity.vo.AlbumCompanyVo">
  116. select NVL(album, 0) as album, NVL(pv, 0) as pv
  117. from (select count(*) pv
  118. from KM_PV_LOG
  119. <where>
  120. <if test="organizationId != null">
  121. COMPANY_ID in (
  122. select GROUP_ID_
  123. from LEARNING_USER_DEV.OS_GROUP
  124. where GROUP_ID_ in (
  125. SELECT GROUP_ID_
  126. FROM LEARNING_USER_DEV.OS_GROUP c
  127. START WITH c.GROUP_ID_ = #{organizationId}
  128. CONNECT BY PRIOR c.GROUP_ID_ = c.PARENT_ID_
  129. )
  130. )
  131. </if>
  132. and MODULE = '知识专辑'
  133. <if test="firstDay != null and lastDay != null">
  134. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  135. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  136. </if>
  137. </where>
  138. ),
  139. (select count(*) album from KM_ALBUM_INFO album
  140. <where>
  141. <if test="organizationId != null">
  142. CREATE_DEP_ID_
  143. in ( SELECT GROUP_ID_ FROM LEARNING_USER_DEV.OS_GROUP c START WITH c.GROUP_ID_ = #{organizationId} CONNECT
  144. BY PRIOR c.GROUP_ID_ = c.PARENT_ID_ )
  145. </if>
  146. <if test="firstDay != null and lastDay != null">
  147. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  148. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  149. </if>
  150. </where>
  151. )
  152. </select>
  153. <select id="albumAmountByMonth" resultType="com.redxun.knowledge.analysis.entity.vo.CreateCountLabel">
  154. select s2.name,nvl(value,0) value from (
  155. select to_char(CREATE_TIME_, 'mm"月"dd"日"') name, count(*) value
  156. from KM_ALBUM_INFO
  157. WHERE TO_CHAR(CREATE_TIME_, 'yyyy-mm-dd') &gt;= #{firstDay}
  158. and TO_CHAR(CREATE_TIME_, 'yyyy-mm-dd') &lt;= #{lastDay}
  159. group by to_char(CREATE_TIME_, 'mm"月"dd"日"')
  160. order by to_char(CREATE_TIME_, 'mm"月"dd"日"')
  161. ) s1
  162. right join (
  163. SELECT to_char(day, 'mm"月"dd"日"') as name, day
  164. from (
  165. SELECT SYSDATE - rownum + 1 as day
  166. FROM dual
  167. CONNECT BY ROWNUM &lt;= 30
  168. )
  169. ORDER BY day asc) s2 on s1.name = s2.name order by day
  170. </select>
  171. <select id="personAlbumValue" resultType="com.redxun.knowledge.analysis.entity.vo.AlbumCompanyVo">
  172. select NVL(album, 0) as album, NVL(pv, 0) as pv
  173. from (select count(*) pv
  174. from KM_PV_LOG
  175. <where>
  176. <if test="round == 2">
  177. COMPANY_ID in (
  178. select GROUP_ID_
  179. from LEARNING_USER_DEV.OS_GROUP
  180. where GROUP_ID_ in (
  181. SELECT GROUP_ID_
  182. FROM LEARNING_USER_DEV.OS_GROUP c
  183. START WITH c.GROUP_ID_ = #{id}
  184. CONNECT BY PRIOR c.GROUP_ID_ = c.PARENT_ID_
  185. )
  186. )
  187. </if>
  188. <if test="round == 1">
  189. USER_ID = #{id}
  190. </if>
  191. and MODULE = '知识专辑'
  192. <if test="firstDay != null and lastDay != null">
  193. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  194. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  195. </if>
  196. </where>
  197. ),
  198. (select count(*) album from KM_ALBUM_INFO album
  199. <where>
  200. <if test="round == 2">
  201. CREATE_DEP_ID_
  202. in ( SELECT GROUP_ID_ FROM LEARNING_USER_DEV.OS_GROUP c START WITH c.GROUP_ID_ = #{id} CONNECT
  203. BY PRIOR c.GROUP_ID_ = c.PARENT_ID_ )
  204. </if>
  205. <if test="round == 1">
  206. CREATE_BY_ = #{id}
  207. </if>
  208. <if test="firstDay != null and lastDay != null">
  209. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &gt;= #{firstDay}
  210. and TO_CHAR(CREATE_TIME_,'yyyy-mm-dd') &lt;= #{lastDay}
  211. </if>
  212. </where>
  213. )
  214. </select>
  215. </mapper>