Files
FrameTour-BE/src/main/resources/mapper/ScenicDeviceStatsMapper.xml
Jerry Yan dbe0447987 refactor(pc): 移除日志记录并优化数据查询
- 移除了多个控制器和服务类中的冗余日志记录
- 在查询数据时,不再通过 SQL左连接直接获取景点和设备名称,而是使用 Repository 单独查询
- 更新了 FaceSampleMapper、
2025-09-04 15:57:18 +08:00

65 lines
2.6 KiB
XML

<?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.ycwl.basic.mapper.ScenicDeviceStatsMapper">
<!-- 插入景区设备统计记录 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="stats.id">
REPLACE scenic_device_stats (
scenic_id,
device_id,
date,
count
) VALUES (
#{stats.scenicId},
#{stats.deviceId},
#{stats.date},
#{stats.count}
)
</insert>
<select id="countDeviceStats"
resultType="com.ycwl.basic.model.pc.scenicDeviceStats.entity.ScenicDeviceStatsEntity">
select scenic_id, device_id, count(1) as count
from (
select s.scenic_id, s.device_id
from member_source ms
left join source s on ms.source_id = s.id
where ms.type = 1 and s.id is not null
and s.create_time >= #{start}
and s.create_time &lt;= #{end}
group by s.scenic_id, s.device_id, ms.face_id
)a
group by scenic_id, device_id
</select>
<select id="countCachedStatsByScenicId"
resultType="com.ycwl.basic.model.pc.scenicDeviceStats.resp.ScenicDeviceStatsResp">
select
ds.scenic_id as scenicId,
ds.device_id as deviceId,
IFNULL(sum(ds.count), 0) as count
from scenic_device_stats ds
where ds.device_id = #{scenicId}
and ds.date >= #{start}
and ds.date &lt;= #{end}
group by ds.scenic_id, ds.device_id
</select>
<select id="countRealtimeStatsByScenicId"
resultType="com.ycwl.basic.model.pc.scenicDeviceStats.resp.ScenicDeviceStatsResp">
select
ds.scenic_id as scenicId,
ds.device_id as deviceId,
ds.count
from (
select scenic_id, device_id, count(1) as count
from (
select s.scenic_id, s.device_id
from member_source ms
left join source s on ms.source_id = s.id
where ms.type = 2 and s.id is not null
and s.create_time >= #{start}
and s.create_time &lt;= #{end}
group by s.scenic_id, s.device_id, ms.face_id
)a
group by scenic_id, device_id
) ds
where ds.scenic_id = #{scenicId}
</select>
</mapper>