ToClientMapper.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="org.dromara.system.mapper.app.ToClientMapper">
  6. <select id="selectScoreSheetMetadata" resultType="org.dromara.system.domain.vo.ScoreSheetVo">
  7. SELECT
  8. e.event_name as name,
  9. e.event_code as bianhao,
  10. p.score_rule as chengjiType,
  11. p.score_count as ChengJiNum,
  12. p.order_type as paiMing,
  13. p.project_name as projectName,
  14. p.project_type as type,
  15. p.classification as classification,
  16. p.gender as sex,
  17. p.rg_name as zu,
  18. p.game_stage as jieduan,
  19. p.game_round as lunci,
  20. DATE_FORMAT(p.start_time, '%Y-%m-%d %H:%i:%s') as startTime,
  21. (SELECT GROUP_CONCAT(name SEPARATOR ',') FROM game_referee WHERE del_flag = '0'
  22. AND event_id = p.event_id
  23. AND (JSON_CONTAINS(p.referee_group, JSON_ARRAY(referee_id))
  24. OR JSON_CONTAINS(p.referee_group, JSON_ARRAY(CAST(referee_id AS CHAR))))
  25. ) as caipan,
  26. (CASE WHEN p.score_rule in ('3', '4') THEN p.count_unit ELSE p.timing_format END) as guize,
  27. (SELECT config_value FROM game_event_config WHERE event_id = p.event_id
  28. AND config_key = 'event_tip' AND del_flag = '0' LIMIT 1) as eventTip,
  29. IFNULL((SELECT COUNT(DISTINCT a.athlete_id) FROM game_athlete a
  30. WHERE a.event_id = p.event_id AND a.del_flag = '0'
  31. AND (JSON_CONTAINS(a.project_value, JSON_ARRAY(p.project_id))
  32. OR JSON_CONTAINS(a.project_value, JSON_ARRAY(CAST(p.project_id AS CHAR)))
  33. ))
  34. , 0) as popnum,
  35. IFNULL((SELECT COUNT(DISTINCT s.score_id)
  36. FROM game_score s
  37. JOIN game_athlete a ON s.athlete_id = a.athlete_id AND a.del_flag = '0'
  38. WHERE s.project_id = p.project_id AND s.del_flag = '0'
  39. AND ((p.classification = '0' AND s.individual_performance IS NOT NULL AND s.individual_performance > 0)
  40. OR (p.classification = '1' AND s.team_performance IS NOT NULL AND s.team_performance > 0))
  41. )
  42. , 0) as finishedParticipants
  43. FROM game_event_project p
  44. JOIN game_event e ON p.event_id = e.event_id
  45. WHERE p.event_id = #{eventId} AND p.project_id = #{projectId} AND p.del_flag = '0'
  46. </select>
  47. <select id="selectScoreSheetItems" resultType="org.dromara.system.domain.vo.ScoreSheetItemVo">
  48. SELECT
  49. a.athlete_id as id,
  50. a.team_id as teamId,
  51. a.athlete_code as num,
  52. a.name as name,
  53. t.team_name as duiwu,
  54. a.track_index as xuhao,
  55. s.score_id as scoreId,
  56. CASE
  57. WHEN p.classification = '0' THEN s.individual_performance
  58. ELSE s.team_performance
  59. END as score,
  60. s.fault_a as shiwu,
  61. s.complete_time as yongshi
  62. FROM game_athlete a
  63. LEFT JOIN game_team t ON a.team_id = t.team_id AND t.del_flag = '0'
  64. CROSS JOIN game_event_project p ON p.project_id = #{projectId}
  65. LEFT JOIN game_score s ON a.athlete_id = s.athlete_id AND s.project_id = #{projectId} AND s.del_flag = '0'
  66. WHERE a.event_id = #{eventId}
  67. AND a.del_flag = '0'
  68. AND (JSON_CONTAINS(a.project_value, JSON_ARRAY(#{projectId}))
  69. OR JSON_CONTAINS(a.project_value, JSON_ARRAY(CAST(#{projectId} AS CHAR))))
  70. ORDER BY a.track_index ASC, a.athlete_code ASC
  71. </select>
  72. <select id="selectScorePreviewList" resultType="org.dromara.system.domain.vo.ScorePreviewVo">
  73. SELECT
  74. s.score_id as scoreId,
  75. s.athlete_id as id,
  76. s.team_id as teamId,
  77. a.athlete_code as num,
  78. a.name as name,
  79. t.team_name as duiwu,
  80. CASE
  81. WHEN p.classification = '0' THEN CAST(s.individual_performance AS CHAR)
  82. ELSE CAST(s.team_performance AS CHAR)
  83. END as score,
  84. s.fault_a as shiwu,
  85. s.complete_time as yongshi,
  86. s.score_point as scorePoint,
  87. s.score_rank as scoreRank
  88. FROM game_score s
  89. LEFT JOIN game_athlete a ON s.athlete_id = a.athlete_id AND a.del_flag = '0'
  90. LEFT JOIN game_team t ON s.team_id = t.team_id AND t.del_flag = '0'
  91. JOIN game_event_project p ON s.project_id = p.project_id
  92. WHERE s.project_id = #{projectId} AND s.del_flag = '0'
  93. AND (
  94. (p.classification = '0' AND a.athlete_id IS NOT NULL AND (
  95. JSON_CONTAINS(a.project_value, JSON_ARRAY(#{projectId}))
  96. OR JSON_CONTAINS(a.project_value, JSON_ARRAY(CAST(#{projectId} AS CHAR)))
  97. ))
  98. OR
  99. (p.classification = '1' AND t.team_id IS NOT NULL AND EXISTS (
  100. SELECT 1 FROM game_athlete a2
  101. WHERE a2.team_id = s.team_id AND a2.del_flag = '0'
  102. AND (
  103. JSON_CONTAINS(a2.project_value, JSON_ARRAY(#{projectId}))
  104. OR JSON_CONTAINS(a2.project_value, JSON_ARRAY(CAST(#{projectId} AS CHAR)))
  105. )
  106. ))
  107. )
  108. ORDER BY s.score_rank ASC, s.score_id DESC
  109. </select>
  110. </mapper>