You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

283 lines
11 KiB

<?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.ccsens.mt.persist.dao.CompeteTeamDao">
<resultMap id="BaseResultMap" type="com.ccsens.mt.bean.po.CompeteTeam">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="creator" jdbcType="BIGINT" property="creator" />
<result column="project_id" jdbcType="BIGINT" property="projectId" />
<result column="compete_time_id" jdbcType="BIGINT" property="competeTimeId" />
<result column="gender_group" jdbcType="TINYINT" property="genderGroup" />
<result column="certificate" jdbcType="TINYINT" property="certificate" />
<result column="qr_code" jdbcType="VARCHAR" property="qrCode" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<resultMap id="teamOrderPlayer" type="com.ccsens.mt.bean.vo.CompeteExcelVo$TeamOrderPlayer">
<id column="groupId" property="groupId" />
<result column="groupName" property="groupName" />
<collection property="companyNameList" ofType="com.ccsens.mt.bean.vo.CompeteExcelVo$TeamOrderPlayerList">
<id column="teamId" property="teamId"/>
<result column="companyName" property="companyName"/>
<result column="playerNames" property="playerNames"/>
</collection>
</resultMap>
<resultMap id="getTeamByProjectId" type="com.ccsens.mt.bean.vo.CompeteVo$TeamInfoByProject">
<id column="teamId" property="teamId" />
<result column="creatorId" property="creatorId" />
<result column="creatorName" property="creatorName" />
<result column="certificate" property="certificate" />
<result column="memberNums" property="memberNums" />
<result column="score" property="score" />
<collection property="members" ofType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTeamProjectMember">
<id column="memberId" property="memberId"/>
<result column="memberName" property="memberName"/>
<result column="captain" property="captain"/>
</collection>
<collection property="videoInfoList" ofType="com.ccsens.mt.bean.vo.VideoVo$GetVideoInfo">
<id column="videoId" property="videoId"/>
<result column="fileId" property="fileId"/>
<result column="videoUrl" property="videoUrl"/>
<result column="uploadTime" property="uploadTime"/>
</collection>
</resultMap>
<resultMap id="getPlayerByProjectId" type="com.ccsens.mt.bean.vo.CompeteVo$PlayerInfoByProject">
<id column="playerId" property="playerId" />
<result column="name" property="name" />
<result column="gender" property="gender" />
<result column="phone" property="phone" />
<result column="groupId" property="groupId" />
<result column="groupName" property="groupName" />
<result column="companyName" property="companyName" />
<result column="certificate" property="certificate" />
<result column="score" property="score" />
<collection property="videoInfoList" ofType="com.ccsens.mt.bean.vo.VideoVo$GetVideoInfo">
<id column="videoId" property="videoId"/>
<result column="fileId" property="fileId"/>
<result column="videoUrl" property="videoUrl"/>
<result column="uploadTime" property="uploadTime"/>
</collection>
</resultMap>
<select id="countJoinTeam" resultType="java.lang.Long">
SELECT
count( t.id )
FROM
t_compete_team t,
t_compete_team_member m
WHERE
t.id = m.compete_team_id
AND t.project_id = #{projectId}
AND t.compete_time_id = #{competeTimeId}
AND m.player_id = #{playerId}
AND t.rec_status = 0
AND m.rec_status = 0
</select>
<select id="countJoinProject" resultType="java.lang.Long">
SELECT
count( t.id )
FROM
t_compete_team t,
t_compete_project p,
t_compete_team_member m
WHERE
t.project_id = p.id
AND t.id = m.compete_team_id
AND t.compete_time_id = #{competeTimeId}
AND m.player_id = #{playerId}
AND p.join_rule = 1
AND t.rec_status = 0
AND m.rec_status = 0
AND p.rec_status = 0
</select>
<select id="queryMembers" resultType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTeamProjectMember">
SELECT
p.id AS memberId,
p.NAME AS memberName,
m.captain
FROM
t_compete_team_member m,
t_compete_player p
WHERE
m.player_id = p.id
AND m.compete_team_id = #{teamId}
AND m.rec_status = 0
AND p.rec_status = 0
</select>
<select id="getQrCodeByTeamId" resultType="java.lang.String">
SELECT
qr_code
FROM
t_compete_team
WHERE
id = #{teamId}
AND rec_status = 0
</select>
<select id="queryTiwn" resultType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTiwnProject">
SELECT
pp.id as competeProjectId,
p2.type,
p2.name as secondProjectName,
p1.name as parentProjectName,
pp.certificate,
(select group_name from t_compete_group where id = pp.compete_group_id) as groupName
FROM
t_compete_player p,
t_compete_project_player pp,
t_compete_project p2,
t_compete_project p1
WHERE
p.id = pp.player_id
AND pp.project_id = p2.id
AND p2.parent_id = p1.id
AND p.user_id = #{userId}
AND pp.compete_time_id = #{competeTimeId}
AND p2.team = 0
and p.rec_status = 0
and pp.rec_status = 0
and p1.rec_status = 0
and p2.rec_status = 0
</select>
<select id="queryTeam" resultType="com.ccsens.mt.bean.vo.CompeteVo$CompeteTeamProject">
SELECT
t.id as teamId,
p2.type,
p2.name as secondProjectName,
p1.name as parentProjectName,
p2.member_min as memberMin,
p2.member_max as memberMax,
t.certificate,
m.captain as creator,
if (m.captain = 1, t.qr_code, '') as qrCode,
(select group_name from t_compete_group where id = t.compete_group_id) as groupName
FROM
t_compete_player p,
t_compete_team_member m,
t_compete_team t,
t_compete_project p2,
t_compete_project p1
WHERE
p.id = m.player_id
AND m.compete_team_id = t.id
AND t.project_id = p2.id
AND p2.parent_id = p1.id
AND p.user_id = #{userId}
AND t.compete_time_id = #{competeTimeId}
AND p2.team = 1
AND p.rec_status = 0
AND m.rec_status = 0
AND t.rec_status = 0
AND p1.rec_status = 0
AND p2.rec_status = 0
</select>
<select id="countTiwnTeam" resultType="java.lang.Long">
SELECT
count(*)
FROM
t_compete_project_player pp,
t_compete_project p
WHERE
pp.project_id = p.id
AND pp.player_id = #{playerId}
AND pp.compete_time_id = #{competeTimeId}
AND p.team = 0
AND p.rec_status = 0
AND pp.rec_status = 0
</select>
<select id="getTeamByProjectId" resultMap="getTeamByProjectId">
SELECT
t.id as teamId,
t.creator as creatorId,
(SELECT `name` FROM t_compete_player WHERE id = t.creator) as creatorName,
t.certificate as certificate,
(SELECT count(id) FROM t_compete_team_member WHERE compete_team_id = t.id) as memberNums,
m.id as memberId,
p.`name` as memberName,
if(t.creator = p.id , true,false) as captain,
t.score,
v.id as videoId,
v.file_id as fileId,
v.video_url as videoUrl,
v.time as uploadTime
FROM
t_compete_team t left join t_compete_team_member m on t.id = m.compete_team_id
LEFT JOIN t_compete_player p on m.player_id = p.id
LEFT JOIN t_compete_video v on v.player_id = t.id and v.rec_status = 0
LEFT JOIN
(
SELECT
s.task_id as teamId,
sum(s.score) as score
FROM
t_mt_score_log l LEFT JOIN t_mt_score s on l.id = s.score_log_id
WHERE
l.project_id = #{competeProjectId}
and l.rec_status = 0
and s.rec_status = 0
) t on t.teamId = t.id
WHERE
t.project_id = #{competeProjectId}
and t.compete_time_id = #{competeTimeId}
and t.rec_status = 0
and m.rec_status = 0
and p.rec_status = 0
</select>
<select id="getPlayerByProjectId" resultMap="getPlayerByProjectId">
SELECT
p.id as playerId,
p.`name`,
p.gender,
p.phone,
p.compete_group_id as groupId,
(SELECT `group_name` FROM t_compete_group WHERE id = p.compete_group_id) as groupName,
(SELECT `name` FROM t_compete_company WHERE id = p.company_id) as companyName,
pp.certificate,
t.score,
v.id as videoId,
v.file_id as fileId,
v.video_url as videoUrl,
v.time as uploadTime
FROM
t_compete_project_player pp left join t_compete_player p on pp.player_id = p.id
LEFT JOIN t_compete_video v on v.player_id = pp.id and v.rec_status = 0
LEFT JOIN
(
SELECT
s.task_id as playerId,
sum(s.score) as score
FROM
t_mt_score_log l LEFT JOIN t_mt_score s on l.id = s.score_log_id
WHERE
l.project_id = #{competeProjectId}
and l.rec_status = 0
and s.rec_status = 0
) t on t.playerId = pp.id
WHERE
pp.project_id = #{competeProjectId}
and pp.compete_time_id = #{competeTimeId}
and pp.rec_status = 0
and p.rec_status = 0
</select>
<select id="selectTeamMemberByProjectId" resultMap="teamOrderPlayer">
SELECT
tcg.id as groupId,
tct.id as teamId,
tcg.group_name as groupName,
tcc.`name` as companyName,
GROUP_CONCAT(tcp.`name` separator '、') as playerNames
FROM
`t_compete_team` tct
LEFT JOIN `t_compete_team_member` tctm ON tct.id = tctm.compete_team_id
LEFT JOIN t_compete_group tcg ON tct.gender_group = tcg.sex
AND tct.group_remark = tcg.group_remark
left JOIN t_compete_player tcp on tcp.id=tctm.player_id
left join t_compete_company tcc on tct.company_id=tcc.id
WHERE
tct.project_id = #{projectId}
AND tct.rec_status = 0
AND tctm.rec_status = 0
AND tcg.rec_status =0
</select>
</mapper>