浏览代码

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

- 在 HandHistoryBo 中添加 playerNameOrId 字段,用于查询玩家的手史
- 修改 HandHistoryMapper 接口,增加 playerId 参数用于精确查询
- 更新 HandHistoryMapper.xml,调整 SQL 查询语句以适应新参数
- 修改 HandHistoryServiceImpl 中的查询方法,支持按玩家姓名或 ID 查询
- 在 UserMapper 中添加 selUserInfo 方法,用于获取玩家信息
fugui001 4 月之前
父节点
当前提交
269cf80e33

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/bo/HandHistoryBo.java

@@ -91,4 +91,6 @@ public class HandHistoryBo extends BaseEntity {
 
     private Long tableId;
 
+    private String playerNameOrId;
+
 }

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

@@ -25,7 +25,7 @@ public interface HandHistoryMapper extends BaseMapperPlus<HandHistory, HandHisto
      List<HandHistoryVo> selectAllHandZhuoCi(@Param("tournamentId") Long tournamentId,@Param("playerId") Long playerId);
 
      @InterceptorIgnore(tenantLine = "true")
-     List<HandHistoryVo> selectAllHandNumber(@Param("tournamentId") Long tournamentId,@Param("tableId") Long tableId);
+     List<HandHistoryVo> selectAllHandNumber(@Param("tournamentId") Long tournamentId,@Param("tableId") Long tableId,@Param("playerId") Long playerId);
 
 
 

+ 3 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/UserMapper.java

@@ -40,5 +40,8 @@ public interface UserMapper extends BaseMapperPlus<User, UserVo> {
     @InterceptorIgnore(tenantLine = "true")
     List<UserVo> selectUserList(@Param("ew") Wrapper<User> wrapper);
 
+    @InterceptorIgnore(tenantLine = "true")
+    UserVo selUserInfo(@Param("playerNameOrId") String playerNameOrId);
+
 
 }

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

@@ -6,7 +6,9 @@ import org.dromara.business.domain.HandHistory;
 import org.dromara.business.domain.bo.HandHistoryBo;
 import org.dromara.business.domain.vo.ActionVo;
 import org.dromara.business.domain.vo.HandHistoryVo;
+import org.dromara.business.domain.vo.UserVo;
 import org.dromara.business.mapper.HandHistoryMapper;
+import org.dromara.business.mapper.UserMapper;
 import org.dromara.business.service.IHandHistoryService;
 import org.dromara.business.utils.ActionParserUtils;
 import org.dromara.business.utils.PageUtils;
@@ -42,6 +44,8 @@ public class HandHistoryServiceImpl implements IHandHistoryService {
 
     private final HandHistoryMapper baseMapper;
 
+    private final UserMapper userMapper;
+
     /**
      * 查询【请填写功能名称】
      *
@@ -189,13 +193,30 @@ public class HandHistoryServiceImpl implements IHandHistoryService {
 
     @Override
     public List<HandHistoryVo> selectAllHandZhuoCi(HandHistoryBo bo) {
-         return baseMapper.selectAllHandZhuoCi(bo.getTournamentId(),bo.getPlayerId());
-    }
+        String playerUserId=bo.getPlayerNameOrId();
+        if(StringUtils.isBlank(bo.getPlayerNameOrId())){
+            playerUserId=bo.getPlayerId().toString();
+        }
+        UserVo userVo = userMapper.selUserInfo(playerUserId);
+        if(userVo!=null){
+            return baseMapper.selectAllHandZhuoCi(bo.getTournamentId(),userVo.getId());
+        }else{
+            return new ArrayList<>();
+        }
+   }
 
     @Override
     public List<HandHistoryVo> selectAllHandNumber(HandHistoryBo bo) {
-        return baseMapper.selectAllHandNumber(bo.getTournamentId(),bo.getTableId());
+        String playerUserId=bo.getPlayerNameOrId();
+        if(StringUtils.isBlank(bo.getPlayerNameOrId())){
+            playerUserId=bo.getPlayerId().toString();
+        }
+        UserVo userVo = userMapper.selUserInfo(playerUserId);
+        if(userVo!=null){
+            return baseMapper.selectAllHandNumber(bo.getTournamentId(),bo.getTableId(),userVo.getId());
+        }else{
+            return new ArrayList<>();
+        }
     }
 
-
 }

+ 13 - 3
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/HandHistoryMapper.xml

@@ -35,9 +35,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="selectAllHandNumber" resultType="org.dromara.business.domain.vo.HandHistoryVo">
-        select * from  hand_history where table_id = #{tableId}  and  tournament_id=#{tournamentId}
-        ORDER BY created_at asc
-    </select>
+      SELECT
+            hh.*
+        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
+	   AND hh.table_id =  #{tableId}
+       ORDER BY
+            hh.hand_number ASC
+   </select>
 
 
 

+ 43 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/UserMapper.xml

@@ -224,4 +224,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
 
+    <select id="selUserInfo" resultType="org.dromara.business.domain.vo.UserVo">
+        SELECT
+            a.id,
+            a.login_name,
+            a.login_pass,
+            a.phone,
+            a.create_at,
+            a.update_at,
+            a.sex,
+            a.email,
+            a.nick_name,
+            a.remark,
+            a.captcha,
+            a.avatar,
+            a.province,
+            a.city,
+            a.area,
+            a.place_detail,
+            a.register_ip,
+            a.register_device,
+            a.status,
+
+            CASE
+                WHEN a.status = 0 THEN '禁用'
+                WHEN a.status = 1 THEN '启用'
+                ELSE ''
+                END AS statusText,
+
+            a.is_locked,
+            a.last_login_time,
+            a.last_login_ip,
+            a.del_flag,
+            b.real_name
+        FROM user a
+        LEFT JOIN user_real_info b ON a.id = b.user_id WHERE   (
+            CAST(a.id AS CHAR) LIKE CONCAT('%', #{playerNameOrId}, '%')
+                OR a.nick_name LIKE CONCAT('%', #{playerNameOrId}, '%')
+            )
+        and a.del_flag=0 limit 1
+    </select>
+
+
+
 </mapper>