fix: stat traffic
This commit is contained in:
@@ -3,56 +3,65 @@
|
|||||||
<mapper namespace="org.wfc.user.mapper.UCdrMapper">
|
<mapper namespace="org.wfc.user.mapper.UCdrMapper">
|
||||||
|
|
||||||
<select id="getByUser" resultType="org.wfc.user.domain.vo.UCdrUserVo">
|
<select id="getByUser" resultType="org.wfc.user.domain.vo.UCdrUserVo">
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
cdr.user_id id,
|
t.id,
|
||||||
min( ch.start_time ) start_time,
|
max( t.activity ) activity,
|
||||||
max( cdr.last_seen_time ) end_time,
|
sum( t.duration ) duration,
|
||||||
max( cdr.activity ) activity,
|
sum( t.traffic_down ) traffic_down,
|
||||||
<choose>
|
sum( t.traffic_up ) traffic_up
|
||||||
<when test="endTime != null">
|
|
||||||
sum(
|
|
||||||
if(cdr.last_seen_time <= #{endTime}, ifnull( cdr.up_time, 0 ), 0))+ sum(
|
|
||||||
ifnull( ch.duration, 0 )) duration,
|
|
||||||
sum(
|
|
||||||
if(cdr.last_seen_time <= #{endTime}, ifnull( cdr.traffic_down, 0 ), 0)) + sum(
|
|
||||||
ifnull( ch.traffic_down, 0 )) traffic_down,
|
|
||||||
sum(
|
|
||||||
if(cdr.last_seen_time <= #{endTime}, ifnull( cdr.traffic_up, 0 ), 0)) + sum(
|
|
||||||
ifnull( ch.traffic_up, 0 )) traffic_up
|
|
||||||
</when>
|
|
||||||
<otherwise>
|
|
||||||
sum(
|
|
||||||
ifnull( cdr.up_time, 0 ))+ sum(
|
|
||||||
ifnull( ch.duration, 0 )) duration,
|
|
||||||
sum(
|
|
||||||
ifnull( cdr.traffic_down, 0 )) + sum(
|
|
||||||
ifnull( ch.traffic_down, 0 )) traffic_down,
|
|
||||||
sum(
|
|
||||||
ifnull( cdr.traffic_up, 0 )) + sum(
|
|
||||||
ifnull( ch.traffic_up, 0 )) traffic_up
|
|
||||||
</otherwise>
|
|
||||||
</choose>
|
|
||||||
|
|
||||||
FROM
|
FROM
|
||||||
u_cdr cdr
|
(
|
||||||
LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id
|
SELECT
|
||||||
AND ch.del_flag = 0
|
cdr.user_id id,
|
||||||
WHERE
|
max( cdr.activity ) activity,
|
||||||
cdr.del_flag = 0
|
sum(
|
||||||
AND cdr.last_seen_time != ifnull( ch.end_time, 0 )
|
ifnull( ch.duration, 0 )) duration,
|
||||||
<if test="userId != null and userId != ''">
|
sum(
|
||||||
AND cdr.user_id = #{userId}
|
ifnull( ch.traffic_down, 0 )) traffic_down,
|
||||||
</if>
|
sum(
|
||||||
<if test="endTime != null">
|
ifnull( ch.traffic_up, 0 )) traffic_up
|
||||||
AND ch.start_time <= #{endTime}
|
FROM
|
||||||
</if>
|
u_cdr cdr
|
||||||
<if test="startTime != null">
|
LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id
|
||||||
AND ch.start_time >= #{startTime}
|
AND ch.del_flag = 0
|
||||||
</if>
|
WHERE
|
||||||
|
cdr.del_flag = 0
|
||||||
|
AND cdr.last_seen_time != ifnull( ch.end_time, 0 )
|
||||||
|
<if test="userId != null and userId != ''">
|
||||||
|
AND cdr.user_id = #{userId}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null">
|
||||||
|
AND ch.start_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null">
|
||||||
|
AND ch.start_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
cdr.user_id UNION
|
||||||
|
SELECT
|
||||||
|
cdr.user_id id,
|
||||||
|
max( cdr.activity ) activity,
|
||||||
|
sum(
|
||||||
|
ifnull( cdr.up_time, 0 )) duration,
|
||||||
|
sum(
|
||||||
|
ifnull( cdr.traffic_down, 0 )) traffic_down,
|
||||||
|
sum(
|
||||||
|
ifnull( cdr.traffic_up, 0 )) traffic_up
|
||||||
|
FROM
|
||||||
|
u_cdr cdr
|
||||||
|
WHERE
|
||||||
|
cdr.del_flag = 0
|
||||||
|
<if test="userId != null and userId != ''">
|
||||||
|
AND cdr.user_id = #{userId}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null">
|
||||||
|
AND cdr.last_seen_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
cdr.user_id
|
||||||
|
) t
|
||||||
GROUP BY
|
GROUP BY
|
||||||
cdr.user_id
|
t.id
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getByClient" resultType="org.wfc.user.domain.vo.UCdrClientVo">
|
<select id="getByClient" resultType="org.wfc.user.domain.vo.UCdrClientVo">
|
||||||
|
|||||||
Reference in New Issue
Block a user