PhysicalTournamentRuntimeMapper.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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.physical.mapper.PhysicalTournamentRuntimeMapper">
  6. <!-- 插入:必须验证 tournament_id 非空 -->
  7. <insert id="insertPhysicalTournamentRuntime">
  8. INSERT INTO physical_tournament_runtime (
  9. tournament_id,
  10. current_level_id,
  11. current_level_start_time,
  12. pause_status,
  13. pause_start_time,
  14. status,
  15. last_level_switch_time,
  16. tournament_begin_time
  17. ) VALUES (
  18. #{tournamentId},
  19. #{currentLevelId},
  20. #{currentLevelStartTime},
  21. #{pauseStatus},
  22. #{pauseStartTime},
  23. #{status},
  24. #{lastLevelSwitchTime},
  25. #{tournamentBeginTime}
  26. )
  27. </insert>
  28. <!-- 更新:必须验证 tournament_id 非空 + 状态字段非空 -->
  29. <update id="updatePhysicalTournamentRuntime">
  30. UPDATE physical_tournament_runtime
  31. <set>
  32. <if test="currentLevelId != null">
  33. current_level_id = #{currentLevelId, jdbcType=INTEGER},
  34. </if>
  35. <if test="currentLevelStartTime != null">
  36. current_level_start_time = #{currentLevelStartTime, jdbcType=TIMESTAMP},
  37. </if>
  38. <if test="pauseStatus != null">
  39. pause_status = #{pauseStatus, jdbcType=TINYINT},
  40. </if>
  41. <if test="pauseStartTime != null">
  42. pause_start_time = #{pauseStartTime, jdbcType=TIMESTAMP},
  43. </if>
  44. <if test="status != null">
  45. status = #{status, jdbcType=VARCHAR},
  46. </if>
  47. <if test="status != null">
  48. tournament_begin_time = #{tournamentBeginTime},
  49. </if>
  50. <if test="lastLevelSwitchTime != null">
  51. last_level_switch_time = #{lastLevelSwitchTime, jdbcType=TIMESTAMP},
  52. </if>
  53. updated_at = CURRENT_TIMESTAMP
  54. </set>
  55. WHERE tournament_id = #{tournamentId, jdbcType=INTEGER}
  56. AND tournament_id IS NOT NULL <!-- 确保主键非空 -->
  57. </update>
  58. <delete id="deletePhysicalTournamentRuntime">
  59. DELETE FROM physical_tournament_runtime
  60. <where>
  61. tournament_id IN
  62. <foreach item="id" collection="ids" open="(" separator="," close=")">
  63. <if test="id > 0">
  64. #{id}
  65. </if>
  66. </foreach>
  67. </where>
  68. </delete>
  69. <!-- 查询:根据ID获取(必须验证ID非空) -->
  70. <select id="selectPhysicalTournamentRuntimeById" resultType="org.dromara.physical.domain.vo.PhysicalTournamentRuntimeVo">
  71. SELECT
  72. tournament_id,
  73. current_level_id,
  74. current_level_start_time,
  75. pause_status,
  76. pause_start_time,
  77. status,
  78. last_level_switch_time,
  79. created_at,
  80. updated_at,
  81. tournament_begin_time
  82. FROM physical_tournament_runtime
  83. WHERE tournament_id = #{tournamentId, jdbcType=INTEGER}
  84. AND tournament_id IS NOT NULL <!-- 确保ID非空 -->
  85. </select>
  86. <!-- 查询所有进行中赛事(状态=ONGOING) -->
  87. <select id="selectPhysicalTournamentRuntimeList" resultType="org.dromara.physical.domain.vo.PhysicalTournamentRuntimeVo">
  88. SELECT
  89. tournament_id,
  90. current_level_id,
  91. current_level_start_time,
  92. pause_status,
  93. pause_start_time,
  94. status,
  95. last_level_switch_time,
  96. created_at,
  97. updated_at,
  98. tournament_begin_time
  99. FROM physical_tournament_runtime ${ew.customSqlSegment}
  100. </select>
  101. <select id="selectPhysicalTournamentRuntimePage" resultType="org.dromara.physical.domain.vo.PhysicalTournamentRuntimeVo">
  102. SELECT
  103. tournament_id,
  104. current_level_id,
  105. current_level_start_time,
  106. pause_status,
  107. pause_start_time,
  108. status,
  109. last_level_switch_time,
  110. created_at,
  111. updated_at,
  112. tournament_begin_time
  113. FROM physical_tournament_runtime ${ew.customSqlSegment}
  114. </select>
  115. <delete id="deletePhysicalTournamentRuntimeById">
  116. DELETE FROM physical_tournament_runtime where tournament_id = #{tournamentId}
  117. </delete>
  118. <select id="selectPhysicalTournamentRuntimeAllList" resultType="org.dromara.physical.domain.vo.PhysicalTournamentRuntimeVo">
  119. SELECT
  120. tournament_id,
  121. current_level_id,
  122. current_level_start_time,
  123. pause_status,
  124. pause_start_time,
  125. status,
  126. last_level_switch_time,
  127. created_at,
  128. updated_at,
  129. tournament_begin_time
  130. FROM physical_tournament_runtime
  131. WHERE
  132. tournament_id IS NOT NULL
  133. <if test="status != null">
  134. AND status = #{status}
  135. </if>
  136. </select>
  137. </mapper>