You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MeasureMapper.xml 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
  3. <mapper namespace="org.sonar.db.measure.MeasureMapper">
  4. <sql id="measureColumns">
  5. pm.metric_id as metricId,
  6. pm.component_uuid as componentUuid,
  7. pm.analysis_uuid as analysisUuid,
  8. pm.value as value,
  9. pm.text_value as textValue,
  10. pm.alert_status as alertStatus,
  11. pm.alert_text as alertText,
  12. pm.measure_data as dataValue,
  13. pm.variation_value_1 as variation
  14. </sql>
  15. <select id="selectLastMeasure" parameterType="map" resultType="Measure">
  16. select <include refid="measureColumns"/>
  17. from project_measures pm
  18. inner join metrics m on m.id = pm.metric_id
  19. inner join snapshots s on s.uuid = pm.analysis_uuid
  20. where
  21. pm.component_uuid = #{componentUuid,jdbcType=VARCHAR} and
  22. m.name = #{metricKey,jdbcType=VARCHAR} and
  23. s.islast= ${_true}
  24. </select>
  25. <select id="selectMeasure" parameterType="map" resultType="Measure">
  26. select <include refid="measureColumns"/>
  27. from project_measures pm
  28. inner join metrics m on m.id = pm.metric_id
  29. inner join snapshots s on s.uuid = pm.analysis_uuid
  30. where
  31. pm.component_uuid = #{componentUuid,jdbcType=VARCHAR} and
  32. m.name = #{metricKey,jdbcType=VARCHAR} and
  33. s.uuid = #{analysisUuid,jdbcType=VARCHAR}
  34. </select>
  35. <select id="selectByQueryOnProjects" parameterType="map" resultType="Measure">
  36. select <include refid="measureColumns"/> from project_measures pm
  37. <include refid="selectByQueryCommonJoins"/>
  38. where
  39. <include refid="selectByQueryCommonFilters"/>
  40. and analysis.component_uuid=pm.component_uuid
  41. and analysis.component_uuid in
  42. <foreach item="projectUuid" collection="query.getProjectUuids()" open="(" separator="," close=")">
  43. #{projectUuid,jdbcType=VARCHAR}
  44. </foreach>
  45. </select>
  46. <select id="selectByQueryOnComponents" parameterType="map" resultType="Measure">
  47. select <include refid="measureColumns"/> from project_measures pm
  48. <include refid="selectByQueryCommonJoins"/>
  49. where
  50. <include refid="selectByQueryCommonFilters"/>
  51. and analysis.component_uuid=#{query.projectUuid,jdbcType=VARCHAR}
  52. and pm.component_uuid in
  53. <foreach item="componentUuid" collection="query.getComponentUuids()" open="(" separator="," close=")">
  54. #{componentUuid,jdbcType=VARCHAR}
  55. </foreach>
  56. </select>
  57. <select id="selectByQueryOnSingleComponent" parameterType="map" resultType="Measure">
  58. select <include refid="measureColumns"/> from project_measures pm
  59. <include refid="selectByQueryCommonJoins"/>
  60. inner join components p on p.project_uuid=analysis.component_uuid
  61. and p.uuid=pm.component_uuid
  62. where
  63. <include refid="selectByQueryCommonFilters"/>
  64. and pm.component_uuid=#{query.componentUuid,jdbcType=VARCHAR}
  65. </select>
  66. <sql id="selectByQueryCommonJoins">
  67. inner join snapshots analysis on analysis.uuid = pm.analysis_uuid
  68. <if test="query.getMetricKeys() != null">
  69. inner join metrics m on m.id = pm.metric_id
  70. </if>
  71. </sql>
  72. <sql id="selectByQueryCommonFilters">
  73. <if test="query.getAnalysisUuid() == null">
  74. analysis.islast=${_true}
  75. </if>
  76. <if test="query.getAnalysisUuid() != null">
  77. analysis.uuid = #{query.analysisUuid,jdbcType=VARCHAR}
  78. </if>
  79. <if test="query.getMetricIds() != null">
  80. and pm.metric_id in
  81. <foreach item="metricId" collection="query.getMetricIds()" open="(" separator="," close=")">#{metricId}</foreach>
  82. </if>
  83. <if test="query.getMetricKeys() != null">
  84. and m.name in
  85. <foreach item="metricKey" collection="query.getMetricKeys()" open="(" separator="," close=")">
  86. #{metricKey,jdbcType=VARCHAR}
  87. </foreach>
  88. </if>
  89. </sql>
  90. <select id="selectPastMeasuresOnSeveralAnalyses" parameterType="map" resultType="Measure">
  91. select <include refid="measureColumns"/>
  92. from project_measures pm
  93. inner join snapshots analysis on analysis.uuid = pm.analysis_uuid
  94. where
  95. pm.component_uuid = #{query.componentUuid, jdbcType=VARCHAR}
  96. <if test="query.from!= null">
  97. and analysis.created_at>=#{query.from, jdbcType=BIGINT}
  98. </if>
  99. <if test="query.to!=null">
  100. and analysis.created_at&lt;#{query.to, jdbcType=BIGINT}
  101. </if>
  102. and pm.metric_id in <foreach item="metricId" collection="query.metricIds" open="(" separator="," close=")">#{metricId, jdbcType=VARCHAR}</foreach>
  103. and analysis.status=#{query.status, jdbcType=VARCHAR}
  104. </select>
  105. <insert id="insert" parameterType="Measure" useGeneratedKeys="false">
  106. insert into project_measures (
  107. value,
  108. metric_id,
  109. component_uuid,
  110. analysis_uuid,
  111. text_value,
  112. alert_status,
  113. alert_text,
  114. variation_value_1,
  115. measure_data)
  116. VALUES (
  117. #{value, jdbcType=DOUBLE},
  118. #{metricId, jdbcType=INTEGER},
  119. #{componentUuid, jdbcType=VARCHAR},
  120. #{analysisUuid, jdbcType=VARCHAR},
  121. #{textValue, jdbcType=VARCHAR},
  122. #{alertStatus, jdbcType=VARCHAR},
  123. #{alertText, jdbcType=VARCHAR},
  124. #{variation, jdbcType=DOUBLE},
  125. #{dataValue, jdbcType=BINARY}
  126. )
  127. </insert>
  128. </mapper>