Procházet zdrojové kódy

feat(business): 优化手牌查询功能

- 扩展 selectAllHandHistory 方法,增加 handId 参数
- 新增 selectAllHandPublicNumber 方法,用于查询公共手牌编号
- 优化 selectAllHandZhuoCi 和 selectAllHandNumber 方法的逻辑
- 更新 XML 映射文件,增加动态 SQL 条件
fugui001 před 4 měsíci
rodič
revize
19561f09f3

+ 3 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/HandHistoryMapper.java

@@ -19,7 +19,7 @@ import java.util.List;
 public interface HandHistoryMapper extends BaseMapperPlus<HandHistory, HandHistoryVo> {
 
      @InterceptorIgnore(tenantLine = "true")
-     HandHistoryVo selectAllHandHistory(@Param("tournamentId") Long tournamentId,@Param("historyId") Long historyId);
+     HandHistoryVo selectAllHandHistory(@Param("tournamentId") Long tournamentId,@Param("historyId") Long historyId,@Param("handId") String handId);
 
      @InterceptorIgnore(tenantLine = "true")
      List<HandHistoryVo> selectAllHandZhuoCi(@Param("tournamentId") Long tournamentId,@Param("playerId") Long playerId);
@@ -27,6 +27,8 @@ public interface HandHistoryMapper extends BaseMapperPlus<HandHistory, HandHisto
      @InterceptorIgnore(tenantLine = "true")
      List<HandHistoryVo> selectAllHandNumber(@Param("tournamentId") Long tournamentId,@Param("tableId") Long tableId,@Param("playerId") Long playerId);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<HandHistoryVo> selectAllHandPublicNumber(@Param("tournamentId") Long tournamentId,@Param("tableId") Long tableId);
 
 
 }

+ 28 - 12
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/HandHistoryServiceImpl.java

@@ -157,8 +157,10 @@ public class HandHistoryServiceImpl implements IHandHistoryService {
 
     @Override
     public  TableDataInfo<HandHistoryVo> getPlayHistoryInfo(HandHistoryBo bo, PageQuery pageQuery) {
-
-        HandHistoryVo handHistoryVo = baseMapper.selectAllHandHistory(bo.getTournamentId(), bo.getHistoryId());
+       /* if(bo.getHistoryId()==null || StringUtils.isEmpty(bo.getHandId())){
+            return TableDataInfo.build();
+        }*/
+        HandHistoryVo handHistoryVo = baseMapper.selectAllHandHistory(bo.getTournamentId(), bo.getHistoryId(),bo.getHandId());
         if(handHistoryVo!=null){
             //过程操作记录
             String handDetails = handHistoryVo.getHandDetails();
@@ -195,27 +197,41 @@ public class HandHistoryServiceImpl implements IHandHistoryService {
     public List<HandHistoryVo> selectAllHandZhuoCi(HandHistoryBo bo) {
         String playerUserId=bo.getPlayerNameOrId();
         if(StringUtils.isBlank(bo.getPlayerNameOrId())){
-            playerUserId=bo.getPlayerId().toString();
+            if(bo.getPlayerId()!=null){
+                playerUserId=bo.getPlayerId().toString();
+            }
         }
-        UserVo userVo = userMapper.selUserInfo(playerUserId);
-        if(userVo!=null){
-            return baseMapper.selectAllHandZhuoCi(bo.getTournamentId(),userVo.getId());
+        if(StringUtils.isNotBlank(playerUserId)){
+            UserVo userVo = userMapper.selUserInfo(playerUserId);
+            if(userVo!=null){
+                return baseMapper.selectAllHandZhuoCi(bo.getTournamentId(),userVo.getId());
+            }else{
+                return new ArrayList<>();
+            }
         }else{
-            return new ArrayList<>();
+            return baseMapper.selectAllHandZhuoCi(bo.getTournamentId(),bo.getPlayerId());
         }
+
+
    }
 
     @Override
     public List<HandHistoryVo> selectAllHandNumber(HandHistoryBo bo) {
         String playerUserId=bo.getPlayerNameOrId();
         if(StringUtils.isBlank(bo.getPlayerNameOrId())){
-            playerUserId=bo.getPlayerId().toString();
+            if(bo.getPlayerId()!=null){
+                playerUserId=bo.getPlayerId().toString();
+            }
         }
-        UserVo userVo = userMapper.selUserInfo(playerUserId);
-        if(userVo!=null){
-            return baseMapper.selectAllHandNumber(bo.getTournamentId(),bo.getTableId(),userVo.getId());
+        if(StringUtils.isNotBlank(playerUserId)){
+            UserVo userVo = userMapper.selUserInfo(playerUserId);
+            if(userVo!=null){
+                return baseMapper.selectAllHandNumber(bo.getTournamentId(),bo.getTableId(),userVo.getId());
+            }else{
+                return new ArrayList<>();
+            }
         }else{
-            return new ArrayList<>();
+            return baseMapper.selectAllHandPublicNumber(bo.getTournamentId(),bo.getTableId());
         }
     }
 

+ 33 - 5
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/HandHistoryMapper.xml

@@ -18,7 +18,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             hand_end_time,
             hand_details,
             created_at
-        FROM hand_history  where tournament_id=#{tournamentId} AND id=#{historyId}
+        FROM hand_history
+        WHERE 1=1
+        <if test="tournamentId != null and tournamentId != ''">
+            AND tournament_id = #{tournamentId}
+        </if>
+        <if test="historyId != null and historyId != ''">
+            AND id = #{historyId}
+        </if>
+        <if test="handId != null and handId != ''">
+            AND hand_id = #{handId}
+        </if>
     </select>
 
 
@@ -26,8 +36,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT hh.table_id
         FROM hand_history hh
                  INNER JOIN player_hand_history phh ON hh.id = phh.hand_history_id
-        WHERE phh.player_id =#{playerId}
-          AND hh.tournament_id = #{tournamentId} AND   hh.table_id!=0
+        WHERE 1=1
+        <if test="playerId != null and playerId != ''">
+            AND  phh.player_id =#{playerId}
+        </if>
+        AND hh.tournament_id = #{tournamentId} AND   hh.table_id!=0
         GROUP BY hh.table_id
         ORDER BY hh.table_id ASC
     </select>
@@ -40,8 +53,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
             hand_history hh
                 INNER JOIN player_hand_history phh ON hh.id = phh.hand_history_id
-        WHERE
-            phh.player_id = #{playerId}
+        WHERE 1=1
+        <if test="playerId != null and playerId != ''">
+            AND  phh.player_id =#{playerId}
+        </if>
           AND hh.tournament_id = #{tournamentId}
           AND hh.table_id != 0
 	   AND hh.table_id =  #{tableId}
@@ -50,5 +65,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    </select>
 
 
+    <select id="selectAllHandPublicNumber" resultType="org.dromara.business.domain.vo.HandHistoryVo">
+        SELECT
+           DISTINCT hh.hand_number
+        FROM
+        hand_history hh
+        INNER JOIN player_hand_history phh ON hh.id = phh.hand_history_id
+        WHERE 1=1
+        AND hh.tournament_id = #{tournamentId}
+        AND hh.table_id != 0
+        AND hh.table_id =  #{tableId}
+        ORDER BY
+        hh.hand_number ASC
+    </select>
 
 </mapper>