Blame view

urbanops-module-garden/src/main/resources/mapper/unitintegraltotal/UnitIntegralTotalMapper.xml 1.51 KB
487e54c6   wangqian   增加单位积分查询功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.unitintegraltotal.UnitIntegralTotalMapper">
  
      <!-- 根据related_task_id统计总积分(add_integral - sub_integral) -->
      <select id="queryIntegralByRelatedTaskIds" resultType="com.zteits.urbanops.module.garden.controller.admin.unitintegraltotal.vo.UnitIntegralRespVO">
          SELECT
          COALESCE(a.related_task_id, b.related_task_id) AS relatedTaskId,
          COALESCE(a.add_integral, 0) - COALESCE(b.sub_integral, 0) AS totalIntegral
          FROM
          -- 子查询1:统计增加积分
          (SELECT
          related_task_id,
          SUM(add_integral) AS add_integral
          FROM garden_unit_integral_add
          WHERE deleted = '0'
          AND related_task_id IN
          <foreach collection="relatedTaskIds" item="taskId" open="(" separator="," close=")">
              #{taskId}
          </foreach>
          GROUP BY related_task_id) a
          -- 左连接扣减积分表
          LEFT JOIN
          (SELECT
          related_task_id,
          SUM(sub_integral) AS sub_integral
          FROM garden_unit_integral_sub
          WHERE deleted = '0'
          AND related_task_id IN
          <foreach collection="relatedTaskIds" item="taskId" open="(" separator="," close=")">
              #{taskId}
          </foreach>
          GROUP BY related_task_id) b
          ON a.related_task_id = b.related_task_id
      </select>
  
  </mapper>