<?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.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper">
|
|
<select id="getNumberOfGamesRanked" resultType="map">
|
select
|
aa.participantType,
|
aa.participantId,
|
aa.num
|
from (
|
select
|
CASE WHEN participantType = 2 THEN 0 ELSE 1 END as participantType,
|
participantId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null and DATE_FORMAT(NOW(), '%Y') = DATE_FORMAT(startTime, '%Y')
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
group by participantType, participantId
|
) as aa order by aa.num desc,aa.participantId
|
</select>
|
|
|
|
<select id="getMatchRecord" resultType="com.dsh.communityWorldCup.model.MatchRecordList">
|
select
|
b.`name`,
|
a.ourScore,
|
a.opponentScore,
|
DATE_FORMAT(a.startTime, '%Y-%m-%d %H:%i') as startTime,
|
a.matchResult,
|
(a.participationIntegral + a.winIntegral) as award
|
from t_world_cup_competitor a
|
left join t_world_cup b on (a.worldCupId = b.id)
|
where a.matchResult is not null and a.participantId = #{item.id} and a.participantType = #{item.isStudent}
|
order by a.startTime desc limit #{item.pageNo}, #{item.pageSize}
|
</select>
|
|
|
|
<!--
|
<select id="getWorldCupRank" resultType="java.util.Map">
|
select
|
aa.participantType,
|
aa.participantId,
|
aa.appUserId,
|
aa.winRate,
|
aa.totalSession
|
from (
|
select
|
a.participantType,
|
a.participantId,
|
a.appUserId,
|
ifnull(a.num, 0) as totalSession,
|
(ifnull(b.num, 0) / ifnull(a.num, 0) * 100) as winRate
|
from (
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != item.year">
|
and DATE_FORMAT(startTime, '%Y') = #{item.year}
|
</if>
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
) as a
|
left join (
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult != -1
|
<if test="null != item.year">
|
and DATE_FORMAT(startTime, '%Y') = #{item.year}
|
</if>
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
) as b on (a.participantId = b.participantId and a.participantType = b.participantType)
|
) as aa
|
<if test="null != item.sort and item.sort == 1">
|
order by aa.totalSession desc,aa.participantId
|
</if>
|
<if test="null != item.sort and item.sort == 2">
|
order by aa.winRate desc,aa.participantId
|
</if>
|
</select>
|
-->
|
|
<select id="getWorldCupRank" resultType="java.util.Map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != item.year">
|
and DATE_FORMAT(startTime, '%Y') = #{item.year}
|
</if>
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
|
<select id="getWorldCupRank1" resultType="java.util.Map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null and matchResult != -1
|
<if test="null != item.year">
|
and DATE_FORMAT(startTime, '%Y') = #{item.year}
|
</if>
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
|
|
<select id="worldCupRecordsList" resultType="map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
<select id="worldCupRecordsList1" resultType="map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null and matchResult != -1
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
|
<select id="worldCupRecordsListCount" resultType="int">
|
select count(*) from (
|
select
|
participantType,
|
participantId,
|
appUserId
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != appUserIds and appUserIds.size() > 0">
|
and appUserId in
|
<foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")">
|
#{iten}
|
</foreach>
|
</if>
|
group by participantType, participantId, appUserId
|
) as aa
|
</select>
|
|
|
|
<select id="worldCupGameStatisticsInfoList" resultType="map">
|
select
|
aa.participantType,
|
aa.participantId,
|
aa.appUserId,
|
aa.totalSession,
|
aa.win,
|
ROUND(aa.winRate, 2) as winRate
|
from (
|
select
|
a.participantType,
|
a.participantId,
|
a.appUserId,
|
a.num as totalSession,
|
ifnull(b.num, 0) as win,
|
(ifnull(b.num, 0) / a.num * 100) as winRate
|
from (
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != worldCupId">
|
and worldCupId = #{worldCupId}
|
</if>
|
group by participantType, participantId, appUserId
|
) as a
|
left join (
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult != -1
|
<if test="null != worldCupId">
|
and worldCupId = #{worldCupId}
|
</if>
|
group by participantType, participantId, appUserId
|
) as b on (a.participantId = b.participantId and a.participantType = b.participantType)
|
) as aa order by aa.totalSession desc
|
</select>
|
|
<select id="userGameRecordList" resultType="map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
DATE_FORMAT(a.startTime, '%Y-%m-%d %H:%i') as startTime,
|
ourScore,
|
opponentScore,
|
matchResult,
|
b.`name`
|
from t_world_cup_competitor a
|
left join t_world_cup b on (a.worldCupId = b.id)
|
where matchResult is not null
|
<if test="null != name and '' != name">
|
and b.name like CONCAT('%', #{name}, '%')
|
</if>
|
order by a.startTime desc
|
</select>
|
|
|
|
<select id="getUserGameRecordList" resultType="map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult is not null
|
<if test="null != participantType">
|
and participantType = #{participantType}
|
</if>
|
<if test="null != participantId">
|
and participantId = #{participantId}
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
|
|
<select id="getUserGameRecordList1" resultType="map">
|
select
|
participantType,
|
participantId,
|
appUserId,
|
count(*) as num
|
from t_world_cup_competitor
|
where matchResult != -1
|
<if test="null != participantType">
|
and participantType = #{participantType}
|
</if>
|
<if test="null != participantId">
|
and participantId = #{participantId}
|
</if>
|
group by participantType, participantId, appUserId
|
</select>
|
|
|
|
|
<select id="getMatchTime" resultType="int">
|
select count(*) as matchTime from (select code from t_world_cup_competitor where worldCupId = #{worldCupId} group by code) as b
|
</select>
|
</mapper>
|