2
0

feat: update cdr info

This commit is contained in:
caiyuchao
2024-12-13 18:53:00 +08:00
parent 65a42dfcaf
commit 7865018df5
27 changed files with 400 additions and 103 deletions

View File

@@ -1,5 +1,5 @@
<?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="org.wfc.user.mapper.UCdrDetailMapper">
<mapper namespace="org.wfc.user.mapper.UCdrHistoryMapper">
</mapper>

View File

@@ -2,4 +2,74 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.wfc.user.mapper.UCdrMapper">
<select id="getByUser" resultType="org.wfc.user.domain.vo.UCdrUserVo">
SELECT
cdr.user_id id,
min( ch.start_time ) start_time,
max( cdr.last_seen_time ) end_time,
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
FROM
u_cdr cdr
LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id
AND ch.del_flag = 0
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>
GROUP BY
cdr.user_id
</select>
<select id="getByClient" resultType="org.wfc.user.domain.vo.UCdrClientVo">
SELECT
c.id,
c.client_mac,
c.client_name,
c.client_device_type,
h.*
FROM
u_client c
LEFT JOIN (
SELECT
cdr.client_id,
min( ch.start_time ) start_time,
max( cdr.last_seen_time ) end_time,
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
FROM
u_cdr cdr
LEFT JOIN u_cdr_history ch ON cdr.id = ch.cdr_id
AND ch.del_flag = 0
WHERE
cdr.del_flag = 0
AND cdr.last_seen_time != ifnull( ch.end_time, 0 )
GROUP BY
cdr.client_id
) h ON c.id = h.client_id
WHERE
c.del_flag = 0
<if test="client.clientName != null and client.clientName != ''">
AND c.client_name like concat('%', #{client.clientName}, '%')
</if>
<if test="client.clientMac != null and client.clientMac != ''">
AND c.client_mac = like concat('%', #{client.clientMac}, '%')
</if>
</select>
</mapper>