Files
mine_clearance/basics/src/main/resources/mapper/LogMapper.xml

127 lines
4.1 KiB
XML
Raw Normal View History

2025-03-20 22:05:58 +08:00
<?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.lightyears.basics.mapper.LogMapper">
<select id="paging" resultType="com.lightyears.common.domain.dto.OrdinaryRankDto">
SELECT
a.id,
a.user_id,
a.game_time,
a.bv3,
a.bvs3,
a.nf,
s.user_name
FROM
sl_log a
LEFT JOIN sl_player s ON s.user_id = a.user_id
where a.level = #{level}
<if test="userId != null and userId > 0">
and a.user_id = ${userId}
</if>
and s.user_gold = 0
ORDER BY a.game_time
limit 1000
</select>
<select id="syntheticalPaging" resultType="com.lightyears.common.domain.dto.OrdinaryRankDto">
SELECT
a.user_id user_id,
SUM( a.game_time ) game_time,
SUM( bv3 ) bv3,
SUM( bvs3 ) bvs3,
s.user_name,
0 nf
FROM
sl_log a
LEFT JOIN sl_player s ON s.user_id = a.user_id
WHERE
a.user_id IN (
SELECT
t.user_id
FROM
( SELECT user_id, count( LEVEL ) count_level FROM sl_log WHERE LEVEL in (1, 2 ,3) GROUP BY user_id ) t
WHERE
t.count_level >= 3
)
AND a.LEVEL in (1, 2 ,3)
and s.user_gold = 0
GROUP BY
a.user_id
ORDER BY
game_time
limit 500
</select>
<select id="getComprehensiveRankByUserId" parameterType="Integer" resultType="java.util.Map">
SELECT
m.*
from ( SELECT q.*,( @i := @i + 1 ) ranking
FROM
(
SELECT
a.user_id user_id,
SUM( a.game_time ) game_time,
SUM( bv3 ) bv3,
SUM( bvs3 ) bvs3,
s.user_name,
0 nf
FROM
sl_log a
LEFT JOIN sl_player s ON s.user_id = a.user_id
WHERE
a.user_id IN (
SELECT
t.user_id
FROM
( SELECT user_id, count( LEVEL ) count_level FROM sl_log WHERE LEVEL in (1, 2 ,3) GROUP BY user_id ) t
WHERE
t.count_level >= 3
)
AND a.LEVEL in (1, 2 ,3)
and s.user_gold = 0
GROUP BY
a.user_id
) q,
( SELECT @i := 0 ) t2
ORDER BY
q.game_time
) m where user_id = #{userId}
limit 1
</select>
<select id="getRankByLevelUserId" resultType="java.util.Map">
SELECT
*
FROM
(
SELECT
( @i := @i + 1 ) ranking,
x.*
FROM
( SELECT @i := 0 ) t2,
(
SELECT
a.id,
a.user_id,
a.game_time,
a.bv3,
a.bvs3,
a.nf,
s.user_name,
a.creation_time
FROM
sl_log a
LEFT JOIN sl_player s ON s.user_id = a.user_id
WHERE
a.LEVEL = #{level}
and s.user_gold = 0
) x
ORDER BY
x.game_time ASC,
x.creation_time ASC
) m
WHERE
m.user_id = #{userId}
limit 1
</select>
</mapper>