|
|
@ -25,38 +25,42 @@ |
|
|
|
<!-- 查询客户下周/月度用户积分排行榜 传参:客户Id | 维度 | 维度值 --> |
|
|
|
<!-- user_point_statistical_daily中的action_flag有三种key值,plus(获取),exchange(积分兑换),minus(调整、惩罚),当action_flag为minus时,point_change为负值,其余均为正数 --> |
|
|
|
<select id="selectPointRankWithinTimeZone" resultType="com.epmet.dto.result.ResiPointRankResultDTO"> |
|
|
|
SELECT |
|
|
|
IF |
|
|
|
( @point > point.TOTAL_POINT, @rank := @rank + 1, @rank := @rank + 0 ) AS rank, |
|
|
|
point.user_id, |
|
|
|
point.TOTAL_POINT, |
|
|
|
-- CASE WHEN point.TOTAL_POINT <![CDATA[>=]]> 0 THEN point.TOTAL_POINT ELSE 0 END AS totalPoint, |
|
|
|
@point := point.TOTAL_POINT |
|
|
|
SELECT IF ( @point > point.TOTAL_POINT, |
|
|
|
@rank := @rank + 1, |
|
|
|
@rank := @rank + 0 |
|
|
|
) AS rank, |
|
|
|
point.user_id, |
|
|
|
point.TOTAL_POINT, |
|
|
|
@point := point.TOTAL_POINT |
|
|
|
FROM |
|
|
|
( |
|
|
|
( |
|
|
|
SELECT |
|
|
|
USER_ID, |
|
|
|
SUM( POINT_CHANGE ) AS TOTAL_POINT |
|
|
|
total.USER_ID, |
|
|
|
IFNULL( SUM( daily.POINT_CHANGE ), 0 ) AS POINT_CHANGE, |
|
|
|
IF |
|
|
|
( POINT_CHANGE <![CDATA[ < ]]> 0, 0, IFNULL( SUM( daily.POINT_CHANGE ), 0 ) ) AS TOTAL_POINT |
|
|
|
FROM |
|
|
|
user_point_statistical_daily |
|
|
|
user_point_total total |
|
|
|
LEFT JOIN user_point_statistical_daily daily ON daily.USER_ID = total.USER_ID |
|
|
|
AND daily.DEL_FLAG = '0' |
|
|
|
AND daily.USER_ID = total.USER_ID |
|
|
|
AND daily.CUSTOMER_ID = #{customerId} |
|
|
|
<if test='dimension == "week"'> |
|
|
|
AND daily.WEEK_ID = #{dimensionId} |
|
|
|
</if> |
|
|
|
<if test='dimension == "month"'> |
|
|
|
AND daily.MONTH_ID = #{dimensionId} |
|
|
|
</if> |
|
|
|
AND ( daily.ACTION_FLAG = 'plus' OR daily.ACTION_FLAG = 'minus' ) |
|
|
|
WHERE |
|
|
|
DEL_FLAG = '0' |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
<if test='dimension == "week"'> |
|
|
|
AND WEEK_ID = #{dimensionId} |
|
|
|
</if> |
|
|
|
<if test='dimension == "month"'> |
|
|
|
AND MONTH_ID = #{dimensionId} |
|
|
|
</if> |
|
|
|
AND ACTION_FLAG = 'plus' |
|
|
|
OR ACTION_FLAG = 'minus' |
|
|
|
|
|
|
|
total.DEL_FLAG = '0' |
|
|
|
AND total.DEL_FLAG = '0' |
|
|
|
GROUP BY |
|
|
|
USER_ID |
|
|
|
total.USER_ID |
|
|
|
ORDER BY |
|
|
|
TOTAL_POINT DESC |
|
|
|
) point, |
|
|
|
( SELECT @point := NULL, @rank := 1 ) a |
|
|
|
TOTAL_POINT DESC |
|
|
|
) point, |
|
|
|
( SELECT @point := NULL, @rank := 1 ) a |
|
|
|
</select> |
|
|
|
|
|
|
|
<!-- 查询有无指定日期的积分日统计 userId dateId actionFlag--> |
|
|
|